diff --git a/.hgtags b/.hgtags index 99a211cc2e5..36c9e8850d1 100644 --- a/.hgtags +++ b/.hgtags @@ -112,3 +112,5 @@ def8e16dd237a47fc067d66d4c616d7baaec6001 jdk7-b134 f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135 46acf76a533954cfd594bb88fdea79938abfbe20 jdk7-b136 d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137 +62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138 +955488f34ca418f6cdab843d61c20d2c615637d9 jdk7-b139 diff --git a/.hgtags-top-repo b/.hgtags-top-repo index b02fce8ab91..0c499488b3e 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -112,3 +112,5 @@ ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134 783bd02b4ab4596059c74b10a1793d7bd2f1c157 jdk7-b135 2fe76e73adaa5133ac559f0b3c2c0707eca04580 jdk7-b136 7654afc6a29e43cb0a1343ce7f1287bf690d5e5f jdk7-b137 +fc47c97bbbd91b1f774d855c48a7e285eb1a351a jdk7-b138 +7ed6d0b9aaa12320832a7ddadb88d6d8d0dda4c1 jdk7-b139 diff --git a/corba/.hgtags b/corba/.hgtags index 159f7343ec9..4e2aad7b7fe 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -112,3 +112,5 @@ d7532bcd3742f1576dd07ff9fbb535c9c9a276e9 jdk7-b126 e0b72ae5dc5e824b342801c8d1d336a55eb54e2c jdk7-b135 48ef0c712e7cbf272f47f9224db92a3c6a9e2612 jdk7-b136 a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137 +78d8cf04697e9df54f7f11e195b7da29b8e345a2 jdk7-b138 +60b074ec6fcf5cdf9efce22fdfb02326ed8fa2d3 jdk7-b139 diff --git a/hotspot/.hgtags b/hotspot/.hgtags index cc91bc1d1a5..145ab668bff 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -162,3 +162,7 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 jdk7-b136 bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f jdk7-b137 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f hs21-b07 +0930dc920c185afbf40fed9a655290b8e5b16783 jdk7-b138 +0930dc920c185afbf40fed9a655290b8e5b16783 hs21-b08 +611e19a16519d6fb5deea9ab565336e6e6ee475d jdk7-b139 +611e19a16519d6fb5deea9ab565336e6e6ee475d hs21-b09 diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java index c3014835996..5120faa6853 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HelloWorld.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2001, 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 @@ -55,7 +55,7 @@ public class HelloWorld { synchronized(lock) { if (useMethodInvoke) { try { - Method method = HelloWorld.class.getMethod("e", null); + Method method = HelloWorld.class.getMethod("e"); Integer result = (Integer) method.invoke(null, new Object[0]); return result.intValue(); } diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java index 2aec4f60a5e..e34933ef602 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,12 +52,10 @@ public class ByteValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - byte other = ((ByteValue)obj).value(); - return value() - other; + public int compareTo(ByteValue byteVal) { + return value() - byteVal.value(); } - public Type type() { return vm.theByteType(); } diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java index cf9c58d9269..588b63f74f0 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,9 +52,8 @@ public class CharValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - char other = ((CharValue)obj).value(); - return value() - other; + public int compareTo(CharValue charVal) { + return value() - charVal.value(); } public Type type() { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java index ea51292def4..34decadf22e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, 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 @@ -186,7 +186,7 @@ abstract class ConnectorImpl implements Connector { // assert isVMVersionMismatch(throwable), "not a VMVersionMismatch" Class expClass = throwable.getClass(); Method targetVersionMethod = expClass.getMethod("getTargetVersion", new Class[0]); - return (String) targetVersionMethod.invoke(throwable, null); + return (String) targetVersionMethod.invoke(throwable); } /** If the causal chain has a sun.jvm.hotspot.runtime.VMVersionMismatchException, diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java index 618c8e7f776..d9f914b111c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -45,8 +45,8 @@ public class DoubleValueImpl extends PrimitiveValueImpl } } - public int compareTo(Object obj) { - double other = ((DoubleValue)obj).value(); + public int compareTo(DoubleValue doubleVal) { + double other = doubleVal.value(); if (value() < other) { return -1; } else if (value() == other) { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java index 321acfb0321..2721f6032c1 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java @@ -145,8 +145,7 @@ public class FieldImpl extends TypeComponentImpl implements Field { } // From interface Comparable - public int compareTo(Object object) { - Field field = (Field)object; + public int compareTo(Field field) { ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType(); int rc = declaringType.compareTo(field.declaringType()); if (rc == 0) { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java index b80edab6386..e7bec5be546 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/FloatValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,8 +52,8 @@ public class FloatValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - float other = ((FloatValue)obj).value(); + public int compareTo(FloatValue floatVal) { + float other = floatVal.value(); if (value() < other) { return -1; } else if (value() == other) { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java index 5013d380589..461686e6cb5 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,9 +52,8 @@ public class IntegerValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - int other = ((IntegerValue)obj).value(); - return value() - other; + public int compareTo(IntegerValue integerVal) { + return value() - integerVal.value(); } public Type type() { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java index e90590f2f88..da3ed8c4f0e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2004, 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 @@ -67,8 +67,8 @@ public class LocalVariableImpl extends MirrorImpl return (int)method.hashCode() + slot(); } - public int compareTo(Object object) { - LocalVariableImpl other = (LocalVariableImpl)object; + public int compareTo(LocalVariable localVar) { + LocalVariableImpl other = (LocalVariableImpl) localVar; int rc = method.compareTo(other.method); if (rc == 0) { rc = slot() - other.slot(); diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java index de003b56aaf..ab686ace53c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LocationImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -78,8 +78,7 @@ public class LocationImpl extends MirrorImpl implements Location { return method().hashCode() + (int)codeIndex(); } - public int compareTo(Object object) { - LocationImpl other = (LocationImpl)object; + public int compareTo(Location other) { int rc = method().compareTo(other.method()); if (rc == 0) { long diff = codeIndex() - other.codeIndex(); diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java index 9b1be1a5d42..da418441c23 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,8 +52,8 @@ public class LongValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - long other = ((LongValue)obj).value(); + public int compareTo(LongValue longVal) { + long other = longVal.value(); if (value() < other) { return -1; } else if (value() == other) { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java index 8c6c3d86987..5853a91bd58 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/MethodImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, 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 @@ -200,8 +200,7 @@ public abstract class MethodImpl extends TypeComponentImpl implements Method { } // From interface Comparable - public int compareTo(Object object) { - Method method = (Method)object; + public int compareTo(Method method) { ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType(); int rc = declaringType.compareTo(method.declaringType()); if (rc == 0) { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java index 0c1a6dab516..811075dc635 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2005, 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 @@ -99,7 +99,7 @@ implements ReferenceType { return saKlass.hashCode(); } - public int compareTo(Object object) { + public int compareTo(ReferenceType refType) { /* * Note that it is critical that compareTo() == 0 * implies that equals() == true. Otherwise, TreeSet @@ -108,7 +108,7 @@ implements ReferenceType { * (Classes of the same name loaded by different class loaders * or in different VMs must not return 0). */ - ReferenceTypeImpl other = (ReferenceTypeImpl)object; + ReferenceTypeImpl other = (ReferenceTypeImpl)refType; int comp = name().compareTo(other.name()); if (comp == 0) { Oop rf1 = ref(); diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java index 52aa71c4d7c..afbbcda18a6 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/ShortValueImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, 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 @@ -52,9 +52,8 @@ public class ShortValueImpl extends PrimitiveValueImpl return intValue(); } - public int compareTo(Object obj) { - short other = ((ShortValue)obj).value(); - return value() - other; + public int compareTo(ShortValue shortVal) { + return value() - shortVal.value(); } public Type type() { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java index 259546ef85a..d6e4e61b9f9 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.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 @@ -798,12 +798,11 @@ public class VirtualMachineImpl extends MirrorImpl implements PathSearchingVirtu } public String description() { - String[] versionParts = {"" + vmmgr.majorInterfaceVersion(), - "" + vmmgr.minorInterfaceVersion(), - name()}; return java.text.MessageFormat.format(java.util.ResourceBundle. getBundle("com.sun.tools.jdi.resources.jdi").getString("version_format"), - versionParts); + "" + vmmgr.majorInterfaceVersion(), + "" + vmmgr.minorInterfaceVersion(), + name()); } public String version() { diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java index 9bb918b8765..f297e3281be 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java @@ -331,8 +331,6 @@ public class ConstantPool extends Oop implements ClassConstants { if (Assert.ASSERTS_ENABLED) { Assert.that(getTagAt(i).isInvokeDynamic(), "Corrupted constant pool"); } - if (getTagAt(i).value() == JVM_CONSTANT_InvokeDynamicTrans) - return null; int bsmSpec = extractLowShortFromInt(this.getIntAt(i)); TypeArray operands = getOperands(); if (operands == null) return null; // safety first @@ -368,7 +366,6 @@ public class ConstantPool extends Oop implements ClassConstants { case JVM_CONSTANT_MethodHandle: return "JVM_CONSTANT_MethodHandle"; case JVM_CONSTANT_MethodType: return "JVM_CONSTANT_MethodType"; case JVM_CONSTANT_InvokeDynamic: return "JVM_CONSTANT_InvokeDynamic"; - case JVM_CONSTANT_InvokeDynamicTrans: return "JVM_CONSTANT_InvokeDynamic/transitional"; case JVM_CONSTANT_Invalid: return "JVM_CONSTANT_Invalid"; case JVM_CONSTANT_UnresolvedClass: return "JVM_CONSTANT_UnresolvedClass"; case JVM_CONSTANT_UnresolvedClassInError: return "JVM_CONSTANT_UnresolvedClassInError"; @@ -428,7 +425,6 @@ public class ConstantPool extends Oop implements ClassConstants { case JVM_CONSTANT_MethodHandle: case JVM_CONSTANT_MethodType: case JVM_CONSTANT_InvokeDynamic: - case JVM_CONSTANT_InvokeDynamicTrans: visitor.doInt(new IntField(new NamedFieldIdentifier(nameForTag(ctag)), indexOffset(index), true), true); break; } @@ -592,7 +588,6 @@ public class ConstantPool extends Oop implements ClassConstants { break; } - case JVM_CONSTANT_InvokeDynamicTrans: case JVM_CONSTANT_InvokeDynamic: { dos.writeByte(cpConstType); int value = getIntAt(ci); diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java index 3a008c0b059..722496e3c27 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/ClassConstants.java @@ -42,7 +42,7 @@ public interface ClassConstants public static final int JVM_CONSTANT_NameAndType = 12; public static final int JVM_CONSTANT_MethodHandle = 15; public static final int JVM_CONSTANT_MethodType = 16; - public static final int JVM_CONSTANT_InvokeDynamicTrans = 17; // only occurs in old class files + // static final int JVM_CONSTANT_(unused) = 17; public static final int JVM_CONSTANT_InvokeDynamic = 18; // JVM_CONSTANT_MethodHandle subtypes diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java index e9202edb8e5..91739eff523 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ClassWriter.java @@ -321,7 +321,6 @@ public class ClassWriter implements /* imports */ ClassConstants break; } - case JVM_CONSTANT_InvokeDynamicTrans: case JVM_CONSTANT_InvokeDynamic: { dos.writeByte(cpConstType); int value = cpool.getIntAt(ci); diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java index 1b01316cbf6..8e3cbb7f8dd 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java @@ -598,7 +598,6 @@ public class HTMLGenerator implements /* imports */ ClassConstants { buf.cell(Integer.toString(cpool.getIntAt(index))); break; - case JVM_CONSTANT_InvokeDynamicTrans: case JVM_CONSTANT_InvokeDynamic: buf.cell("JVM_CONSTANT_InvokeDynamic"); buf.cell(genLowHighShort(cpool.getIntAt(index)) + diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java index 1ee547be39c..60a2172a598 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ConstantTag.java @@ -40,7 +40,7 @@ public class ConstantTag { private static int JVM_CONSTANT_NameAndType = 12; private static int JVM_CONSTANT_MethodHandle = 15; // JSR 292 private static int JVM_CONSTANT_MethodType = 16; // JSR 292 - private static int JVM_CONSTANT_InvokeDynamicTrans = 17; // JSR 292, only occurs in old class files + // static int JVM_CONSTANT_(unused) = 17; // JSR 292 early drafts only private static int JVM_CONSTANT_InvokeDynamic = 18; // JSR 292 private static int JVM_CONSTANT_Invalid = 0; // For bad value initialization private static int JVM_CONSTANT_UnresolvedClass = 100; // Temporary tag until actual use @@ -83,7 +83,6 @@ public class ConstantTag { public boolean isMethodHandle() { return tag == JVM_CONSTANT_MethodHandle; } public boolean isMethodType() { return tag == JVM_CONSTANT_MethodType; } public boolean isInvokeDynamic() { return tag == JVM_CONSTANT_InvokeDynamic; } - public boolean isInvokeDynamicTrans() { return tag == JVM_CONSTANT_InvokeDynamicTrans; } public boolean isInvalid() { return tag == JVM_CONSTANT_Invalid; } diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index bd9d89e0bef..eaaf6afe6df 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=08 +HS_BUILD_NUMBER=10 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 diff --git a/hotspot/make/linux/makefiles/sa.make b/hotspot/make/linux/makefiles/sa.make index a58a3c20df1..37a53b8cbd4 100644 --- a/hotspot/make/linux/makefiles/sa.make +++ b/hotspot/make/linux/makefiles/sa.make @@ -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 @@ -97,8 +97,8 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2) $(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST))) $(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST))) - $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) - $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) + $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) + $(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) $(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make index ff6f527eeb2..a987ec30aea 100644 --- a/hotspot/make/linux/makefiles/vm.make +++ b/hotspot/make/linux/makefiles/vm.make @@ -142,13 +142,15 @@ COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/opto COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/libadt COMPILER2_PATHS += $(GENERATED)/adfiles +SHARK_PATHS := $(GAMMADIR)/src/share/vm/shark + # Include dirs per type. Src_Dirs/CORE := $(CORE_PATHS) Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS) Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS) Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS) Src_Dirs/ZERO := $(CORE_PATHS) -Src_Dirs/SHARK := $(CORE_PATHS) +Src_Dirs/SHARK := $(CORE_PATHS) $(SHARK_PATHS) Src_Dirs := $(Src_Dirs/$(TYPE)) COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\* diff --git a/hotspot/make/solaris/makefiles/sa.make b/hotspot/make/solaris/makefiles/sa.make index b81fa3e2d4b..d51044333bc 100644 --- a/hotspot/make/solaris/makefiles/sa.make +++ b/hotspot/make/solaris/makefiles/sa.make @@ -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 @@ -88,8 +88,8 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2) $(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST))) $(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST))) - $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) - $(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) + $(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST) + $(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST) $(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer $(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES) diff --git a/hotspot/make/windows/makefiles/sa.make b/hotspot/make/windows/makefiles/sa.make index a3979eef3b1..85072eca8e9 100644 --- a/hotspot/make/windows/makefiles/sa.make +++ b/hotspot/make/windows/makefiles/sa.make @@ -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 @@ -55,9 +55,9 @@ default:: $(GENERATED)\sa-jdi.jar $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) @if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR) @echo ...Building sa-jdi.jar - @echo ...$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) .... - @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) - @$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) + @echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) .... + @$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) + @$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) $(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer $(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES) $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp index b1c1413740f..38bd721cb6f 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp @@ -4257,34 +4257,14 @@ void MacroAssembler::bang_stack_size(Register Rsize, Register Rtsp, /////////////////////////////////////////////////////////////////////////////////// #ifndef SERIALGC -static uint num_stores = 0; -static uint num_null_pre_stores = 0; +static address satb_log_enqueue_with_frame = NULL; +static u_char* satb_log_enqueue_with_frame_end = NULL; -static void count_null_pre_vals(void* pre_val) { - num_stores++; - if (pre_val == NULL) num_null_pre_stores++; - if ((num_stores % 1000000) == 0) { - tty->print_cr(UINT32_FORMAT " stores, " UINT32_FORMAT " (%5.2f%%) with null pre-vals.", - num_stores, num_null_pre_stores, - 100.0*(float)num_null_pre_stores/(float)num_stores); - } -} - -static address satb_log_enqueue_with_frame = 0; -static u_char* satb_log_enqueue_with_frame_end = 0; - -static address satb_log_enqueue_frameless = 0; -static u_char* satb_log_enqueue_frameless_end = 0; +static address satb_log_enqueue_frameless = NULL; +static u_char* satb_log_enqueue_frameless_end = NULL; static int EnqueueCodeSize = 128 DEBUG_ONLY( + 256); // Instructions? -// The calls to this don't work. We'd need to do a fair amount of work to -// make it work. -static void check_index(int ind) { - assert(0 <= ind && ind <= 64*K && ((ind % oopSize) == 0), - "Invariants."); -} - static void generate_satb_log_enqueue(bool with_frame) { BufferBlob* bb = BufferBlob::create("enqueue_with_frame", EnqueueCodeSize); CodeBuffer buf(bb); @@ -4388,13 +4368,27 @@ static inline void generate_satb_log_enqueue_if_necessary(bool with_frame) { } } -void MacroAssembler::g1_write_barrier_pre(Register obj, Register index, int offset, Register tmp, bool preserve_o_regs) { - assert(offset == 0 || index == noreg, "choose one"); - - if (G1DisablePreBarrier) return; - // satb_log_barrier(tmp, obj, offset, preserve_o_regs); +void MacroAssembler::g1_write_barrier_pre(Register obj, + Register index, + int offset, + Register pre_val, + Register tmp, + bool preserve_o_regs) { Label filtered; - // satb_log_barrier_work0(tmp, filtered); + + if (obj == noreg) { + // We are not loading the previous value so make + // sure that we don't trash the value in pre_val + // with the code below. + assert_different_registers(pre_val, tmp); + } else { + // We will be loading the previous value + // in this code so... + assert(offset == 0 || index == noreg, "choose one"); + assert(pre_val == noreg, "check this code"); + } + + // Is marking active? if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { ld(G2, in_bytes(JavaThread::satb_mark_queue_offset() + @@ -4413,61 +4407,46 @@ void MacroAssembler::g1_write_barrier_pre(Register obj, Register index, int offs br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, tmp, filtered); delayed() -> nop(); - // satb_log_barrier_work1(tmp, offset); - if (index == noreg) { - if (Assembler::is_simm13(offset)) { - load_heap_oop(obj, offset, tmp); + // Do we need to load the previous value? + if (obj != noreg) { + // Load the previous value... + if (index == noreg) { + if (Assembler::is_simm13(offset)) { + load_heap_oop(obj, offset, tmp); + } else { + set(offset, tmp); + load_heap_oop(obj, tmp, tmp); + } } else { - set(offset, tmp); - load_heap_oop(obj, tmp, tmp); + load_heap_oop(obj, index, tmp); } - } else { - load_heap_oop(obj, index, tmp); + // Previous value has been loaded into tmp + pre_val = tmp; } - // satb_log_barrier_work2(obj, tmp, offset); - - // satb_log_barrier_work3(tmp, filtered, preserve_o_regs); - - const Register pre_val = tmp; - - if (G1SATBBarrierPrintNullPreVals) { - save_frame(0); - mov(pre_val, O0); - // Save G-regs that target may use. - mov(G1, L1); - mov(G2, L2); - mov(G3, L3); - mov(G4, L4); - mov(G5, L5); - call(CAST_FROM_FN_PTR(address, &count_null_pre_vals)); - delayed()->nop(); - // Restore G-regs that target may have used. - mov(L1, G1); - mov(L2, G2); - mov(L3, G3); - mov(L4, G4); - mov(L5, G5); - restore(G0, G0, G0); - } + assert(pre_val != noreg, "must have a real register"); + // Is the previous value null? // Check on whether to annul. br_on_reg_cond(rc_z, /*annul*/false, Assembler::pt, pre_val, filtered); delayed() -> nop(); // OK, it's not filtered, so we'll need to call enqueue. In the normal - // case, pre_val will be a scratch G-reg, but there's some cases in which - // it's an O-reg. In the first case, do a normal call. In the latter, - // do a save here and call the frameless version. + // case, pre_val will be a scratch G-reg, but there are some cases in + // which it's an O-reg. In the first case, do a normal call. In the + // latter, do a save here and call the frameless version. guarantee(pre_val->is_global() || pre_val->is_out(), "Or we need to think harder."); + if (pre_val->is_global() && !preserve_o_regs) { - generate_satb_log_enqueue_if_necessary(true); // with frame. + generate_satb_log_enqueue_if_necessary(true); // with frame + call(satb_log_enqueue_with_frame); delayed()->mov(pre_val, O0); } else { - generate_satb_log_enqueue_if_necessary(false); // with frameless. + generate_satb_log_enqueue_if_necessary(false); // frameless + save_frame(0); call(satb_log_enqueue_frameless); delayed()->mov(pre_val->after_save(), O0); @@ -4614,7 +4593,6 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val MacroAssembler* post_filter_masm = this; if (new_val == G0) return; - if (G1DisablePostBarrier) return; G1SATBCardTableModRefBS* bs = (G1SATBCardTableModRefBS*) Universe::heap()->barrier_set(); assert(bs->kind() == BarrierSet::G1SATBCT || @@ -4626,6 +4604,7 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val #else srl(tmp, HeapRegion::LogOfHRGrainBytes, tmp); #endif + if (G1PrintCTFilterStats) { guarantee(tmp->is_global(), "Or stats won't work..."); // This is a sleazy hack: I'm temporarily hijacking G2, which I diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp index 86c616fb043..6b2fb3b8ce3 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp @@ -2210,15 +2210,11 @@ public: void card_write_barrier_post(Register store_addr, Register new_val, Register tmp); #ifndef SERIALGC - // Array store and offset - void g1_write_barrier_pre(Register obj, Register index, int offset, Register tmp, bool preserve_o_regs); + // General G1 pre-barrier generator. + void g1_write_barrier_pre(Register obj, Register index, int offset, Register pre_val, Register tmp, bool preserve_o_regs); + // General G1 post-barrier generator void g1_write_barrier_post(Register store_addr, Register new_val, Register tmp); - - // May do filtering, depending on the boolean arguments. - void g1_card_table_write(jbyte* byte_map_base, - Register tmp, Register obj, Register new_val, - bool region_filter, bool null_filter); #endif // SERIALGC // pushes double TOS element of FPU stack on CPU stack; pops from FPU stack diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp index f1f35998755..73d808a7070 100644 --- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp @@ -408,13 +408,20 @@ void ArrayCopyStub::emit_code(LIR_Assembler* ce) { #ifndef SERIALGC void G1PreBarrierStub::emit_code(LIR_Assembler* ce) { + // At this point we know that marking is in progress. + // If do_load() is true then we have to emit the + // load of the previous value; otherwise it has already + // been loaded into _pre_val. + __ bind(_entry); assert(pre_val()->is_register(), "Precondition."); - Register pre_val_reg = pre_val()->as_register(); - ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/); + if (do_load()) { + ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/); + } + if (__ is_in_wdisp16_range(_continuation)) { __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt, pre_val_reg, _continuation); @@ -431,6 +438,96 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) { } +void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) { + // At this point we know that offset == referent_offset. + // + // So we might have to emit: + // if (src == null) goto continuation. + // + // and we definitely have to emit: + // if (klass(src).reference_type == REF_NONE) goto continuation + // if (!marking_active) goto continuation + // if (pre_val == null) goto continuation + // call pre_barrier(pre_val) + // goto continuation + // + __ bind(_entry); + + assert(src()->is_register(), "sanity"); + Register src_reg = src()->as_register(); + + if (gen_src_check()) { + // The original src operand was not a constant. + // Generate src == null? + if (__ is_in_wdisp16_range(_continuation)) { + __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt, + src_reg, _continuation); + } else { + __ cmp(src_reg, G0); + __ brx(Assembler::equal, false, Assembler::pt, _continuation); + } + __ delayed()->nop(); + } + + // Generate src->_klass->_reference_type() == REF_NONE)? + assert(tmp()->is_register(), "sanity"); + Register tmp_reg = tmp()->as_register(); + + __ load_klass(src_reg, tmp_reg); + + Address ref_type_adr(tmp_reg, instanceKlass::reference_type_offset_in_bytes() + sizeof(oopDesc)); + __ ld(ref_type_adr, tmp_reg); + + if (__ is_in_wdisp16_range(_continuation)) { + __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt, + tmp_reg, _continuation); + } else { + __ cmp(tmp_reg, G0); + __ brx(Assembler::equal, false, Assembler::pt, _continuation); + } + __ delayed()->nop(); + + // Is marking active? + assert(thread()->is_register(), "precondition"); + Register thread_reg = thread()->as_pointer_register(); + + Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() + + PtrQueue::byte_offset_of_active())); + + if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { + __ ld(in_progress, tmp_reg); + } else { + assert(in_bytes(PtrQueue::byte_width_of_active()) == 1, "Assumption"); + __ ldsb(in_progress, tmp_reg); + } + if (__ is_in_wdisp16_range(_continuation)) { + __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt, + tmp_reg, _continuation); + } else { + __ cmp(tmp_reg, G0); + __ brx(Assembler::equal, false, Assembler::pt, _continuation); + } + __ delayed()->nop(); + + // val == null? + assert(val()->is_register(), "Precondition."); + Register val_reg = val()->as_register(); + + if (__ is_in_wdisp16_range(_continuation)) { + __ br_on_reg_cond(Assembler::rc_z, /*annul*/false, Assembler::pt, + val_reg, _continuation); + } else { + __ cmp(val_reg, G0); + __ brx(Assembler::equal, false, Assembler::pt, _continuation); + } + __ delayed()->nop(); + + __ call(Runtime1::entry_for(Runtime1::Runtime1::g1_pre_barrier_slow_id)); + __ delayed()->mov(val_reg, G4); + __ br(Assembler::always, false, Assembler::pt, _continuation); + __ delayed()->nop(); +} + jbyte* G1PostBarrierStub::_byte_map_base = NULL; jbyte* G1PostBarrierStub::byte_map_base_slow() { diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 89ec0ef20fc..b4504377643 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -2058,6 +2058,13 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { BasicType basic_type = default_type != NULL ? default_type->element_type()->basic_type() : T_ILLEGAL; if (basic_type == T_ARRAY) basic_type = T_OBJECT; +#ifdef _LP64 + // higher 32bits must be null + __ sra(dst_pos, 0, dst_pos); + __ sra(src_pos, 0, src_pos); + __ sra(length, 0, length); +#endif + // set up the arraycopy stub information ArrayCopyStub* stub = op->stub(); @@ -2065,20 +2072,36 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { // the known type isn't loaded since the code sanity checks // in debug mode and the type isn't required when we know the exact type // also check that the type is an array type. - // We also, for now, always call the stub if the barrier set requires a - // write_ref_pre barrier (which the stub does, but none of the optimized - // cases currently does). - if (op->expected_type() == NULL || - Universe::heap()->barrier_set()->has_write_ref_pre_barrier()) { + if (op->expected_type() == NULL) { __ mov(src, O0); __ mov(src_pos, O1); __ mov(dst, O2); __ mov(dst_pos, O3); __ mov(length, O4); - __ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::arraycopy)); + address copyfunc_addr = StubRoutines::generic_arraycopy(); - __ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry()); - __ delayed()->nop(); + if (copyfunc_addr == NULL) { // Use C version if stub was not generated + __ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::arraycopy)); + } else { +#ifndef PRODUCT + if (PrintC1Statistics) { + address counter = (address)&Runtime1::_generic_arraycopystub_cnt; + __ inc_counter(counter, G1, G3); + } +#endif + __ call_VM_leaf(tmp, copyfunc_addr); + } + + if (copyfunc_addr != NULL) { + __ xor3(O0, -1, tmp); + __ sub(length, tmp, length); + __ add(src_pos, tmp, src_pos); + __ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry()); + __ delayed()->add(dst_pos, tmp, dst_pos); + } else { + __ br_zero(Assembler::less, false, Assembler::pn, O0, *stub->entry()); + __ delayed()->nop(); + } __ bind(*stub->continuation()); return; } @@ -2135,20 +2158,137 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ delayed()->nop(); } + int shift = shift_amount(basic_type); + if (flags & LIR_OpArrayCopy::type_check) { - if (UseCompressedOops) { - // We don't need decode because we just need to compare - __ lduw(src, oopDesc::klass_offset_in_bytes(), tmp); - __ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2); - __ cmp(tmp, tmp2); - __ br(Assembler::notEqual, false, Assembler::pt, *stub->entry()); + // We don't know the array types are compatible + if (basic_type != T_OBJECT) { + // Simple test for basic type arrays + if (UseCompressedOops) { + // We don't need decode because we just need to compare + __ lduw(src, oopDesc::klass_offset_in_bytes(), tmp); + __ lduw(dst, oopDesc::klass_offset_in_bytes(), tmp2); + __ cmp(tmp, tmp2); + __ br(Assembler::notEqual, false, Assembler::pt, *stub->entry()); + } else { + __ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp); + __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2); + __ cmp(tmp, tmp2); + __ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry()); + } + __ delayed()->nop(); } else { - __ ld_ptr(src, oopDesc::klass_offset_in_bytes(), tmp); - __ ld_ptr(dst, oopDesc::klass_offset_in_bytes(), tmp2); - __ cmp(tmp, tmp2); - __ brx(Assembler::notEqual, false, Assembler::pt, *stub->entry()); + // For object arrays, if src is a sub class of dst then we can + // safely do the copy. + address copyfunc_addr = StubRoutines::checkcast_arraycopy(); + + Label cont, slow; + assert_different_registers(tmp, tmp2, G3, G1); + + __ load_klass(src, G3); + __ load_klass(dst, G1); + + __ check_klass_subtype_fast_path(G3, G1, tmp, tmp2, &cont, copyfunc_addr == NULL ? stub->entry() : &slow, NULL); + + __ call(Runtime1::entry_for(Runtime1::slow_subtype_check_id), relocInfo::runtime_call_type); + __ delayed()->nop(); + + __ cmp(G3, 0); + if (copyfunc_addr != NULL) { // use stub if available + // src is not a sub class of dst so we have to do a + // per-element check. + __ br(Assembler::notEqual, false, Assembler::pt, cont); + __ delayed()->nop(); + + __ bind(slow); + + int mask = LIR_OpArrayCopy::src_objarray|LIR_OpArrayCopy::dst_objarray; + if ((flags & mask) != mask) { + // Check that at least both of them object arrays. + assert(flags & mask, "one of the two should be known to be an object array"); + + if (!(flags & LIR_OpArrayCopy::src_objarray)) { + __ load_klass(src, tmp); + } else if (!(flags & LIR_OpArrayCopy::dst_objarray)) { + __ load_klass(dst, tmp); + } + int lh_offset = klassOopDesc::header_size() * HeapWordSize + + Klass::layout_helper_offset_in_bytes(); + + __ lduw(tmp, lh_offset, tmp2); + + jint objArray_lh = Klass::array_layout_helper(T_OBJECT); + __ set(objArray_lh, tmp); + __ cmp(tmp, tmp2); + __ br(Assembler::notEqual, false, Assembler::pt, *stub->entry()); + __ delayed()->nop(); + } + + Register src_ptr = O0; + Register dst_ptr = O1; + Register len = O2; + Register chk_off = O3; + Register super_k = O4; + + __ add(src, arrayOopDesc::base_offset_in_bytes(basic_type), src_ptr); + if (shift == 0) { + __ add(src_ptr, src_pos, src_ptr); + } else { + __ sll(src_pos, shift, tmp); + __ add(src_ptr, tmp, src_ptr); + } + + __ add(dst, arrayOopDesc::base_offset_in_bytes(basic_type), dst_ptr); + if (shift == 0) { + __ add(dst_ptr, dst_pos, dst_ptr); + } else { + __ sll(dst_pos, shift, tmp); + __ add(dst_ptr, tmp, dst_ptr); + } + __ mov(length, len); + __ load_klass(dst, tmp); + + int ek_offset = (klassOopDesc::header_size() * HeapWordSize + + objArrayKlass::element_klass_offset_in_bytes()); + __ ld_ptr(tmp, ek_offset, super_k); + + int sco_offset = (klassOopDesc::header_size() * HeapWordSize + + Klass::super_check_offset_offset_in_bytes()); + __ lduw(super_k, sco_offset, chk_off); + + __ call_VM_leaf(tmp, copyfunc_addr); + +#ifndef PRODUCT + if (PrintC1Statistics) { + Label failed; + __ br_notnull(O0, false, Assembler::pn, failed); + __ delayed()->nop(); + __ inc_counter((address)&Runtime1::_arraycopy_checkcast_cnt, G1, G3); + __ bind(failed); + } +#endif + + __ br_null(O0, false, Assembler::pt, *stub->continuation()); + __ delayed()->xor3(O0, -1, tmp); + +#ifndef PRODUCT + if (PrintC1Statistics) { + __ inc_counter((address)&Runtime1::_arraycopy_checkcast_attempt_cnt, G1, G3); + } +#endif + + __ sub(length, tmp, length); + __ add(src_pos, tmp, src_pos); + __ br(Assembler::always, false, Assembler::pt, *stub->entry()); + __ delayed()->add(dst_pos, tmp, dst_pos); + + __ bind(cont); + } else { + __ br(Assembler::equal, false, Assembler::pn, *stub->entry()); + __ delayed()->nop(); + __ bind(cont); + } } - __ delayed()->nop(); } #ifdef ASSERT @@ -2207,14 +2347,18 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { } #endif - int shift = shift_amount(basic_type); +#ifndef PRODUCT + if (PrintC1Statistics) { + address counter = Runtime1::arraycopy_count_address(basic_type); + __ inc_counter(counter, G1, G3); + } +#endif Register src_ptr = O0; Register dst_ptr = O1; Register len = O2; __ add(src, arrayOopDesc::base_offset_in_bytes(basic_type), src_ptr); - LP64_ONLY(__ sra(src_pos, 0, src_pos);) //higher 32bits must be null if (shift == 0) { __ add(src_ptr, src_pos, src_ptr); } else { @@ -2223,7 +2367,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { } __ add(dst, arrayOopDesc::base_offset_in_bytes(basic_type), dst_ptr); - LP64_ONLY(__ sra(dst_pos, 0, dst_pos);) //higher 32bits must be null if (shift == 0) { __ add(dst_ptr, dst_pos, dst_ptr); } else { @@ -2231,18 +2374,14 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ add(dst_ptr, tmp, dst_ptr); } - if (basic_type != T_OBJECT) { - if (shift == 0) { - __ mov(length, len); - } else { - __ sll(length, shift, len); - } - __ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::primitive_arraycopy)); - } else { - // oop_arraycopy takes a length in number of elements, so don't scale it. - __ mov(length, len); - __ call_VM_leaf(tmp, CAST_FROM_FN_PTR(address, Runtime1::oop_arraycopy)); - } + bool disjoint = (flags & LIR_OpArrayCopy::overlapping) == 0; + bool aligned = (flags & LIR_OpArrayCopy::unaligned) == 0; + const char *name; + address entry = StubRoutines::select_arraycopy_function(basic_type, aligned, disjoint, name, false); + + // arraycopy stubs takes a length in number of elements, so don't scale it. + __ mov(length, len); + __ call_VM_leaf(tmp, entry); __ bind(*stub->continuation()); } diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp index 8869de5e8bd..7b60789d221 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @@ -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 @@ -387,7 +387,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) { if (obj_store) { // Needs GC write barriers. - pre_barrier(LIR_OprFact::address(array_addr), false, NULL); + pre_barrier(LIR_OprFact::address(array_addr), LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); } __ move(value.result(), array_addr, null_check_info); if (obj_store) { @@ -687,7 +688,8 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) { __ add(obj.result(), offset.result(), addr); if (type == objectType) { // Write-barrier needed for Object fields. - pre_barrier(addr, false, NULL); + pre_barrier(addr, LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); } if (type == objectType) @@ -1187,7 +1189,8 @@ void LIRGenerator::put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data, } if (is_obj) { - pre_barrier(LIR_OprFact::address(addr), false, NULL); + pre_barrier(LIR_OprFact::address(addr), LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); // _bs->c1_write_barrier_pre(this, LIR_OprFact::address(addr)); } __ move(data, addr); diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp index 2905687ebce..35e70e99676 100644 --- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @@ -387,7 +387,7 @@ void C1_MacroAssembler::verify_stack_oop(int stack_offset) { void C1_MacroAssembler::verify_not_null_oop(Register r) { Label not_null; - br_zero(Assembler::notEqual, false, Assembler::pt, r, not_null); + br_notnull(r, false, Assembler::pt, not_null); delayed()->nop(); stop("non-null oop required"); bind(not_null); diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp index 479a99152cc..f3a3f10ea80 100644 --- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp @@ -551,6 +551,26 @@ address InterpreterGenerator::generate_accessor_entry(void) { return NULL; } +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + if (UseG1GC) { + // We need to generate have a routine that generates code to: + // * load the value in the referent field + // * passes that value to the pre-barrier. + // + // In the case of G1 this will record the value of the + // referent in an SATB buffer if marking is active. + // This will cause concurrent marking to mark the referent + // field as live. + Unimplemented(); + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + // // Interpreter stub for calling a native method. (C++ interpreter) // This sets up a somewhat different looking stack for calling the native method diff --git a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp index ce3c3d48f69..2cca1e527db 100644 --- a/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/interpreterGenerator_sparc.hpp @@ -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 @@ -36,6 +36,7 @@ address generate_math_entry(AbstractInterpreter::MethodKind kind); address generate_empty_entry(void); address generate_accessor_entry(void); + address generate_Reference_get_entry(void); void lock_method(void); void save_native_result(void); void restore_native_result(void); diff --git a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp index 0c84df6afe9..f90f28873e8 100644 --- a/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interpreter_sparc.cpp @@ -407,6 +407,8 @@ address AbstractInterpreterGenerator::generate_method_entry(AbstractInterpreter: case Interpreter::java_lang_math_abs : break; case Interpreter::java_lang_math_log : break; case Interpreter::java_lang_math_log10 : break; + case Interpreter::java_lang_ref_reference_get + : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break; default : ShouldNotReachHere(); break; } diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp index 8984a1df357..109eacfc446 100644 --- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp @@ -763,6 +763,87 @@ address InterpreterGenerator::generate_accessor_entry(void) { return NULL; } +// Method entry for java.lang.ref.Reference.get. +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + // Code: _aload_0, _getfield, _areturn + // parameter size = 1 + // + // The code that gets generated by this routine is split into 2 parts: + // 1. The "intrinsified" code for G1 (or any SATB based GC), + // 2. The slow path - which is an expansion of the regular method entry. + // + // Notes:- + // * In the G1 code we do not check whether we need to block for + // a safepoint. If G1 is enabled then we must execute the specialized + // code for Reference.get (except when the Reference object is null) + // so that we can log the value in the referent field with an SATB + // update buffer. + // If the code for the getfield template is modified so that the + // G1 pre-barrier code is executed when the current method is + // Reference.get() then going through the normal method entry + // will be fine. + // * The G1 code can, however, check the receiver object (the instance + // of java.lang.Reference) and jump to the slow path if null. If the + // Reference object is null then we obviously cannot fetch the referent + // and so we don't need to call the G1 pre-barrier. Thus we can use the + // regular method entry code to generate the NPE. + // + // This code is based on generate_accessor_enty. + + address entry = __ pc(); + + const int referent_offset = java_lang_ref_Reference::referent_offset; + guarantee(referent_offset > 0, "referent offset not initialized"); + + if (UseG1GC) { + Label slow_path; + + // In the G1 code we don't check if we need to reach a safepoint. We + // continue and the thread will safepoint at the next bytecode dispatch. + + // Check if local 0 != NULL + // If the receiver is null then it is OK to jump to the slow path. + __ ld_ptr(Gargs, G0, Otos_i ); // get local 0 + __ tst(Otos_i); // check if local 0 == NULL and go the slow path + __ brx(Assembler::zero, false, Assembler::pn, slow_path); + __ delayed()->nop(); + + + // Load the value of the referent field. + if (Assembler::is_simm13(referent_offset)) { + __ load_heap_oop(Otos_i, referent_offset, Otos_i); + } else { + __ set(referent_offset, G3_scratch); + __ load_heap_oop(Otos_i, G3_scratch, Otos_i); + } + + // Generate the G1 pre-barrier code to log the value of + // the referent field in an SATB buffer. Note with + // these parameters the pre-barrier does not generate + // the load of the previous value + + __ g1_write_barrier_pre(noreg /* obj */, noreg /* index */, 0 /* offset */, + Otos_i /* pre_val */, + G3_scratch /* tmp */, + true /* preserve_o_regs */); + + // _areturn + __ retl(); // return from leaf routine + __ delayed()->mov(O5_savedSP, SP); + + // Generate regular method entry + __ bind(slow_path); + (void) generate_normal_entry(false); + return entry; + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + // // Interpreter stub for calling a native method. (asm interpreter) // This sets up a somewhat different looking stack for calling the native method diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp index 9f4bcc6b4d6..a6ce593f34e 100644 --- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp @@ -57,7 +57,11 @@ static void do_oop_store(InterpreterMacroAssembler* _masm, case BarrierSet::G1SATBCT: case BarrierSet::G1SATBCTLogging: { - __ g1_write_barrier_pre( base, index, offset, tmp, /*preserve_o_regs*/true); + // Load and record the previous value. + __ g1_write_barrier_pre(base, index, offset, + noreg /* pre_val */, + tmp, true /*preserve_o_regs*/); + if (index == noreg ) { assert(Assembler::is_simm13(offset), "fix this code"); __ store_heap_oop(val, base, offset); diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp index 0e96e8d427a..67e856d2715 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp @@ -2317,7 +2317,7 @@ void Assembler::prefetchnta(Address src) { } void Assembler::prefetchr(Address src) { - NOT_LP64(assert(VM_Version::supports_3dnow(), "must support")); + NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support")); InstructionMark im(this); prefetch_prefix(src); emit_byte(0x0D); @@ -2349,7 +2349,7 @@ void Assembler::prefetcht2(Address src) { } void Assembler::prefetchw(Address src) { - NOT_LP64(assert(VM_Version::supports_3dnow(), "must support")); + NOT_LP64(assert(VM_Version::supports_3dnow_prefetch(), "must support")); InstructionMark im(this); prefetch_prefix(src); emit_byte(0x0D); @@ -6902,26 +6902,39 @@ void MacroAssembler::testl(Register dst, AddressLiteral src) { #ifndef SERIALGC void MacroAssembler::g1_write_barrier_pre(Register obj, -#ifndef _LP64 + Register pre_val, Register thread, -#endif Register tmp, - Register tmp2, - bool tosca_live) { - LP64_ONLY(Register thread = r15_thread;) + bool tosca_live, + bool expand_call) { + + // If expand_call is true then we expand the call_VM_leaf macro + // directly to skip generating the check by + // InterpreterMacroAssembler::call_VM_leaf_base that checks _last_sp. + +#ifdef _LP64 + assert(thread == r15_thread, "must be"); +#endif // _LP64 + + Label done; + Label runtime; + + assert(pre_val != noreg, "check this code"); + + if (obj != noreg) { + assert_different_registers(obj, pre_val, tmp); + assert(pre_val != rax, "check this code"); + } + Address in_progress(thread, in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active())); - Address index(thread, in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_index())); Address buffer(thread, in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_buf())); - Label done; - Label runtime; - - // if (!marking_in_progress) goto done; + // Is marking active? if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { cmpl(in_progress, 0); } else { @@ -6930,65 +6943,92 @@ void MacroAssembler::g1_write_barrier_pre(Register obj, } jcc(Assembler::equal, done); - // if (x.f == NULL) goto done; -#ifdef _LP64 - load_heap_oop(tmp2, Address(obj, 0)); -#else - movptr(tmp2, Address(obj, 0)); -#endif - cmpptr(tmp2, (int32_t) NULL_WORD); + // Do we need to load the previous value? + if (obj != noreg) { + load_heap_oop(pre_val, Address(obj, 0)); + } + + // Is the previous value null? + cmpptr(pre_val, (int32_t) NULL_WORD); jcc(Assembler::equal, done); // Can we store original value in the thread's buffer? + // Is index == 0? + // (The index field is typed as size_t.) -#ifdef _LP64 - movslq(tmp, index); - cmpq(tmp, 0); -#else - cmpl(index, 0); -#endif - jcc(Assembler::equal, runtime); -#ifdef _LP64 - subq(tmp, wordSize); - movl(index, tmp); - addq(tmp, buffer); -#else - subl(index, wordSize); - movl(tmp, buffer); - addl(tmp, index); -#endif - movptr(Address(tmp, 0), tmp2); + movptr(tmp, index); // tmp := *index_adr + cmpptr(tmp, 0); // tmp == 0? + jcc(Assembler::equal, runtime); // If yes, goto runtime + + subptr(tmp, wordSize); // tmp := tmp - wordSize + movptr(index, tmp); // *index_adr := tmp + addptr(tmp, buffer); // tmp := tmp + *buffer_adr + + // Record the previous value + movptr(Address(tmp, 0), pre_val); jmp(done); + bind(runtime); // save the live input values if(tosca_live) push(rax); - push(obj); -#ifdef _LP64 - call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), tmp2, r15_thread); -#else - push(thread); - call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), tmp2, thread); - pop(thread); -#endif - pop(obj); - if(tosca_live) pop(rax); - bind(done); + if (obj != noreg && obj != rax) + push(obj); + + if (pre_val != rax) + push(pre_val); + + // Calling the runtime using the regular call_VM_leaf mechanism generates + // code (generated by InterpreterMacroAssember::call_VM_leaf_base) + // that checks that the *(ebp+frame::interpreter_frame_last_sp) == NULL. + // + // If we care generating the pre-barrier without a frame (e.g. in the + // intrinsified Reference.get() routine) then ebp might be pointing to + // the caller frame and so this check will most likely fail at runtime. + // + // Expanding the call directly bypasses the generation of the check. + // So when we do not have have a full interpreter frame on the stack + // expand_call should be passed true. + + NOT_LP64( push(thread); ) + + if (expand_call) { + LP64_ONLY( assert(pre_val != c_rarg1, "smashed arg"); ) + pass_arg1(this, thread); + pass_arg0(this, pre_val); + MacroAssembler::call_VM_leaf_base(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), 2); + } else { + call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), pre_val, thread); + } + + NOT_LP64( pop(thread); ) + + // save the live input values + if (pre_val != rax) + pop(pre_val); + + if (obj != noreg && obj != rax) + pop(obj); + + if(tosca_live) pop(rax); + + bind(done); } void MacroAssembler::g1_write_barrier_post(Register store_addr, Register new_val, -#ifndef _LP64 Register thread, -#endif Register tmp, Register tmp2) { +#ifdef _LP64 + assert(thread == r15_thread, "must be"); +#endif // _LP64 - LP64_ONLY(Register thread = r15_thread;) Address queue_index(thread, in_bytes(JavaThread::dirty_card_queue_offset() + PtrQueue::byte_offset_of_index())); Address buffer(thread, in_bytes(JavaThread::dirty_card_queue_offset() + PtrQueue::byte_offset_of_buf())); + BarrierSet* bs = Universe::heap()->barrier_set(); CardTableModRefBS* ct = (CardTableModRefBS*)bs; Label done; @@ -7067,7 +7107,6 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, pop(store_addr); bind(done); - } #endif // SERIALGC @@ -7941,12 +7980,12 @@ void MacroAssembler::verify_oop_addr(Address addr, const char* s) { #endif push(rax); // save rax, // addr may contain rsp so we will have to adjust it based on the push - // we just did + // we just did (and on 64 bit we do two pushes) // NOTE: 64bit seemed to have had a bug in that it did movq(addr, rax); which // stores rax into addr which is backwards of what was intended. if (addr.uses(rsp)) { lea(rax, addr); - pushptr(Address(rax, BytesPerWord)); + pushptr(Address(rax, LP64_ONLY(2 *) BytesPerWord)); } else { pushptr(addr); } @@ -8396,6 +8435,17 @@ void MacroAssembler::load_heap_oop(Register dst, Address src) { movptr(dst, src); } +// Doesn't do verfication, generates fixed size code +void MacroAssembler::load_heap_oop_not_null(Register dst, Address src) { +#ifdef _LP64 + if (UseCompressedOops) { + movl(dst, src); + decode_heap_oop_not_null(dst); + } else +#endif + movptr(dst, src); +} + void MacroAssembler::store_heap_oop(Address dst, Register src) { #ifdef _LP64 if (UseCompressedOops) { diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp index 6ef01cbb409..4c6b32fafee 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp @@ -385,10 +385,18 @@ class OopAddress: public AddressLiteral { }; class ExternalAddress: public AddressLiteral { + private: + static relocInfo::relocType reloc_for_target(address target) { + // Sometimes ExternalAddress is used for values which aren't + // exactly addresses, like the card table base. + // external_word_type can't be used for values in the first page + // so just skip the reloc in that case. + return external_word_Relocation::can_be_relocated(target) ? relocInfo::external_word_type : relocInfo::none; + } - public: + public: - ExternalAddress(address target) : AddressLiteral(target, relocInfo::external_word_type){} + ExternalAddress(address target) : AddressLiteral(target, reloc_for_target(target)) {} }; @@ -1445,6 +1453,7 @@ private: class MacroAssembler: public Assembler { friend class LIR_Assembler; friend class Runtime1; // as_Address() + protected: Address as_Address(AddressLiteral adr); @@ -1666,21 +1675,22 @@ class MacroAssembler: public Assembler { void store_check(Register obj); // store check for obj - register is destroyed afterwards void store_check(Register obj, Address dst); // same as above, dst is exact store location (reg. is destroyed) +#ifndef SERIALGC + void g1_write_barrier_pre(Register obj, -#ifndef _LP64 + Register pre_val, Register thread, -#endif Register tmp, - Register tmp2, - bool tosca_live); + bool tosca_live, + bool expand_call); + void g1_write_barrier_post(Register store_addr, Register new_val, -#ifndef _LP64 Register thread, -#endif Register tmp, Register tmp2); +#endif // SERIALGC // split store_check(Register obj) to enhance instruction interleaving void store_check_part_1(Register obj); @@ -1701,6 +1711,7 @@ class MacroAssembler: public Assembler { void store_klass(Register dst, Register src); void load_heap_oop(Register dst, Address src); + void load_heap_oop_not_null(Register dst, Address src); void store_heap_oop(Address dst, Register src); // Used for storing NULL. All other oop constants should be diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp index 3603831155a..5e2d7feb996 100644 --- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp @@ -316,7 +316,9 @@ void PatchingStub::emit_code(LIR_Assembler* ce) { Register tmp2 = rbx; __ push(tmp); __ push(tmp2); - __ load_heap_oop(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); + // Load without verification to keep code size small. We need it because + // begin_initialized_entry_offset has to fit in a byte. Also, we know it's not null. + __ load_heap_oop_not_null(tmp2, Address(_obj, java_lang_Class::klass_offset_in_bytes())); __ get_thread(tmp); __ cmpptr(tmp, Address(tmp2, instanceKlass::init_thread_offset_in_bytes() + sizeof(klassOopDesc))); __ pop(tmp2); @@ -464,15 +466,19 @@ void ArrayCopyStub::emit_code(LIR_Assembler* ce) { #ifndef SERIALGC void G1PreBarrierStub::emit_code(LIR_Assembler* ce) { - - // At this point we know that marking is in progress + // At this point we know that marking is in progress. + // If do_load() is true then we have to emit the + // load of the previous value; otherwise it has already + // been loaded into _pre_val. __ bind(_entry); assert(pre_val()->is_register(), "Precondition."); Register pre_val_reg = pre_val()->as_register(); - ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/); + if (do_load()) { + ce->mem2reg(addr(), pre_val(), T_OBJECT, patch_code(), info(), false /*wide*/, false /*unaligned*/); + } __ cmpptr(pre_val_reg, (int32_t) NULL_WORD); __ jcc(Assembler::equal, _continuation); @@ -482,6 +488,68 @@ void G1PreBarrierStub::emit_code(LIR_Assembler* ce) { } +void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) { + // At this point we know that offset == referent_offset. + // + // So we might have to emit: + // if (src == null) goto continuation. + // + // and we definitely have to emit: + // if (klass(src).reference_type == REF_NONE) goto continuation + // if (!marking_active) goto continuation + // if (pre_val == null) goto continuation + // call pre_barrier(pre_val) + // goto continuation + // + __ bind(_entry); + + assert(src()->is_register(), "sanity"); + Register src_reg = src()->as_register(); + + if (gen_src_check()) { + // The original src operand was not a constant. + // Generate src == null? + __ cmpptr(src_reg, (int32_t) NULL_WORD); + __ jcc(Assembler::equal, _continuation); + } + + // Generate src->_klass->_reference_type == REF_NONE)? + assert(tmp()->is_register(), "sanity"); + Register tmp_reg = tmp()->as_register(); + + __ load_klass(tmp_reg, src_reg); + + Address ref_type_adr(tmp_reg, instanceKlass::reference_type_offset_in_bytes() + sizeof(oopDesc)); + __ cmpl(ref_type_adr, REF_NONE); + __ jcc(Assembler::equal, _continuation); + + // Is marking active? + assert(thread()->is_register(), "precondition"); + Register thread_reg = thread()->as_pointer_register(); + + Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() + + PtrQueue::byte_offset_of_active())); + + if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { + __ cmpl(in_progress, 0); + } else { + assert(in_bytes(PtrQueue::byte_width_of_active()) == 1, "Assumption"); + __ cmpb(in_progress, 0); + } + __ jcc(Assembler::equal, _continuation); + + // val == null? + assert(val()->is_register(), "Precondition."); + Register val_reg = val()->as_register(); + + __ cmpptr(val_reg, (int32_t) NULL_WORD); + __ jcc(Assembler::equal, _continuation); + + ce->store_parameter(val()->as_register(), 0); + __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::g1_pre_barrier_slow_id))); + __ jmp(_continuation); +} + jbyte* G1PostBarrierStub::_byte_map_base = NULL; jbyte* G1PostBarrierStub::byte_map_base_slow() { diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 7ee3391263b..474e9579511 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1401,7 +1401,7 @@ void LIR_Assembler::prefetchr(LIR_Opr src) { default: ShouldNotReachHere(); break; } - } else if (VM_Version::supports_3dnow()) { + } else if (VM_Version::supports_3dnow_prefetch()) { __ prefetchr(from_addr); } } @@ -1424,7 +1424,7 @@ void LIR_Assembler::prefetchw(LIR_Opr src) { default: ShouldNotReachHere(); break; } - } else if (VM_Version::supports_3dnow()) { + } else if (VM_Version::supports_3dnow_prefetch()) { __ prefetchw(from_addr); } } @@ -3102,7 +3102,7 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { BasicType basic_type = default_type != NULL ? default_type->element_type()->basic_type() : T_ILLEGAL; if (basic_type == T_ARRAY) basic_type = T_OBJECT; - // if we don't know anything or it's an object array, just go through the generic arraycopy + // if we don't know anything, just go through the generic arraycopy if (default_type == NULL) { Label done; // save outgoing arguments on stack in case call to System.arraycopy is needed @@ -3123,7 +3123,9 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { store_parameter(src, 4); NOT_LP64(assert(src == rcx && src_pos == rdx, "mismatch in calling convention");) - address entry = CAST_FROM_FN_PTR(address, Runtime1::arraycopy); + address C_entry = CAST_FROM_FN_PTR(address, Runtime1::arraycopy); + + address copyfunc_addr = StubRoutines::generic_arraycopy(); // pass arguments: may push as this is not a safepoint; SP must be fix at each safepoint #ifdef _LP64 @@ -3141,11 +3143,29 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { // Allocate abi space for args but be sure to keep stack aligned __ subptr(rsp, 6*wordSize); store_parameter(j_rarg4, 4); - __ call(RuntimeAddress(entry)); + if (copyfunc_addr == NULL) { // Use C version if stub was not generated + __ call(RuntimeAddress(C_entry)); + } else { +#ifndef PRODUCT + if (PrintC1Statistics) { + __ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt)); + } +#endif + __ call(RuntimeAddress(copyfunc_addr)); + } __ addptr(rsp, 6*wordSize); #else __ mov(c_rarg4, j_rarg4); - __ call(RuntimeAddress(entry)); + if (copyfunc_addr == NULL) { // Use C version if stub was not generated + __ call(RuntimeAddress(C_entry)); + } else { +#ifndef PRODUCT + if (PrintC1Statistics) { + __ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt)); + } +#endif + __ call(RuntimeAddress(copyfunc_addr)); + } #endif // _WIN64 #else __ push(length); @@ -3153,13 +3173,28 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ push(dst); __ push(src_pos); __ push(src); - __ call_VM_leaf(entry, 5); // removes pushed parameter from the stack + + if (copyfunc_addr == NULL) { // Use C version if stub was not generated + __ call_VM_leaf(C_entry, 5); // removes pushed parameter from the stack + } else { +#ifndef PRODUCT + if (PrintC1Statistics) { + __ incrementl(ExternalAddress((address)&Runtime1::_generic_arraycopystub_cnt)); + } +#endif + __ call_VM_leaf(copyfunc_addr, 5); // removes pushed parameter from the stack + } #endif // _LP64 __ cmpl(rax, 0); __ jcc(Assembler::equal, *stub->continuation()); + if (copyfunc_addr != NULL) { + __ mov(tmp, rax); + __ xorl(tmp, -1); + } + // Reload values from the stack so they are where the stub // expects them. __ movptr (dst, Address(rsp, 0*BytesPerWord)); @@ -3167,6 +3202,12 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ movptr (length, Address(rsp, 2*BytesPerWord)); __ movptr (src_pos, Address(rsp, 3*BytesPerWord)); __ movptr (src, Address(rsp, 4*BytesPerWord)); + + if (copyfunc_addr != NULL) { + __ subl(length, tmp); + __ addl(src_pos, tmp); + __ addl(dst_pos, tmp); + } __ jmp(*stub->entry()); __ bind(*stub->continuation()); @@ -3226,10 +3267,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ testl(dst_pos, dst_pos); __ jcc(Assembler::less, *stub->entry()); } - if (flags & LIR_OpArrayCopy::length_positive_check) { - __ testl(length, length); - __ jcc(Assembler::less, *stub->entry()); - } if (flags & LIR_OpArrayCopy::src_range_check) { __ lea(tmp, Address(src_pos, length, Address::times_1, 0)); @@ -3242,15 +3279,190 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ jcc(Assembler::above, *stub->entry()); } + if (flags & LIR_OpArrayCopy::length_positive_check) { + __ testl(length, length); + __ jcc(Assembler::less, *stub->entry()); + __ jcc(Assembler::zero, *stub->continuation()); + } + +#ifdef _LP64 + __ movl2ptr(src_pos, src_pos); //higher 32bits must be null + __ movl2ptr(dst_pos, dst_pos); //higher 32bits must be null +#endif + if (flags & LIR_OpArrayCopy::type_check) { - if (UseCompressedOops) { - __ movl(tmp, src_klass_addr); - __ cmpl(tmp, dst_klass_addr); + // We don't know the array types are compatible + if (basic_type != T_OBJECT) { + // Simple test for basic type arrays + if (UseCompressedOops) { + __ movl(tmp, src_klass_addr); + __ cmpl(tmp, dst_klass_addr); + } else { + __ movptr(tmp, src_klass_addr); + __ cmpptr(tmp, dst_klass_addr); + } + __ jcc(Assembler::notEqual, *stub->entry()); } else { - __ movptr(tmp, src_klass_addr); - __ cmpptr(tmp, dst_klass_addr); + // For object arrays, if src is a sub class of dst then we can + // safely do the copy. + Label cont, slow; + + __ push(src); + __ push(dst); + + __ load_klass(src, src); + __ load_klass(dst, dst); + + __ check_klass_subtype_fast_path(src, dst, tmp, &cont, &slow, NULL); + + __ push(src); + __ push(dst); + __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::slow_subtype_check_id))); + __ pop(dst); + __ pop(src); + + __ cmpl(src, 0); + __ jcc(Assembler::notEqual, cont); + + __ bind(slow); + __ pop(dst); + __ pop(src); + + address copyfunc_addr = StubRoutines::checkcast_arraycopy(); + if (copyfunc_addr != NULL) { // use stub if available + // src is not a sub class of dst so we have to do a + // per-element check. + + int mask = LIR_OpArrayCopy::src_objarray|LIR_OpArrayCopy::dst_objarray; + if ((flags & mask) != mask) { + // Check that at least both of them object arrays. + assert(flags & mask, "one of the two should be known to be an object array"); + + if (!(flags & LIR_OpArrayCopy::src_objarray)) { + __ load_klass(tmp, src); + } else if (!(flags & LIR_OpArrayCopy::dst_objarray)) { + __ load_klass(tmp, dst); + } + int lh_offset = klassOopDesc::header_size() * HeapWordSize + + Klass::layout_helper_offset_in_bytes(); + Address klass_lh_addr(tmp, lh_offset); + jint objArray_lh = Klass::array_layout_helper(T_OBJECT); + __ cmpl(klass_lh_addr, objArray_lh); + __ jcc(Assembler::notEqual, *stub->entry()); + } + +#ifndef _LP64 + // save caller save registers + store_parameter(rax, 2); + store_parameter(rcx, 1); + store_parameter(rdx, 0); + + __ movptr(tmp, dst_klass_addr); + __ movptr(tmp, Address(tmp, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc))); + __ push(tmp); + __ movl(tmp, Address(tmp, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc))); + __ push(tmp); + __ push(length); + __ lea(tmp, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); + __ push(tmp); + __ lea(tmp, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); + __ push(tmp); + + __ call_VM_leaf(copyfunc_addr, 5); +#else + __ movl2ptr(length, length); //higher 32bits must be null + + // save caller save registers: copy them to callee save registers + __ mov(rbx, rdx); + __ mov(r13, r8); + __ mov(r14, r9); +#ifndef _WIN64 + store_parameter(rsi, 1); + store_parameter(rcx, 0); + // on WIN64 other incoming parameters are in rdi and rsi saved + // across the call +#endif + + __ lea(c_rarg0, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); + assert_different_registers(c_rarg0, dst, dst_pos, length); + __ lea(c_rarg1, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); + assert_different_registers(c_rarg1, dst, length); + + __ mov(c_rarg2, length); + assert_different_registers(c_rarg2, dst); + +#ifdef _WIN64 + // Allocate abi space for args but be sure to keep stack aligned + __ subptr(rsp, 6*wordSize); + __ load_klass(c_rarg3, dst); + __ movptr(c_rarg3, Address(c_rarg3, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc))); + store_parameter(c_rarg3, 4); + __ movl(c_rarg3, Address(c_rarg3, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc))); + __ call(RuntimeAddress(copyfunc_addr)); + __ addptr(rsp, 6*wordSize); +#else + __ load_klass(c_rarg4, dst); + __ movptr(c_rarg4, Address(c_rarg4, objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc))); + __ movl(c_rarg3, Address(c_rarg4, Klass::super_check_offset_offset_in_bytes() + sizeof(oopDesc))); + __ call(RuntimeAddress(copyfunc_addr)); +#endif + +#endif + +#ifndef PRODUCT + if (PrintC1Statistics) { + Label failed; + __ testl(rax, rax); + __ jcc(Assembler::notZero, failed); + __ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_checkcast_cnt)); + __ bind(failed); + } +#endif + + __ testl(rax, rax); + __ jcc(Assembler::zero, *stub->continuation()); + +#ifndef PRODUCT + if (PrintC1Statistics) { + __ incrementl(ExternalAddress((address)&Runtime1::_arraycopy_checkcast_attempt_cnt)); + } +#endif + + __ mov(tmp, rax); + + __ xorl(tmp, -1); + +#ifndef _LP64 + // restore caller save registers + assert_different_registers(tmp, rdx, rcx, rax); // result of stub will be lost + __ movptr(rdx, Address(rsp, 0*BytesPerWord)); + __ movptr(rcx, Address(rsp, 1*BytesPerWord)); + __ movptr(rax, Address(rsp, 2*BytesPerWord)); +#else + // restore caller save registers + __ mov(rdx, rbx); + __ mov(r8, r13); + __ mov(r9, r14); +#ifndef _WIN64 + assert_different_registers(tmp, rdx, r8, r9, rcx, rsi); // result of stub will be lost + __ movptr(rcx, Address(rsp, 0*BytesPerWord)); + __ movptr(rsi, Address(rsp, 1*BytesPerWord)); +#else + assert_different_registers(tmp, rdx, r8, r9); // result of stub will be lost +#endif +#endif + + __ subl(length, tmp); + __ addl(src_pos, tmp); + __ addl(dst_pos, tmp); + } + + __ jmp(*stub->entry()); + + __ bind(cont); + __ pop(dst); + __ pop(src); } - __ jcc(Assembler::notEqual, *stub->entry()); } #ifdef ASSERT @@ -3291,16 +3503,16 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { } #endif - if (shift_amount > 0 && basic_type != T_OBJECT) { - __ shlptr(length, shift_amount); +#ifndef PRODUCT + if (PrintC1Statistics) { + __ incrementl(ExternalAddress(Runtime1::arraycopy_count_address(basic_type))); } +#endif #ifdef _LP64 assert_different_registers(c_rarg0, dst, dst_pos, length); - __ movl2ptr(src_pos, src_pos); //higher 32bits must be null __ lea(c_rarg0, Address(src, src_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); assert_different_registers(c_rarg1, length); - __ movl2ptr(dst_pos, dst_pos); //higher 32bits must be null __ lea(c_rarg1, Address(dst, dst_pos, scale, arrayOopDesc::base_offset_in_bytes(basic_type))); __ mov(c_rarg2, length); @@ -3311,11 +3523,12 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { store_parameter(tmp, 1); store_parameter(length, 2); #endif // _LP64 - if (basic_type == T_OBJECT) { - __ call_VM_leaf(CAST_FROM_FN_PTR(address, Runtime1::oop_arraycopy), 0); - } else { - __ call_VM_leaf(CAST_FROM_FN_PTR(address, Runtime1::primitive_arraycopy), 0); - } + + bool disjoint = (flags & LIR_OpArrayCopy::overlapping) == 0; + bool aligned = (flags & LIR_OpArrayCopy::unaligned) == 0; + const char *name; + address entry = StubRoutines::select_arraycopy_function(basic_type, aligned, disjoint, name, false); + __ call_VM_leaf(entry, 0); __ bind(*stub->continuation()); } diff --git a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp index 14ef001bda7..c71590a2614 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @@ -326,7 +326,8 @@ void LIRGenerator::do_StoreIndexed(StoreIndexed* x) { if (obj_store) { // Needs GC write barriers. - pre_barrier(LIR_OprFact::address(array_addr), false, NULL); + pre_barrier(LIR_OprFact::address(array_addr), LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); __ move(value.result(), array_addr, null_check_info); // Seems to be a precise post_barrier(LIR_OprFact::address(array_addr), value.result()); @@ -794,7 +795,8 @@ void LIRGenerator::do_CompareAndSwap(Intrinsic* x, ValueType* type) { if (type == objectType) { // Write-barrier needed for Object fields. // Do the pre-write barrier, if any. - pre_barrier(addr, false, NULL); + pre_barrier(addr, LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); } LIR_Opr ill = LIR_OprFact::illegalOpr; // for convenience @@ -1339,7 +1341,8 @@ void LIRGenerator::put_Object_unsafe(LIR_Opr src, LIR_Opr offset, LIR_Opr data, bool is_obj = (type == T_ARRAY || type == T_OBJECT); if (is_obj) { // Do the pre-write barrier, if any. - pre_barrier(LIR_OprFact::address(addr), false, NULL); + pre_barrier(LIR_OprFact::address(addr), LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load */, false /* patch */, NULL); __ move(data, addr); assert(src->is_register(), "must be register"); // Seems to be a precise address diff --git a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp index 8f5bdd7d4ab..2f9f1d47deb 100644 --- a/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp +++ b/hotspot/src/cpu/x86/vm/cppInterpreterGenerator_x86.hpp @@ -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 @@ -34,6 +34,7 @@ address generate_math_entry(AbstractInterpreter::MethodKind kind); address generate_empty_entry(void); address generate_accessor_entry(void); + address generate_Reference_get_entry(void); void lock_method(void); void generate_stack_overflow_check(void); diff --git a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp index 79bff4838a8..edacb282edb 100644 --- a/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp +++ b/hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp @@ -936,6 +936,26 @@ address InterpreterGenerator::generate_accessor_entry(void) { } +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + if (UseG1GC) { + // We need to generate have a routine that generates code to: + // * load the value in the referent field + // * passes that value to the pre-barrier. + // + // In the case of G1 this will record the value of the + // referent in an SATB buffer if marking is active. + // This will cause concurrent marking to mark the referent + // field as live. + Unimplemented(); + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + // // C++ Interpreter stub for calling a native method. // This sets up a somewhat different looking stack for calling the native method @@ -2210,6 +2230,8 @@ address AbstractInterpreterGenerator::generate_method_entry(AbstractInterpreter: case Interpreter::java_lang_math_log : // fall thru case Interpreter::java_lang_math_log10 : // fall thru case Interpreter::java_lang_math_sqrt : entry_point = ((InterpreterGenerator*)this)->generate_math_entry(kind); break; + case Interpreter::java_lang_ref_reference_get + : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break; default : ShouldNotReachHere(); break; } diff --git a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp index 7f92fbd15c5..30048652008 100644 --- a/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp +++ b/hotspot/src/cpu/x86/vm/interpreterGenerator_x86.hpp @@ -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 @@ -39,6 +39,7 @@ address generate_math_entry(AbstractInterpreter::MethodKind kind); address generate_empty_entry(void); address generate_accessor_entry(void); + address generate_Reference_get_entry(); void lock_method(void); void generate_stack_overflow_check(void); diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp index ecfe26e0031..a7222c265a5 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp @@ -776,6 +776,98 @@ address InterpreterGenerator::generate_accessor_entry(void) { } +// Method entry for java.lang.ref.Reference.get. +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + // Code: _aload_0, _getfield, _areturn + // parameter size = 1 + // + // The code that gets generated by this routine is split into 2 parts: + // 1. The "intrinsified" code for G1 (or any SATB based GC), + // 2. The slow path - which is an expansion of the regular method entry. + // + // Notes:- + // * In the G1 code we do not check whether we need to block for + // a safepoint. If G1 is enabled then we must execute the specialized + // code for Reference.get (except when the Reference object is null) + // so that we can log the value in the referent field with an SATB + // update buffer. + // If the code for the getfield template is modified so that the + // G1 pre-barrier code is executed when the current method is + // Reference.get() then going through the normal method entry + // will be fine. + // * The G1 code below can, however, check the receiver object (the instance + // of java.lang.Reference) and jump to the slow path if null. If the + // Reference object is null then we obviously cannot fetch the referent + // and so we don't need to call the G1 pre-barrier. Thus we can use the + // regular method entry code to generate the NPE. + // + // This code is based on generate_accessor_enty. + + // rbx,: methodOop + // rcx: receiver (preserve for slow entry into asm interpreter) + + // rsi: senderSP must preserved for slow path, set SP to it on fast path + + address entry = __ pc(); + + const int referent_offset = java_lang_ref_Reference::referent_offset; + guarantee(referent_offset > 0, "referent offset not initialized"); + + if (UseG1GC) { + Label slow_path; + + // Check if local 0 != NULL + // If the receiver is null then it is OK to jump to the slow path. + __ movptr(rax, Address(rsp, wordSize)); + __ testptr(rax, rax); + __ jcc(Assembler::zero, slow_path); + + // rax: local 0 (must be preserved across the G1 barrier call) + // + // rbx: method (at this point it's scratch) + // rcx: receiver (at this point it's scratch) + // rdx: scratch + // rdi: scratch + // + // rsi: sender sp + + // Preserve the sender sp in case the pre-barrier + // calls the runtime + __ push(rsi); + + // Load the value of the referent field. + const Address field_address(rax, referent_offset); + __ movptr(rax, field_address); + + // Generate the G1 pre-barrier code to log the value of + // the referent field in an SATB buffer. + __ get_thread(rcx); + __ g1_write_barrier_pre(noreg /* obj */, + rax /* pre_val */, + rcx /* thread */, + rbx /* tmp */, + true /* tosca_save */, + true /* expand_call */); + + // _areturn + __ pop(rsi); // get sender sp + __ pop(rdi); // get return address + __ mov(rsp, rsi); // set sp to sender sp + __ jmp(rdi); + + __ bind(slow_path); + (void) generate_normal_entry(false); + + return entry; + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + // // Interpreter stub for calling a native method. (asm interpreter) // This sets up a somewhat different looking stack for calling the native method @@ -1444,6 +1536,8 @@ address AbstractInterpreterGenerator::generate_method_entry(AbstractInterpreter: case Interpreter::java_lang_math_log : // fall thru case Interpreter::java_lang_math_log10 : // fall thru case Interpreter::java_lang_math_sqrt : entry_point = ((InterpreterGenerator*)this)->generate_math_entry(kind); break; + case Interpreter::java_lang_ref_reference_get + : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break; default : ShouldNotReachHere(); break; } diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp index 6051aecb666..8d3740c7049 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp @@ -757,6 +757,95 @@ address InterpreterGenerator::generate_accessor_entry(void) { return entry_point; } +// Method entry for java.lang.ref.Reference.get. +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + // Code: _aload_0, _getfield, _areturn + // parameter size = 1 + // + // The code that gets generated by this routine is split into 2 parts: + // 1. The "intrinsified" code for G1 (or any SATB based GC), + // 2. The slow path - which is an expansion of the regular method entry. + // + // Notes:- + // * In the G1 code we do not check whether we need to block for + // a safepoint. If G1 is enabled then we must execute the specialized + // code for Reference.get (except when the Reference object is null) + // so that we can log the value in the referent field with an SATB + // update buffer. + // If the code for the getfield template is modified so that the + // G1 pre-barrier code is executed when the current method is + // Reference.get() then going through the normal method entry + // will be fine. + // * The G1 code can, however, check the receiver object (the instance + // of java.lang.Reference) and jump to the slow path if null. If the + // Reference object is null then we obviously cannot fetch the referent + // and so we don't need to call the G1 pre-barrier. Thus we can use the + // regular method entry code to generate the NPE. + // + // This code is based on generate_accessor_enty. + // + // rbx: methodOop + + // r13: senderSP must preserve for slow path, set SP to it on fast path + + address entry = __ pc(); + + const int referent_offset = java_lang_ref_Reference::referent_offset; + guarantee(referent_offset > 0, "referent offset not initialized"); + + if (UseG1GC) { + Label slow_path; + // rbx: method + + // Check if local 0 != NULL + // If the receiver is null then it is OK to jump to the slow path. + __ movptr(rax, Address(rsp, wordSize)); + + __ testptr(rax, rax); + __ jcc(Assembler::zero, slow_path); + + // rax: local 0 + // rbx: method (but can be used as scratch now) + // rdx: scratch + // rdi: scratch + + // Generate the G1 pre-barrier code to log the value of + // the referent field in an SATB buffer. + + // Load the value of the referent field. + const Address field_address(rax, referent_offset); + __ load_heap_oop(rax, field_address); + + // Generate the G1 pre-barrier code to log the value of + // the referent field in an SATB buffer. + __ g1_write_barrier_pre(noreg /* obj */, + rax /* pre_val */, + r15_thread /* thread */, + rbx /* tmp */, + true /* tosca_live */, + true /* expand_call */); + + // _areturn + __ pop(rdi); // get return address + __ mov(rsp, r13); // set sp to sender sp + __ jmp(rdi); + __ ret(0); + + // generate a vanilla interpreter entry as the slow path + __ bind(slow_path); + (void) generate_normal_entry(false); + + return entry; + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + + // Interpreter stub for calling a native method. (asm interpreter) // This sets up a somewhat different looking stack for calling the // native method than the typical interpreter frame setup. @@ -1463,6 +1552,8 @@ address AbstractInterpreterGenerator::generate_method_entry( case Interpreter::java_lang_math_log : // fall thru case Interpreter::java_lang_math_log10 : // fall thru case Interpreter::java_lang_math_sqrt : entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); break; + case Interpreter::java_lang_ref_reference_get + : entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); break; default : ShouldNotReachHere(); break; } diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp index b152f698cfd..76b966869ee 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -140,7 +140,12 @@ static void do_oop_store(InterpreterMacroAssembler* _masm, } __ get_thread(rcx); __ save_bcp(); - __ g1_write_barrier_pre(rdx, rcx, rsi, rbx, val != noreg); + __ g1_write_barrier_pre(rdx /* obj */, + rbx /* pre_val */, + rcx /* thread */, + rsi /* tmp */, + val != noreg /* tosca_live */, + false /* expand_call */); // Do the actual store // noreg means NULL @@ -149,7 +154,11 @@ static void do_oop_store(InterpreterMacroAssembler* _masm, // No post barrier for NULL } else { __ movl(Address(rdx, 0), val); - __ g1_write_barrier_post(rdx, rax, rcx, rbx, rsi); + __ g1_write_barrier_post(rdx /* store_adr */, + val /* new_val */, + rcx /* thread */, + rbx /* tmp */, + rsi /* tmp2 */); } __ restore_bcp(); diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp index 64385a7d54c..67fcbf5abfc 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp @@ -147,12 +147,21 @@ static void do_oop_store(InterpreterMacroAssembler* _masm, } else { __ leaq(rdx, obj); } - __ g1_write_barrier_pre(rdx, r8, rbx, val != noreg); + __ g1_write_barrier_pre(rdx /* obj */, + rbx /* pre_val */, + r15_thread /* thread */, + r8 /* tmp */, + val != noreg /* tosca_live */, + false /* expand_call */); if (val == noreg) { __ store_heap_oop_null(Address(rdx, 0)); } else { __ store_heap_oop(Address(rdx, 0), val); - __ g1_write_barrier_post(rdx, val, r8, rbx); + __ g1_write_barrier_post(rdx /* store_adr */, + val /* new_val */, + r15_thread /* thread */, + r8 /* tmp */, + rbx /* tmp2 */); } } diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp index fa2084450ba..87982e9ab04 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86.cpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86.cpp @@ -348,7 +348,7 @@ void VM_Version::get_processor_features() { } char buf[256]; - jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", + jio_snprintf(buf, sizeof(buf), "(%u cores per cpu, %u threads per core) family %d model %d stepping %d%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", cores_per_cpu(), threads_per_core(), cpu_family(), _model, _stepping, (supports_cmov() ? ", cmov" : ""), @@ -363,8 +363,7 @@ void VM_Version::get_processor_features() { (supports_sse4_2() ? ", sse4.2" : ""), (supports_popcnt() ? ", popcnt" : ""), (supports_mmx_ext() ? ", mmxext" : ""), - (supports_3dnow() ? ", 3dnow" : ""), - (supports_3dnow2() ? ", 3dnowext" : ""), + (supports_3dnow_prefetch() ? ", 3dnowpref" : ""), (supports_lzcnt() ? ", lzcnt": ""), (supports_sse4a() ? ", sse4a": ""), (supports_ht() ? ", ht": "")); @@ -522,13 +521,13 @@ void VM_Version::get_processor_features() { // set valid Prefetch instruction if( ReadPrefetchInstr < 0 ) ReadPrefetchInstr = 0; if( ReadPrefetchInstr > 3 ) ReadPrefetchInstr = 3; - if( ReadPrefetchInstr == 3 && !supports_3dnow() ) ReadPrefetchInstr = 0; - if( !supports_sse() && supports_3dnow() ) ReadPrefetchInstr = 3; + if( ReadPrefetchInstr == 3 && !supports_3dnow_prefetch() ) ReadPrefetchInstr = 0; + if( !supports_sse() && supports_3dnow_prefetch() ) ReadPrefetchInstr = 3; if( AllocatePrefetchInstr < 0 ) AllocatePrefetchInstr = 0; if( AllocatePrefetchInstr > 3 ) AllocatePrefetchInstr = 3; - if( AllocatePrefetchInstr == 3 && !supports_3dnow() ) AllocatePrefetchInstr=0; - if( !supports_sse() && supports_3dnow() ) AllocatePrefetchInstr = 3; + if( AllocatePrefetchInstr == 3 && !supports_3dnow_prefetch() ) AllocatePrefetchInstr=0; + if( !supports_sse() && supports_3dnow_prefetch() ) AllocatePrefetchInstr = 3; // Allocation prefetch settings intx cache_line_size = L1_data_cache_line_size(); @@ -576,10 +575,10 @@ void VM_Version::get_processor_features() { logical_processors_per_package()); tty->print_cr("UseSSE=%d",UseSSE); tty->print("Allocation: "); - if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow()) { + if (AllocatePrefetchStyle <= 0 || UseSSE == 0 && !supports_3dnow_prefetch()) { tty->print_cr("no prefetching"); } else { - if (UseSSE == 0 && supports_3dnow()) { + if (UseSSE == 0 && supports_3dnow_prefetch()) { tty->print("PREFETCHW"); } else if (UseSSE >= 1) { if (AllocatePrefetchInstr == 0) { diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp index 6f23cb0cada..3b69a75f135 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86.hpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86.hpp @@ -188,7 +188,8 @@ protected: CPU_FXSR = (1 << 2), CPU_HT = (1 << 3), CPU_MMX = (1 << 4), - CPU_3DNOW = (1 << 5), // 3DNow comes from cpuid 0x80000001 (EDX) + CPU_3DNOW_PREFETCH = (1 << 5), // Processor supports 3dnow prefetch and prefetchw instructions + // may not necessarily support other 3dnow instructions CPU_SSE = (1 << 6), CPU_SSE2 = (1 << 7), CPU_SSE3 = (1 << 8), // SSE3 comes from cpuid 1 (ECX) @@ -328,8 +329,9 @@ protected: // AMD features. if (is_amd()) { - if (_cpuid_info.ext_cpuid1_edx.bits.tdnow != 0) - result |= CPU_3DNOW; + if ((_cpuid_info.ext_cpuid1_edx.bits.tdnow != 0) || + (_cpuid_info.ext_cpuid1_ecx.bits.prefetchw != 0)) + result |= CPU_3DNOW_PREFETCH; if (_cpuid_info.ext_cpuid1_ecx.bits.lzcnt != 0) result |= CPU_LZCNT; if (_cpuid_info.ext_cpuid1_ecx.bits.sse4a != 0) @@ -446,9 +448,8 @@ public: // // AMD features // - static bool supports_3dnow() { return (_cpuFeatures & CPU_3DNOW) != 0; } + static bool supports_3dnow_prefetch() { return (_cpuFeatures & CPU_3DNOW_PREFETCH) != 0; } static bool supports_mmx_ext() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.mmx_amd != 0; } - static bool supports_3dnow2() { return is_amd() && _cpuid_info.ext_cpuid1_edx.bits.tdnow2 != 0; } static bool supports_lzcnt() { return (_cpuFeatures & CPU_LZCNT) != 0; } static bool supports_sse4a() { return (_cpuFeatures & CPU_SSE4A) != 0; } diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad index e9cf81147b7..62c031dc3d6 100644 --- a/hotspot/src/cpu/x86/vm/x86_32.ad +++ b/hotspot/src/cpu/x86/vm/x86_32.ad @@ -3423,7 +3423,7 @@ encode %{ masm.movptr(boxReg, tmpReg); // consider: LEA box, [tmp-2] // Using a prefetchw helps avoid later RTS->RTO upgrades and cache probes - if ((EmitSync & 2048) && VM_Version::supports_3dnow() && os::is_MP()) { + if ((EmitSync & 2048) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) { // prefetchw [eax + Offset(_owner)-2] masm.prefetchw(Address(rax, ObjectMonitor::owner_offset_in_bytes()-2)); } @@ -3467,7 +3467,7 @@ encode %{ masm.movptr(boxReg, tmpReg) ; // Using a prefetchw helps avoid later RTS->RTO upgrades and cache probes - if ((EmitSync & 2048) && VM_Version::supports_3dnow() && os::is_MP()) { + if ((EmitSync & 2048) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) { // prefetchw [eax + Offset(_owner)-2] masm.prefetchw(Address(rax, ObjectMonitor::owner_offset_in_bytes()-2)); } @@ -3614,7 +3614,7 @@ encode %{ // See also http://gee.cs.oswego.edu/dl/jmm/cookbook.html. masm.get_thread (boxReg) ; - if ((EmitSync & 4096) && VM_Version::supports_3dnow() && os::is_MP()) { + if ((EmitSync & 4096) && VM_Version::supports_3dnow_prefetch() && os::is_MP()) { // prefetchw [ebx + Offset(_owner)-2] masm.prefetchw(Address(rbx, ObjectMonitor::owner_offset_in_bytes()-2)); } @@ -7333,7 +7333,7 @@ instruct loadSSD(regD dst, stackSlotD src) %{ // Must be safe to execute with invalid address (cannot fault). instruct prefetchr0( memory mem ) %{ - predicate(UseSSE==0 && !VM_Version::supports_3dnow()); + predicate(UseSSE==0 && !VM_Version::supports_3dnow_prefetch()); match(PrefetchRead mem); ins_cost(0); size(0); @@ -7343,7 +7343,7 @@ instruct prefetchr0( memory mem ) %{ %} instruct prefetchr( memory mem ) %{ - predicate(UseSSE==0 && VM_Version::supports_3dnow() || ReadPrefetchInstr==3); + predicate(UseSSE==0 && VM_Version::supports_3dnow_prefetch() || ReadPrefetchInstr==3); match(PrefetchRead mem); ins_cost(100); @@ -7387,7 +7387,7 @@ instruct prefetchrT2( memory mem ) %{ %} instruct prefetchw0( memory mem ) %{ - predicate(UseSSE==0 && !VM_Version::supports_3dnow()); + predicate(UseSSE==0 && !VM_Version::supports_3dnow_prefetch()); match(PrefetchWrite mem); ins_cost(0); size(0); @@ -7397,7 +7397,7 @@ instruct prefetchw0( memory mem ) %{ %} instruct prefetchw( memory mem ) %{ - predicate(UseSSE==0 && VM_Version::supports_3dnow() || AllocatePrefetchInstr==3); + predicate(UseSSE==0 && VM_Version::supports_3dnow_prefetch() || AllocatePrefetchInstr==3); match( PrefetchWrite mem ); ins_cost(100); diff --git a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp index 1980be2ba5c..8a3903276e2 100644 --- a/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -150,4 +150,22 @@ #define SET_LOCALS_LONG_FROM_ADDR(addr, offset) (((VMJavaVal64*)&locals[-((offset)+1)])->l = \ ((VMJavaVal64*)(addr))->l) +// VMSlots implementation + +#define VMSLOTS_SLOT(offset) ((intptr_t*)&vmslots[(offset)]) +#define VMSLOTS_ADDR(offset) ((address)vmslots[(offset)]) +#define VMSLOTS_INT(offset) (*((jint*)&vmslots[(offset)])) +#define VMSLOTS_FLOAT(offset) (*((jfloat*)&vmslots[(offset)])) +#define VMSLOTS_OBJECT(offset) ((oop)vmslots[(offset)]) +#define VMSLOTS_DOUBLE(offset) (((VMJavaVal64*)&vmslots[(offset) - 1])->d) +#define VMSLOTS_LONG(offset) (((VMJavaVal64*)&vmslots[(offset) - 1])->l) + +#define SET_VMSLOTS_SLOT(value, offset) (*(intptr_t*)&vmslots[(offset)] = *(intptr_t *)(value)) +#define SET_VMSLOTS_ADDR(value, offset) (*((address *)&vmslots[(offset)]) = (value)) +#define SET_VMSLOTS_INT(value, offset) (*((jint *)&vmslots[(offset)]) = (value)) +#define SET_VMSLOTS_FLOAT(value, offset) (*((jfloat *)&vmslots[(offset)]) = (value)) +#define SET_VMSLOTS_OBJECT(value, offset) (*((oop *)&vmslots[(offset)]) = (value)) +#define SET_VMSLOTS_DOUBLE(value, offset) (((VMJavaVal64*)&vmslots[(offset) - 1])->d = (value)) +#define SET_VMSLOTS_LONG(value, offset) (((VMJavaVal64*)&vmslots[(offset) - 1])->l = (value)) + #endif // CPU_ZERO_VM_BYTECODEINTERPRETER_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp index ee8d7a2b403..13a4710a104 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. * 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,10 +56,13 @@ #define fixup_after_potential_safepoint() \ method = istate->method() -#define CALL_VM_NOCHECK(func) \ +#define CALL_VM_NOCHECK_NOFIX(func) \ thread->set_last_Java_frame(); \ func; \ - thread->reset_last_Java_frame(); \ + thread->reset_last_Java_frame(); + +#define CALL_VM_NOCHECK(func) \ + CALL_VM_NOCHECK_NOFIX(func) \ fixup_after_potential_safepoint() int CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { @@ -177,6 +180,25 @@ void CppInterpreter::main_loop(int recurse, TRAPS) { method, istate->osr_entry(), istate->osr_buf(), THREAD); return; } + else if (istate->msg() == BytecodeInterpreter::call_method_handle) { + oop method_handle = istate->callee(); + + // Trim back the stack to put the parameters at the top + stack->set_sp(istate->stack() + 1); + + // Make the call + process_method_handle(method_handle, THREAD); + fixup_after_potential_safepoint(); + + // Convert the result + istate->set_stack(stack->sp() - 1); + + // Restore the stack + stack->set_sp(istate->stack_limit() + 1); + + // Resume the interpreter + istate->set_msg(BytecodeInterpreter::method_resume); + } else { ShouldNotReachHere(); } @@ -607,6 +629,549 @@ int CppInterpreter::empty_entry(methodOop method, intptr_t UNUSED, TRAPS) { return 0; } +int CppInterpreter::method_handle_entry(methodOop method, + intptr_t UNUSED, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + int argument_slots = method->size_of_parameters(); + int result_slots = type2size[result_type_of(method)]; + intptr_t *vmslots = stack->sp(); + intptr_t *unwind_sp = vmslots + argument_slots; + + // Find the MethodType + address p = (address) method; + for (jint* pc = method->method_type_offsets_chain(); (*pc) != -1; pc++) { + p = *(address*)(p + (*pc)); + } + oop method_type = (oop) p; + + // The MethodHandle is in the slot after the arguments + oop form = java_lang_invoke_MethodType::form(method_type); + int num_vmslots = java_lang_invoke_MethodTypeForm::vmslots(form); + assert(argument_slots == num_vmslots + 1, "should be"); + oop method_handle = VMSLOTS_OBJECT(num_vmslots); + + // InvokeGeneric requires some extra shuffling + oop mhtype = java_lang_invoke_MethodHandle::type(method_handle); + bool is_exact = mhtype == method_type; + if (!is_exact) { + if (method->intrinsic_id() == vmIntrinsics::_invokeExact) { + CALL_VM_NOCHECK_NOFIX( + InterpreterRuntime::throw_WrongMethodTypeException( + thread, method_type, mhtype)); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + stack->set_sp(unwind_sp); + return 0; + } + assert(method->intrinsic_id() == vmIntrinsics::_invokeGeneric, "should be"); + + // Load up an adapter from the calling type + // NB the x86 code for this (in methodHandles_x86.cpp, search for + // "genericInvoker") is really really odd. I'm hoping it's trying + // to accomodate odd VM/class library combinations I can ignore. + oop adapter = java_lang_invoke_MethodTypeForm::genericInvoker(form); + if (adapter == NULL) { + CALL_VM_NOCHECK_NOFIX( + InterpreterRuntime::throw_WrongMethodTypeException( + thread, method_type, mhtype)); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + stack->set_sp(unwind_sp); + return 0; + } + + // Adapters are shared among form-families of method-type. The + // type being called is passed as a trusted first argument so that + // the adapter knows the actual types of its arguments and return + // values. + insert_vmslots(num_vmslots + 1, 1, THREAD); + if (HAS_PENDING_EXCEPTION) { + // NB all oops trashed! + stack->set_sp(unwind_sp); + return 0; + } + + vmslots = stack->sp(); + num_vmslots++; + SET_VMSLOTS_OBJECT(method_type, num_vmslots); + + method_handle = adapter; + } + + // Start processing + process_method_handle(method_handle, THREAD); + if (HAS_PENDING_EXCEPTION) + result_slots = 0; + + // If this is an invokeExact then the eventual callee will not + // have unwound the method handle argument so we have to do it. + // If a result is being returned the it will be above the method + // handle argument we're unwinding. + if (is_exact) { + intptr_t result[2]; + for (int i = 0; i < result_slots; i++) + result[i] = stack->pop(); + stack->pop(); + for (int i = result_slots - 1; i >= 0; i--) + stack->push(result[i]); + } + + // Check + assert(stack->sp() == unwind_sp - result_slots, "should be"); + + // No deoptimized frames on the stack + return 0; +} + +void CppInterpreter::process_method_handle(oop method_handle, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + intptr_t *vmslots = stack->sp(); + + bool direct_to_method = false; + BasicType src_rtype = T_ILLEGAL; + BasicType dst_rtype = T_ILLEGAL; + + MethodHandleEntry *entry = + java_lang_invoke_MethodHandle::vmentry(method_handle); + MethodHandles::EntryKind entry_kind = + (MethodHandles::EntryKind) (((intptr_t) entry) & 0xffffffff); + + methodOop method = NULL; + switch (entry_kind) { + case MethodHandles::_invokestatic_mh: + direct_to_method = true; + break; + + case MethodHandles::_invokespecial_mh: + case MethodHandles::_invokevirtual_mh: + case MethodHandles::_invokeinterface_mh: + { + oop receiver = + VMSLOTS_OBJECT( + java_lang_invoke_MethodHandle::vmslots(method_handle) - 1); + if (receiver == NULL) { + stack->set_sp(calculate_unwind_sp(stack, method_handle)); + CALL_VM_NOCHECK_NOFIX( + throw_exception( + thread, vmSymbols::java_lang_NullPointerException())); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + return; + } + if (entry_kind != MethodHandles::_invokespecial_mh) { + int index = java_lang_invoke_DirectMethodHandle::vmindex(method_handle); + instanceKlass* rcvrKlass = + (instanceKlass *) receiver->klass()->klass_part(); + if (entry_kind == MethodHandles::_invokevirtual_mh) { + method = (methodOop) rcvrKlass->start_of_vtable()[index]; + } + else { + oop iclass = java_lang_invoke_MethodHandle::vmtarget(method_handle); + itableOffsetEntry* ki = + (itableOffsetEntry *) rcvrKlass->start_of_itable(); + int i, length = rcvrKlass->itable_length(); + for (i = 0; i < length; i++, ki++ ) { + if (ki->interface_klass() == iclass) + break; + } + if (i == length) { + stack->set_sp(calculate_unwind_sp(stack, method_handle)); + CALL_VM_NOCHECK_NOFIX( + throw_exception( + thread, vmSymbols::java_lang_IncompatibleClassChangeError())); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + return; + } + itableMethodEntry* im = ki->first_method_entry(receiver->klass()); + method = im[index].method(); + if (method == NULL) { + stack->set_sp(calculate_unwind_sp(stack, method_handle)); + CALL_VM_NOCHECK_NOFIX( + throw_exception( + thread, vmSymbols::java_lang_AbstractMethodError())); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + return; + } + } + } + } + direct_to_method = true; + break; + + case MethodHandles::_bound_ref_direct_mh: + case MethodHandles::_bound_int_direct_mh: + case MethodHandles::_bound_long_direct_mh: + direct_to_method = true; + // fall through + case MethodHandles::_bound_ref_mh: + case MethodHandles::_bound_int_mh: + case MethodHandles::_bound_long_mh: + { + BasicType arg_type = T_ILLEGAL; + int arg_mask = -1; + int arg_slots = -1; + MethodHandles::get_ek_bound_mh_info( + entry_kind, arg_type, arg_mask, arg_slots); + int arg_slot = + java_lang_invoke_BoundMethodHandle::vmargslot(method_handle); + + // Create the new slot(s) + intptr_t *unwind_sp = calculate_unwind_sp(stack, method_handle); + insert_vmslots(arg_slot, arg_slots, THREAD); + if (HAS_PENDING_EXCEPTION) { + // all oops trashed + stack->set_sp(unwind_sp); + return; + } + vmslots = stack->sp(); + + // Store bound argument into new stack slot + oop arg = java_lang_invoke_BoundMethodHandle::argument(method_handle); + if (arg_type == T_OBJECT) { + assert(arg_slots == 1, "should be"); + SET_VMSLOTS_OBJECT(arg, arg_slot); + } + else { + jvalue arg_value; + arg_type = java_lang_boxing_object::get_value(arg, &arg_value); + switch (arg_type) { + case T_BOOLEAN: + SET_VMSLOTS_INT(arg_value.z, arg_slot); + break; + case T_CHAR: + SET_VMSLOTS_INT(arg_value.c, arg_slot); + break; + case T_BYTE: + SET_VMSLOTS_INT(arg_value.b, arg_slot); + break; + case T_SHORT: + SET_VMSLOTS_INT(arg_value.s, arg_slot); + break; + case T_INT: + SET_VMSLOTS_INT(arg_value.i, arg_slot); + break; + case T_FLOAT: + SET_VMSLOTS_FLOAT(arg_value.f, arg_slot); + break; + case T_LONG: + SET_VMSLOTS_LONG(arg_value.j, arg_slot + 1); + break; + case T_DOUBLE: + SET_VMSLOTS_DOUBLE(arg_value.d, arg_slot + 1); + break; + default: + tty->print_cr("unhandled type %s", type2name(arg_type)); + ShouldNotReachHere(); + } + } + } + break; + + case MethodHandles::_adapter_retype_only: + case MethodHandles::_adapter_retype_raw: + src_rtype = result_type_of_handle( + java_lang_invoke_MethodHandle::vmtarget(method_handle)); + dst_rtype = result_type_of_handle(method_handle); + break; + + case MethodHandles::_adapter_check_cast: + { + int arg_slot = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + oop arg = VMSLOTS_OBJECT(arg_slot); + if (arg != NULL) { + klassOop objKlassOop = arg->klass(); + klassOop klassOf = java_lang_Class::as_klassOop( + java_lang_invoke_AdapterMethodHandle::argument(method_handle)); + + if (objKlassOop != klassOf && + !objKlassOop->klass_part()->is_subtype_of(klassOf)) { + ResourceMark rm(THREAD); + const char* objName = Klass::cast(objKlassOop)->external_name(); + const char* klassName = Klass::cast(klassOf)->external_name(); + char* message = SharedRuntime::generate_class_cast_message( + objName, klassName); + + stack->set_sp(calculate_unwind_sp(stack, method_handle)); + CALL_VM_NOCHECK_NOFIX( + throw_exception( + thread, vmSymbols::java_lang_ClassCastException(), message)); + // NB all oops trashed! + assert(HAS_PENDING_EXCEPTION, "should do"); + return; + } + } + } + break; + + case MethodHandles::_adapter_dup_args: + { + int arg_slot = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + int conv = + java_lang_invoke_AdapterMethodHandle::conversion(method_handle); + int num_slots = -MethodHandles::adapter_conversion_stack_move(conv); + assert(num_slots > 0, "should be"); + + // Create the new slot(s) + intptr_t *unwind_sp = calculate_unwind_sp(stack, method_handle); + stack->overflow_check(num_slots, THREAD); + if (HAS_PENDING_EXCEPTION) { + // all oops trashed + stack->set_sp(unwind_sp); + return; + } + + // Duplicate the arguments + for (int i = num_slots - 1; i >= 0; i--) + stack->push(*VMSLOTS_SLOT(arg_slot + i)); + + vmslots = stack->sp(); // unused, but let the compiler figure that out + } + break; + + case MethodHandles::_adapter_drop_args: + { + int arg_slot = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + int conv = + java_lang_invoke_AdapterMethodHandle::conversion(method_handle); + int num_slots = MethodHandles::adapter_conversion_stack_move(conv); + assert(num_slots > 0, "should be"); + + remove_vmslots(arg_slot, num_slots, THREAD); // doesn't trap + vmslots = stack->sp(); // unused, but let the compiler figure that out + } + break; + + case MethodHandles::_adapter_opt_swap_1: + case MethodHandles::_adapter_opt_swap_2: + case MethodHandles::_adapter_opt_rot_1_up: + case MethodHandles::_adapter_opt_rot_1_down: + case MethodHandles::_adapter_opt_rot_2_up: + case MethodHandles::_adapter_opt_rot_2_down: + { + int arg1 = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + int conv = + java_lang_invoke_AdapterMethodHandle::conversion(method_handle); + int arg2 = MethodHandles::adapter_conversion_vminfo(conv); + + int swap_bytes = 0, rotate = 0; + MethodHandles::get_ek_adapter_opt_swap_rot_info( + entry_kind, swap_bytes, rotate); + int swap_slots = swap_bytes >> LogBytesPerWord; + + intptr_t tmp; + switch (rotate) { + case 0: // swap + for (int i = 0; i < swap_slots; i++) { + tmp = *VMSLOTS_SLOT(arg1 + i); + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(arg2 + i), arg1 + i); + SET_VMSLOTS_SLOT(&tmp, arg2 + i); + } + break; + + case 1: // up + assert(arg1 - swap_slots > arg2, "should be"); + + tmp = *VMSLOTS_SLOT(arg1); + for (int i = arg1 - swap_slots; i >= arg2; i--) + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(i), i + swap_slots); + SET_VMSLOTS_SLOT(&tmp, arg2); + + break; + + case -1: // down + assert(arg2 - swap_slots > arg1, "should be"); + + tmp = *VMSLOTS_SLOT(arg1); + for (int i = arg1 + swap_slots; i <= arg2; i++) + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(i), i - swap_slots); + SET_VMSLOTS_SLOT(&tmp, arg2); + break; + + default: + ShouldNotReachHere(); + } + } + break; + + case MethodHandles::_adapter_opt_i2l: + { + int arg_slot = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + int arg = VMSLOTS_INT(arg_slot); + intptr_t *unwind_sp = calculate_unwind_sp(stack, method_handle); + insert_vmslots(arg_slot, 1, THREAD); + if (HAS_PENDING_EXCEPTION) { + // all oops trashed + stack->set_sp(unwind_sp); + return; + } + vmslots = stack->sp(); + arg_slot++; + SET_VMSLOTS_LONG(arg, arg_slot); + } + break; + + case MethodHandles::_adapter_opt_unboxi: + case MethodHandles::_adapter_opt_unboxl: + { + int arg_slot = + java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle); + oop arg = VMSLOTS_OBJECT(arg_slot); + jvalue arg_value; + BasicType arg_type = java_lang_boxing_object::get_value(arg, &arg_value); + if (arg_type == T_LONG || arg_type == T_DOUBLE) { + intptr_t *unwind_sp = calculate_unwind_sp(stack, method_handle); + insert_vmslots(arg_slot, 1, THREAD); + if (HAS_PENDING_EXCEPTION) { + // all oops trashed + stack->set_sp(unwind_sp); + return; + } + vmslots = stack->sp(); + arg_slot++; + } + switch (arg_type) { + case T_BOOLEAN: + SET_VMSLOTS_INT(arg_value.z, arg_slot); + break; + case T_CHAR: + SET_VMSLOTS_INT(arg_value.c, arg_slot); + break; + case T_BYTE: + SET_VMSLOTS_INT(arg_value.b, arg_slot); + break; + case T_SHORT: + SET_VMSLOTS_INT(arg_value.s, arg_slot); + break; + case T_INT: + SET_VMSLOTS_INT(arg_value.i, arg_slot); + break; + case T_FLOAT: + SET_VMSLOTS_FLOAT(arg_value.f, arg_slot); + break; + case T_LONG: + SET_VMSLOTS_LONG(arg_value.j, arg_slot); + break; + case T_DOUBLE: + SET_VMSLOTS_DOUBLE(arg_value.d, arg_slot); + break; + default: + tty->print_cr("unhandled type %s", type2name(arg_type)); + ShouldNotReachHere(); + } + } + break; + + default: + tty->print_cr("unhandled entry_kind %s", + MethodHandles::entry_name(entry_kind)); + ShouldNotReachHere(); + } + + // Continue along the chain + if (direct_to_method) { + if (method == NULL) { + method = + (methodOop) java_lang_invoke_MethodHandle::vmtarget(method_handle); + } + address entry_point = method->from_interpreted_entry(); + Interpreter::invoke_method(method, entry_point, THREAD); + } + else { + process_method_handle( + java_lang_invoke_MethodHandle::vmtarget(method_handle), THREAD); + } + // NB all oops now trashed + + // Adapt the result type, if necessary + if (src_rtype != dst_rtype && !HAS_PENDING_EXCEPTION) { + switch (dst_rtype) { + case T_VOID: + for (int i = 0; i < type2size[src_rtype]; i++) + stack->pop(); + return; + + case T_INT: + switch (src_rtype) { + case T_VOID: + stack->overflow_check(1, CHECK); + stack->push(0); + return; + + case T_BOOLEAN: + case T_CHAR: + case T_BYTE: + case T_SHORT: + return; + } + } + + tty->print_cr("unhandled conversion:"); + tty->print_cr("src_rtype = %s", type2name(src_rtype)); + tty->print_cr("dst_rtype = %s", type2name(dst_rtype)); + ShouldNotReachHere(); + } +} + +// The new slots will be inserted before slot insert_before. +// Slots < insert_before will have the same slot number after the insert. +// Slots >= insert_before will become old_slot + num_slots. +void CppInterpreter::insert_vmslots(int insert_before, int num_slots, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + + // Allocate the space + stack->overflow_check(num_slots, CHECK); + stack->alloc(num_slots * wordSize); + intptr_t *vmslots = stack->sp(); + + // Shuffle everything up + for (int i = 0; i < insert_before; i++) + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(i + num_slots), i); +} + +void CppInterpreter::remove_vmslots(int first_slot, int num_slots, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + intptr_t *vmslots = stack->sp(); + + // Move everything down + for (int i = first_slot - 1; i >= 0; i--) + SET_VMSLOTS_SLOT(VMSLOTS_SLOT(i), i + num_slots); + + // Deallocate the space + stack->set_sp(stack->sp() + num_slots); +} + +BasicType CppInterpreter::result_type_of_handle(oop method_handle) { + oop method_type = java_lang_invoke_MethodHandle::type(method_handle); + oop return_type = java_lang_invoke_MethodType::rtype(method_type); + return java_lang_Class::as_BasicType(return_type, (klassOop *) NULL); +} + +intptr_t* CppInterpreter::calculate_unwind_sp(ZeroStack* stack, + oop method_handle) { + oop method_type = java_lang_invoke_MethodHandle::type(method_handle); + oop form = java_lang_invoke_MethodType::form(method_type); + int argument_slots = java_lang_invoke_MethodTypeForm::vmslots(form); + + return stack->sp() + argument_slots; +} + +IRT_ENTRY(void, CppInterpreter::throw_exception(JavaThread* thread, + Symbol* name, + char* message)) + THROW_MSG(name, message); +IRT_END + InterpreterFrame *InterpreterFrame::build(const methodOop method, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; ZeroStack *stack = thread->zero_stack(); @@ -737,6 +1302,26 @@ address InterpreterGenerator::generate_accessor_entry() { return generate_entry((address) CppInterpreter::accessor_entry); } +address InterpreterGenerator::generate_Reference_get_entry(void) { +#ifndef SERIALGC + if (UseG1GC) { + // We need to generate have a routine that generates code to: + // * load the value in the referent field + // * passes that value to the pre-barrier. + // + // In the case of G1 this will record the value of the + // referent in an SATB buffer if marking is active. + // This will cause concurrent marking to mark the referent + // field as live. + Unimplemented(); + } +#endif // SERIALGC + + // If G1 is not enabled then attempt to go through the accessor entry point + // Reference.get is an accessor + return generate_accessor_entry(); +} + address InterpreterGenerator::generate_native_entry(bool synchronized) { assert(synchronized == false, "should be"); @@ -792,6 +1377,10 @@ address AbstractInterpreterGenerator::generate_method_entry( entry_point = ((InterpreterGenerator*) this)->generate_math_entry(kind); break; + case Interpreter::java_lang_ref_reference_get: + entry_point = ((InterpreterGenerator*)this)->generate_Reference_get_entry(); + break; + default: ShouldNotReachHere(); } diff --git a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp index 26f0e0414c8..80c493e99a6 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp @@ -1,6 +1,6 @@ /* * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2010 Red Hat, Inc. + * Copyright 2007, 2008, 2010, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,11 +36,21 @@ static int native_entry(methodOop method, intptr_t UNUSED, TRAPS); static int accessor_entry(methodOop method, intptr_t UNUSED, TRAPS); static int empty_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int method_handle_entry(methodOop method, intptr_t UNUSED, TRAPS); public: // Main loop of normal_entry static void main_loop(int recurse, TRAPS); + private: + // Helpers for method_handle_entry + static void process_method_handle(oop method_handle, TRAPS); + static void insert_vmslots(int insert_before, int num_slots, TRAPS); + static void remove_vmslots(int first_slot, int num_slots, TRAPS); + static BasicType result_type_of_handle(oop method_handle); + static intptr_t* calculate_unwind_sp(ZeroStack* stack, oop method_handle); + static void throw_exception(JavaThread* thread, Symbol* name,char *msg=NULL); + private: // Fast result type determination static BasicType result_type_of(methodOop method); diff --git a/hotspot/src/cpu/zero/vm/globals_zero.hpp b/hotspot/src/cpu/zero/vm/globals_zero.hpp index 88c7d0888df..c45f1f5766a 100644 --- a/hotspot/src/cpu/zero/vm/globals_zero.hpp +++ b/hotspot/src/cpu/zero/vm/globals_zero.hpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -54,4 +54,6 @@ define_pd_global(bool, RewriteFrequentPairs, true); define_pd_global(bool, UseMembar, false); +// GC Ergo Flags +define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread #endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp index fe9acbf7595..e583c830b05 100644 --- a/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp +++ b/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp @@ -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. * Copyright 2007 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -37,6 +37,7 @@ address generate_math_entry(AbstractInterpreter::MethodKind kind); address generate_empty_entry(); address generate_accessor_entry(); + address generate_Reference_get_entry(); address generate_method_handle_entry(); #endif // CPU_ZERO_VM_INTERPRETERGENERATOR_ZERO_HPP diff --git a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp index 027d372a2f6..ff5a69be88e 100644 --- a/hotspot/src/cpu/zero/vm/interpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/interpreter_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,6 +49,9 @@ #ifdef COMPILER1 #include "c1/c1_Runtime1.hpp" #endif +#ifdef CC_INTERP +#include "interpreter/cppInterpreter.hpp" +#endif address AbstractInterpreterGenerator::generate_slow_signature_handler() { _masm->advance(1); @@ -64,11 +67,15 @@ address InterpreterGenerator::generate_math_entry( } address InterpreterGenerator::generate_abstract_entry() { - return ShouldNotCallThisEntry(); + return generate_entry((address) ShouldNotCallThisEntry()); } address InterpreterGenerator::generate_method_handle_entry() { - return ShouldNotCallThisEntry(); +#ifdef CC_INTERP + return generate_entry((address) CppInterpreter::method_handle_entry); +#else + return generate_entry((address) ShouldNotCallThisEntry()); +#endif // CC_INTERP } bool AbstractInterpreter::can_be_compiled(methodHandle m) { diff --git a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp index b76b2a7c2f9..35f4b11f5d3 100644 --- a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp +++ b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2009, 2010 Red Hat, Inc. + * Copyright 2009, 2010, 2011 Red Hat, Inc. * 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,10 +29,21 @@ #include "prims/methodHandles.hpp" int MethodHandles::adapter_conversion_ops_supported_mask() { - ShouldNotCallThis(); + return ((1<generate_native_wrapper(masm, method, - in_sig_bt, + compile_id, + sig_bt, ret_type); #else ShouldNotCallThis(); diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp index a3975d89892..19d87fe7fde 100644 --- a/hotspot/src/os/linux/vm/os_linux.cpp +++ b/hotspot/src/os/linux/vm/os_linux.cpp @@ -2648,45 +2648,39 @@ bool os::uncommit_memory(char* addr, size_t size) { // writing thread stacks don't use growable mappings (i.e. those // creeated with MAP_GROWSDOWN), and aren't marked "[stack]", so this // only applies to the main thread. -static bool -get_stack_bounds(uintptr_t *bottom, uintptr_t *top) -{ - FILE *f = fopen("/proc/self/maps", "r"); - if (f == NULL) + +static +bool get_stack_bounds(uintptr_t *bottom, uintptr_t *top) { + + char buf[128]; + int fd, sz; + + if ((fd = ::open("/proc/self/maps", O_RDONLY)) < 0) { return false; - - while (!feof(f)) { - size_t dummy; - char *str = NULL; - ssize_t len = getline(&str, &dummy, f); - if (len == -1) { - fclose(f); - return false; - } - - if (len > 0 && str[len-1] == '\n') { - str[len-1] = 0; - len--; - } - - static const char *stack_str = "[stack]"; - if (len > (ssize_t)strlen(stack_str) - && (strcmp(str + len - strlen(stack_str), stack_str) == 0)) { - if (sscanf(str, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) { - uintptr_t sp = (uintptr_t)__builtin_frame_address(0); - if (sp >= *bottom && sp <= *top) { - free(str); - fclose(f); - return true; - } - } - } - free(str); } - fclose(f); + + const char kw[] = "[stack]"; + const int kwlen = sizeof(kw)-1; + + // Address part of /proc/self/maps couldn't be more than 128 bytes + while ((sz = os::get_line_chars(fd, buf, sizeof(buf))) > 0) { + if (sz > kwlen && ::memcmp(buf+sz-kwlen, kw, kwlen) == 0) { + // Extract addresses + if (sscanf(buf, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) { + uintptr_t sp = (uintptr_t) __builtin_frame_address(0); + if (sp >= *bottom && sp <= *top) { + ::close(fd); + return true; + } + } + } + } + + ::close(fd); return false; } + // If the (growable) stack mapping already extends beyond the point // where we're going to put our guard pages, truncate the mapping at // that point by munmap()ping it. This ensures that when we later diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index 885e9056552..109dec46a44 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -921,6 +921,8 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* HINSTANCE dbghelp; EXCEPTION_POINTERS ep; MINIDUMP_EXCEPTION_INFORMATION mei; + MINIDUMP_EXCEPTION_INFORMATION* pmei; + HANDLE hProcess = GetCurrentProcess(); DWORD processId = GetCurrentProcessId(); HANDLE dumpFile; @@ -971,17 +973,22 @@ void os::check_or_create_dump(void* exceptionRecord, void* contextRecord, char* VMError::report_coredump_status("Failed to create file for dumping", false); return; } + if (exceptionRecord != NULL && contextRecord != NULL) { + ep.ContextRecord = (PCONTEXT) contextRecord; + ep.ExceptionRecord = (PEXCEPTION_RECORD) exceptionRecord; - ep.ContextRecord = (PCONTEXT) contextRecord; - ep.ExceptionRecord = (PEXCEPTION_RECORD) exceptionRecord; + mei.ThreadId = GetCurrentThreadId(); + mei.ExceptionPointers = &ep; + pmei = &mei; + } else { + pmei = NULL; + } - mei.ThreadId = GetCurrentThreadId(); - mei.ExceptionPointers = &ep; // Older versions of dbghelp.dll (the one shipped with Win2003 for example) may not support all // the dump types we really want. If first call fails, lets fall back to just use MiniDumpWithFullMemory then. - if (_MiniDumpWriteDump(hProcess, processId, dumpFile, dumpType, &mei, NULL, NULL) == false && - _MiniDumpWriteDump(hProcess, processId, dumpFile, (MINIDUMP_TYPE)MiniDumpWithFullMemory, &mei, NULL, NULL) == false) { + if (_MiniDumpWriteDump(hProcess, processId, dumpFile, dumpType, pmei, NULL, NULL) == false && + _MiniDumpWriteDump(hProcess, processId, dumpFile, (MINIDUMP_TYPE)MiniDumpWithFullMemory, pmei, NULL, NULL) == false) { VMError::report_coredump_status("Call to MiniDumpWriteDump() failed", false); } else { VMError::report_coredump_status(buffer, true); diff --git a/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java index 4096beac88a..21c951d92b9 100644 --- a/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java +++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java @@ -497,6 +497,9 @@ class CompilerInterfaceVC10 extends CompilerInterface { addAttr(rv, "TargetMachine", "MachineX64"); } + // We always want the /DEBUG option to get full symbol information in the pdb files + addAttr(rv, "GenerateDebugInformation", "true"); + return rv; } @@ -504,8 +507,7 @@ class CompilerInterfaceVC10 extends CompilerInterface { Vector getDebugLinkerFlags() { Vector rv = new Vector(); - // /DEBUG option - addAttr(rv, "GenerateDebugInformation", "true"); + // Empty now that /DEBUG option is used by all configs return rv; } diff --git a/hotspot/src/share/vm/c1/c1_CodeStubs.hpp b/hotspot/src/share/vm/c1/c1_CodeStubs.hpp index 1367f080dcf..128a6d48cdd 100644 --- a/hotspot/src/share/vm/c1/c1_CodeStubs.hpp +++ b/hotspot/src/share/vm/c1/c1_CodeStubs.hpp @@ -519,42 +519,126 @@ class ArrayCopyStub: public CodeStub { // Code stubs for Garbage-First barriers. class G1PreBarrierStub: public CodeStub { private: + bool _do_load; LIR_Opr _addr; LIR_Opr _pre_val; LIR_PatchCode _patch_code; CodeEmitInfo* _info; public: - // pre_val (a temporary register) must be a register; + // Version that _does_ generate a load of the previous value from addr. // addr (the address of the field to be read) must be a LIR_Address + // pre_val (a temporary register) must be a register; G1PreBarrierStub(LIR_Opr addr, LIR_Opr pre_val, LIR_PatchCode patch_code, CodeEmitInfo* info) : - _addr(addr), _pre_val(pre_val), _patch_code(patch_code), _info(info) + _addr(addr), _pre_val(pre_val), _do_load(true), + _patch_code(patch_code), _info(info) { assert(_pre_val->is_register(), "should be temporary register"); assert(_addr->is_address(), "should be the address of the field"); } + // Version that _does not_ generate load of the previous value; the + // previous value is assumed to have already been loaded into pre_val. + G1PreBarrierStub(LIR_Opr pre_val) : + _addr(LIR_OprFact::illegalOpr), _pre_val(pre_val), _do_load(false), + _patch_code(lir_patch_none), _info(NULL) + { + assert(_pre_val->is_register(), "should be a register"); + } + LIR_Opr addr() const { return _addr; } LIR_Opr pre_val() const { return _pre_val; } LIR_PatchCode patch_code() const { return _patch_code; } CodeEmitInfo* info() const { return _info; } + bool do_load() const { return _do_load; } virtual void emit_code(LIR_Assembler* e); virtual void visit(LIR_OpVisitState* visitor) { - // don't pass in the code emit info since it's processed in the fast - // path - if (_info != NULL) - visitor->do_slow_case(_info); - else + if (_do_load) { + // don't pass in the code emit info since it's processed in the fast + // path + if (_info != NULL) + visitor->do_slow_case(_info); + else + visitor->do_slow_case(); + + visitor->do_input(_addr); + visitor->do_temp(_pre_val); + } else { visitor->do_slow_case(); - visitor->do_input(_addr); - visitor->do_temp(_pre_val); + visitor->do_input(_pre_val); + } } #ifndef PRODUCT virtual void print_name(outputStream* out) const { out->print("G1PreBarrierStub"); } #endif // PRODUCT }; +// This G1 barrier code stub is used in Unsafe.getObject. +// It generates a sequence of guards around the SATB +// barrier code that are used to detect when we have +// the referent field of a Reference object. +// The first check is assumed to have been generated +// in the code generated for Unsafe.getObject(). + +class G1UnsafeGetObjSATBBarrierStub: public CodeStub { + private: + LIR_Opr _val; + LIR_Opr _src; + + LIR_Opr _tmp; + LIR_Opr _thread; + + bool _gen_src_check; + + public: + // A G1 barrier that is guarded by generated guards that determine whether + // val (which is the result of Unsafe.getObject() should be recorded in an + // SATB log buffer. We could be reading the referent field of a Reference object + // using Unsafe.getObject() and we need to record the referent. + // + // * val is the operand returned by the unsafe.getObject routine. + // * src is the base object + // * tmp is a temp used to load the klass of src, and then reference type + // * thread is the thread object. + + G1UnsafeGetObjSATBBarrierStub(LIR_Opr val, LIR_Opr src, + LIR_Opr tmp, LIR_Opr thread, + bool gen_src_check) : + _val(val), _src(src), + _tmp(tmp), _thread(thread), + _gen_src_check(gen_src_check) + { + assert(_val->is_register(), "should have already been loaded"); + assert(_src->is_register(), "should have already been loaded"); + + assert(_tmp->is_register(), "should be a temporary register"); + } + + LIR_Opr val() const { return _val; } + LIR_Opr src() const { return _src; } + + LIR_Opr tmp() const { return _tmp; } + LIR_Opr thread() const { return _thread; } + + bool gen_src_check() const { return _gen_src_check; } + + virtual void emit_code(LIR_Assembler* e); + + virtual void visit(LIR_OpVisitState* visitor) { + visitor->do_slow_case(); + visitor->do_input(_val); + visitor->do_input(_src); + visitor->do_input(_thread); + + visitor->do_temp(_tmp); + } + +#ifndef PRODUCT + virtual void print_name(outputStream* out) const { out->print("G1UnsafeGetObjSATBBarrierStub"); } +#endif // PRODUCT +}; + class G1PostBarrierStub: public CodeStub { private: LIR_Opr _addr; diff --git a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index e956b6bb4be..ffe9e124805 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -2824,7 +2824,7 @@ ValueStack* GraphBuilder::state_at_entry() { int idx = 0; if (!method()->is_static()) { // we should always see the receiver - state->store_local(idx, new Local(objectType, idx)); + state->store_local(idx, new Local(method()->holder(), objectType, idx)); idx = 1; } @@ -2836,7 +2836,7 @@ ValueStack* GraphBuilder::state_at_entry() { // don't allow T_ARRAY to propagate into locals types if (basic_type == T_ARRAY) basic_type = T_OBJECT; ValueType* vt = as_ValueType(basic_type); - state->store_local(idx, new Local(vt, idx)); + state->store_local(idx, new Local(type, vt, idx)); idx += type->size(); } @@ -2913,6 +2913,46 @@ GraphBuilder::GraphBuilder(Compilation* compilation, IRScope* scope) block()->set_end(end); break; } + + case vmIntrinsics::_Reference_get: + { + if (UseG1GC) { + // With java.lang.ref.reference.get() we must go through the + // intrinsic - when G1 is enabled - even when get() is the root + // method of the compile so that, if necessary, the value in + // the referent field of the reference object gets recorded by + // the pre-barrier code. + // Specifically, if G1 is enabled, the value in the referent + // field is recorded by the G1 SATB pre barrier. This will + // result in the referent being marked live and the reference + // object removed from the list of discovered references during + // reference processing. + + // Set up a stream so that appending instructions works properly. + ciBytecodeStream s(scope->method()); + s.reset_to_bci(0); + scope_data()->set_stream(&s); + s.next(); + + // setup the initial block state + _block = start_block; + _state = start_block->state()->copy_for_parsing(); + _last = start_block; + load_local(objectType, 0); + + // Emit the intrinsic node. + bool result = try_inline_intrinsics(scope->method()); + if (!result) BAILOUT("failed to inline intrinsic"); + method_return(apop()); + + // connect the begin and end blocks and we're all done. + BlockEnd* end = last()->as_BlockEnd(); + block()->set_end(end); + break; + } + // Otherwise, fall thru + } + default: scope_data()->add_to_work_list(start_block); iterate_all_blocks(); @@ -3150,6 +3190,15 @@ bool GraphBuilder::try_inline_intrinsics(ciMethod* callee) { append_unsafe_CAS(callee); return true; + case vmIntrinsics::_Reference_get: + // It is only when G1 is enabled that we absolutely + // need to use the intrinsic version of Reference.get() + // so that the value in the referent field, if necessary, + // can be registered by the pre-barrier code. + if (!UseG1GC) return false; + preserves_state = true; + break; + default : return false; // do not inline } // create intrinsic node diff --git a/hotspot/src/share/vm/c1/c1_Instruction.cpp b/hotspot/src/share/vm/c1/c1_Instruction.cpp index 7f578cb054f..46857e16cbb 100644 --- a/hotspot/src/share/vm/c1/c1_Instruction.cpp +++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp @@ -135,6 +135,33 @@ bool AccessIndexed::compute_needs_range_check() { } +ciType* Local::exact_type() const { + ciType* type = declared_type(); + + // for primitive arrays, the declared type is the exact type + if (type->is_type_array_klass()) { + return type; + } else if (type->is_instance_klass()) { + ciInstanceKlass* ik = (ciInstanceKlass*)type; + if (ik->is_loaded() && ik->is_final() && !ik->is_interface()) { + return type; + } + } else if (type->is_obj_array_klass()) { + ciObjArrayKlass* oak = (ciObjArrayKlass*)type; + ciType* base = oak->base_element_type(); + if (base->is_instance_klass()) { + ciInstanceKlass* ik = base->as_instance_klass(); + if (ik->is_loaded() && ik->is_final()) { + return type; + } + } else if (base->is_primitive_type()) { + return type; + } + } + return NULL; +} + + ciType* LoadIndexed::exact_type() const { ciType* array_type = array()->exact_type(); if (array_type == NULL) { @@ -189,16 +216,21 @@ ciType* NewTypeArray::exact_type() const { return ciTypeArrayKlass::make(elt_type()); } - ciType* NewObjectArray::exact_type() const { return ciObjArrayKlass::make(klass()); } +ciType* NewArray::declared_type() const { + return exact_type(); +} ciType* NewInstance::exact_type() const { return klass(); } +ciType* NewInstance::declared_type() const { + return exact_type(); +} ciType* CheckCast::declared_type() const { return klass(); @@ -349,6 +381,11 @@ void Invoke::state_values_do(ValueVisitor* f) { if (state() != NULL) state()->values_do(f); } +ciType* Invoke::declared_type() const { + ciType *t = _target->signature()->return_type(); + assert(t->basic_type() != T_VOID, "need return value of void method?"); + return t; +} // Implementation of Contant intx Constant::hash() const { @@ -559,7 +596,7 @@ void BlockBegin::substitute_sux(BlockBegin* old_sux, BlockBegin* new_sux) { // of the inserted block, without recomputing the values of the other blocks // in the CFG. Therefore the value of "depth_first_number" in BlockBegin becomes meaningless. BlockBegin* BlockBegin::insert_block_between(BlockBegin* sux) { - BlockBegin* new_sux = new BlockBegin(-99); + BlockBegin* new_sux = new BlockBegin(end()->state()->bci()); // mark this block (special treatment when block order is computed) new_sux->set(critical_edge_split_flag); diff --git a/hotspot/src/share/vm/c1/c1_Instruction.hpp b/hotspot/src/share/vm/c1/c1_Instruction.hpp index d997c572c4e..719c1f2fb7c 100644 --- a/hotspot/src/share/vm/c1/c1_Instruction.hpp +++ b/hotspot/src/share/vm/c1/c1_Instruction.hpp @@ -621,16 +621,21 @@ LEAF(Phi, Instruction) LEAF(Local, Instruction) private: int _java_index; // the local index within the method to which the local belongs + ciType* _declared_type; public: // creation - Local(ValueType* type, int index) + Local(ciType* declared, ValueType* type, int index) : Instruction(type) , _java_index(index) + , _declared_type(declared) {} // accessors int java_index() const { return _java_index; } + ciType* declared_type() const { return _declared_type; } + ciType* exact_type() const; + // generic virtual void input_values_do(ValueVisitor* f) { /* no values */ } }; @@ -1146,6 +1151,8 @@ LEAF(Invoke, StateSplit) BasicTypeList* signature() const { return _signature; } ciMethod* target() const { return _target; } + ciType* declared_type() const; + // Returns false if target is not loaded bool target_is_final() const { return check_flag(TargetIsFinalFlag); } bool target_is_loaded() const { return check_flag(TargetIsLoadedFlag); } @@ -1187,6 +1194,7 @@ LEAF(NewInstance, StateSplit) // generic virtual bool can_trap() const { return true; } ciType* exact_type() const; + ciType* declared_type() const; }; @@ -1208,6 +1216,8 @@ BASE(NewArray, StateSplit) virtual bool needs_exception_state() const { return false; } + ciType* declared_type() const; + // generic virtual bool can_trap() const { return true; } virtual void input_values_do(ValueVisitor* f) { StateSplit::input_values_do(f); f->visit(&_length); } @@ -1397,6 +1407,7 @@ LEAF(Intrinsic, StateSplit) vmIntrinsics::ID _id; Values* _args; Value _recv; + int _nonnull_state; // mask identifying which args are nonnull public: // preserves_state can be set to true for Intrinsics @@ -1417,6 +1428,7 @@ LEAF(Intrinsic, StateSplit) , _id(id) , _args(args) , _recv(NULL) + , _nonnull_state(AllBits) { assert(args != NULL, "args must exist"); ASSERT_VALUES @@ -1442,6 +1454,23 @@ LEAF(Intrinsic, StateSplit) Value receiver() const { assert(has_receiver(), "must have receiver"); return _recv; } bool preserves_state() const { return check_flag(PreservesStateFlag); } + bool arg_needs_null_check(int i) { + if (i >= 0 && i < (int)sizeof(_nonnull_state) * BitsPerByte) { + return is_set_nth_bit(_nonnull_state, i); + } + return true; + } + + void set_arg_needs_null_check(int i, bool check) { + if (i >= 0 && i < (int)sizeof(_nonnull_state) * BitsPerByte) { + if (check) { + _nonnull_state |= nth_bit(i); + } else { + _nonnull_state &= ~(nth_bit(i)); + } + } + } + // generic virtual bool can_trap() const { return check_flag(CanTrapFlag); } virtual void input_values_do(ValueVisitor* f) { diff --git a/hotspot/src/share/vm/c1/c1_LIR.hpp b/hotspot/src/share/vm/c1/c1_LIR.hpp index c5c5d91c7ac..a2770e402df 100644 --- a/hotspot/src/share/vm/c1/c1_LIR.hpp +++ b/hotspot/src/share/vm/c1/c1_LIR.hpp @@ -1215,7 +1215,11 @@ public: src_range_check = 1 << 5, dst_range_check = 1 << 6, type_check = 1 << 7, - all_flags = (1 << 8) - 1 + overlapping = 1 << 8, + unaligned = 1 << 9, + src_objarray = 1 << 10, + dst_objarray = 1 << 11, + all_flags = (1 << 12) - 1 }; LIR_OpArrayCopy(LIR_Opr src, LIR_Opr src_pos, LIR_Opr dst, LIR_Opr dst_pos, LIR_Opr length, LIR_Opr tmp, diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp index 3417bda7830..d3b853bedca 100644 --- a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp @@ -836,6 +836,9 @@ void LIR_Assembler::verify_oop_map(CodeEmitInfo* info) { _masm->verify_stack_oop(r->reg2stack() * VMRegImpl::stack_slot_size); } } + check_codespace(); + CHECK_BAILOUT(); + s.next(); } VerifyOops = v; diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index ae3773bcc29..8226935f03c 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -706,6 +706,38 @@ static ciArrayKlass* as_array_klass(ciType* type) { } } +static Value maxvalue(IfOp* ifop) { + switch (ifop->cond()) { + case If::eql: return NULL; + case If::neq: return NULL; + case If::lss: // x < y ? x : y + case If::leq: // x <= y ? x : y + if (ifop->x() == ifop->tval() && + ifop->y() == ifop->fval()) return ifop->y(); + return NULL; + + case If::gtr: // x > y ? y : x + case If::geq: // x >= y ? y : x + if (ifop->x() == ifop->tval() && + ifop->y() == ifop->fval()) return ifop->y(); + return NULL; + + } +} + +static ciType* phi_declared_type(Phi* phi) { + ciType* t = phi->operand_at(0)->declared_type(); + if (t == NULL) { + return NULL; + } + for(int i = 1; i < phi->operand_count(); i++) { + if (t != phi->operand_at(i)->declared_type()) { + return NULL; + } + } + return t; +} + void LIRGenerator::arraycopy_helper(Intrinsic* x, int* flagsp, ciArrayKlass** expected_typep) { Instruction* src = x->argument_at(0); Instruction* src_pos = x->argument_at(1); @@ -715,12 +747,20 @@ void LIRGenerator::arraycopy_helper(Intrinsic* x, int* flagsp, ciArrayKlass** ex // first try to identify the likely type of the arrays involved ciArrayKlass* expected_type = NULL; - bool is_exact = false; + bool is_exact = false, src_objarray = false, dst_objarray = false; { ciArrayKlass* src_exact_type = as_array_klass(src->exact_type()); ciArrayKlass* src_declared_type = as_array_klass(src->declared_type()); + Phi* phi; + if (src_declared_type == NULL && (phi = src->as_Phi()) != NULL) { + src_declared_type = as_array_klass(phi_declared_type(phi)); + } ciArrayKlass* dst_exact_type = as_array_klass(dst->exact_type()); ciArrayKlass* dst_declared_type = as_array_klass(dst->declared_type()); + if (dst_declared_type == NULL && (phi = dst->as_Phi()) != NULL) { + dst_declared_type = as_array_klass(phi_declared_type(phi)); + } + if (src_exact_type != NULL && src_exact_type == dst_exact_type) { // the types exactly match so the type is fully known is_exact = true; @@ -744,17 +784,60 @@ void LIRGenerator::arraycopy_helper(Intrinsic* x, int* flagsp, ciArrayKlass** ex if (expected_type == NULL) expected_type = dst_exact_type; if (expected_type == NULL) expected_type = src_declared_type; if (expected_type == NULL) expected_type = dst_declared_type; + + src_objarray = (src_exact_type && src_exact_type->is_obj_array_klass()) || (src_declared_type && src_declared_type->is_obj_array_klass()); + dst_objarray = (dst_exact_type && dst_exact_type->is_obj_array_klass()) || (dst_declared_type && dst_declared_type->is_obj_array_klass()); } // if a probable array type has been identified, figure out if any // of the required checks for a fast case can be elided. int flags = LIR_OpArrayCopy::all_flags; + + if (!src_objarray) + flags &= ~LIR_OpArrayCopy::src_objarray; + if (!dst_objarray) + flags &= ~LIR_OpArrayCopy::dst_objarray; + + if (!x->arg_needs_null_check(0)) + flags &= ~LIR_OpArrayCopy::src_null_check; + if (!x->arg_needs_null_check(2)) + flags &= ~LIR_OpArrayCopy::dst_null_check; + + if (expected_type != NULL) { - // try to skip null checks - if (src->as_NewArray() != NULL) + Value length_limit = NULL; + + IfOp* ifop = length->as_IfOp(); + if (ifop != NULL) { + // look for expressions like min(v, a.length) which ends up as + // x > y ? y : x or x >= y ? y : x + if ((ifop->cond() == If::gtr || ifop->cond() == If::geq) && + ifop->x() == ifop->fval() && + ifop->y() == ifop->tval()) { + length_limit = ifop->y(); + } + } + + // try to skip null checks and range checks + NewArray* src_array = src->as_NewArray(); + if (src_array != NULL) { flags &= ~LIR_OpArrayCopy::src_null_check; - if (dst->as_NewArray() != NULL) + if (length_limit != NULL && + src_array->length() == length_limit && + is_constant_zero(src_pos)) { + flags &= ~LIR_OpArrayCopy::src_range_check; + } + } + + NewArray* dst_array = dst->as_NewArray(); + if (dst_array != NULL) { flags &= ~LIR_OpArrayCopy::dst_null_check; + if (length_limit != NULL && + dst_array->length() == length_limit && + is_constant_zero(dst_pos)) { + flags &= ~LIR_OpArrayCopy::dst_range_check; + } + } // check from incoming constant values if (positive_constant(src_pos)) @@ -788,6 +871,28 @@ void LIRGenerator::arraycopy_helper(Intrinsic* x, int* flagsp, ciArrayKlass** ex } } + IntConstant* src_int = src_pos->type()->as_IntConstant(); + IntConstant* dst_int = dst_pos->type()->as_IntConstant(); + if (src_int && dst_int) { + int s_offs = src_int->value(); + int d_offs = dst_int->value(); + if (src_int->value() >= dst_int->value()) { + flags &= ~LIR_OpArrayCopy::overlapping; + } + if (expected_type != NULL) { + BasicType t = expected_type->element_type()->basic_type(); + int element_size = type2aelembytes(t); + if (((arrayOopDesc::base_offset_in_bytes(t) + s_offs * element_size) % HeapWordSize == 0) && + ((arrayOopDesc::base_offset_in_bytes(t) + d_offs * element_size) % HeapWordSize == 0)) { + flags &= ~LIR_OpArrayCopy::unaligned; + } + } + } else if (src_pos == dst_pos || is_constant_zero(dst_pos)) { + // src and dest positions are the same, or dst is zero so assume + // nonoverlapping copy. + flags &= ~LIR_OpArrayCopy::overlapping; + } + if (src == dst) { // moving within a single array so no type checks are needed if (flags & LIR_OpArrayCopy::type_check) { @@ -1104,6 +1209,38 @@ void LIRGenerator::do_Return(Return* x) { set_no_result(x); } +// Examble: ref.get() +// Combination of LoadField and g1 pre-write barrier +void LIRGenerator::do_Reference_get(Intrinsic* x) { + + const int referent_offset = java_lang_ref_Reference::referent_offset; + guarantee(referent_offset > 0, "referent offset not initialized"); + + assert(x->number_of_arguments() == 1, "wrong type"); + + LIRItem reference(x->argument_at(0), this); + reference.load_item(); + + // need to perform the null check on the reference objecy + CodeEmitInfo* info = NULL; + if (x->needs_null_check()) { + info = state_for(x); + } + + LIR_Address* referent_field_adr = + new LIR_Address(reference.result(), referent_offset, T_OBJECT); + + LIR_Opr result = rlock_result(x); + + __ load(referent_field_adr, result, info); + + // Register the value in the referent field with the pre-barrier + pre_barrier(LIR_OprFact::illegalOpr /* addr_opr */, + result /* pre_val */, + false /* do_load */, + false /* patch */, + NULL /* info */); +} // Example: object.getClass () void LIRGenerator::do_getClass(Intrinsic* x) { @@ -1246,13 +1383,14 @@ LIR_Opr LIRGenerator::load_constant(LIR_Const* c) { // Various barriers -void LIRGenerator::pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info) { +void LIRGenerator::pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, + bool do_load, bool patch, CodeEmitInfo* info) { // Do the pre-write barrier, if any. switch (_bs->kind()) { #ifndef SERIALGC case BarrierSet::G1SATBCT: case BarrierSet::G1SATBCTLogging: - G1SATBCardTableModRef_pre_barrier(addr_opr, patch, info); + G1SATBCardTableModRef_pre_barrier(addr_opr, pre_val, do_load, patch, info); break; #endif // SERIALGC case BarrierSet::CardTableModRef: @@ -1293,9 +1431,8 @@ void LIRGenerator::post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val) { //////////////////////////////////////////////////////////////////////// #ifndef SERIALGC -void LIRGenerator::G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info) { - if (G1DisablePreBarrier) return; - +void LIRGenerator::G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, + bool do_load, bool patch, CodeEmitInfo* info) { // First we test whether marking is in progress. BasicType flag_type; if (in_bytes(PtrQueue::byte_width_of_active()) == 4) { @@ -1314,26 +1451,40 @@ void LIRGenerator::G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, bool patc // Read the marking-in-progress flag. LIR_Opr flag_val = new_register(T_INT); __ load(mark_active_flag_addr, flag_val); - - LIR_PatchCode pre_val_patch_code = - patch ? lir_patch_normal : lir_patch_none; - - LIR_Opr pre_val = new_register(T_OBJECT); - __ cmp(lir_cond_notEqual, flag_val, LIR_OprFact::intConst(0)); - if (!addr_opr->is_address()) { - assert(addr_opr->is_register(), "must be"); - addr_opr = LIR_OprFact::address(new LIR_Address(addr_opr, T_OBJECT)); + + LIR_PatchCode pre_val_patch_code = lir_patch_none; + + CodeStub* slow; + + if (do_load) { + assert(pre_val == LIR_OprFact::illegalOpr, "sanity"); + assert(addr_opr != LIR_OprFact::illegalOpr, "sanity"); + + if (patch) + pre_val_patch_code = lir_patch_normal; + + pre_val = new_register(T_OBJECT); + + if (!addr_opr->is_address()) { + assert(addr_opr->is_register(), "must be"); + addr_opr = LIR_OprFact::address(new LIR_Address(addr_opr, T_OBJECT)); + } + slow = new G1PreBarrierStub(addr_opr, pre_val, pre_val_patch_code, info); + } else { + assert(addr_opr == LIR_OprFact::illegalOpr, "sanity"); + assert(pre_val->is_register(), "must be"); + assert(pre_val->type() == T_OBJECT, "must be an object"); + assert(info == NULL, "sanity"); + + slow = new G1PreBarrierStub(pre_val); } - CodeStub* slow = new G1PreBarrierStub(addr_opr, pre_val, pre_val_patch_code, - info); + __ branch(lir_cond_notEqual, T_INT, slow); __ branch_destination(slow->continuation()); } void LIRGenerator::G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val) { - if (G1DisablePostBarrier) return; - // If the "new_val" is a constant NULL, no barrier is necessary. if (new_val->is_constant() && new_val->as_constant_ptr()->as_jobject() == NULL) return; @@ -1351,7 +1502,7 @@ void LIRGenerator::G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_Opr if (addr->is_address()) { LIR_Address* address = addr->as_address_ptr(); - LIR_Opr ptr = new_register(T_OBJECT); + LIR_Opr ptr = new_pointer_register(); if (!address->index()->is_valid() && address->disp() == 0) { __ move(address->base(), ptr); } else { @@ -1403,7 +1554,9 @@ void LIRGenerator::CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* LIR_Const* card_table_base = new LIR_Const(((CardTableModRefBS*)_bs)->byte_map_base); if (addr->is_address()) { LIR_Address* address = addr->as_address_ptr(); - LIR_Opr ptr = new_register(T_OBJECT); + // ptr cannot be an object because we use this barrier for array card marks + // and addr can point in the middle of an array. + LIR_Opr ptr = new_pointer_register(); if (!address->index()->is_valid() && address->disp() == 0) { __ move(address->base(), ptr); } else { @@ -1555,6 +1708,8 @@ void LIRGenerator::do_StoreField(StoreField* x) { if (is_oop) { // Do the pre-write barrier, if any. pre_barrier(LIR_OprFact::address(address), + LIR_OprFact::illegalOpr /* pre_val */, + true /* do_load*/, needs_patching, (info ? new CodeEmitInfo(info) : NULL)); } @@ -1984,9 +2139,144 @@ void LIRGenerator::do_UnsafeGetObject(UnsafeGetObject* x) { off.load_item(); src.load_item(); - LIR_Opr reg = reg = rlock_result(x, x->basic_type()); + LIR_Opr reg = rlock_result(x, x->basic_type()); get_Object_unsafe(reg, src.result(), off.result(), type, x->is_volatile()); + +#ifndef SERIALGC + // We might be reading the value of the referent field of a + // Reference object in order to attach it back to the live + // object graph. If G1 is enabled then we need to record + // the value that is being returned in an SATB log buffer. + // + // We need to generate code similar to the following... + // + // if (offset == java_lang_ref_Reference::referent_offset) { + // if (src != NULL) { + // if (klass(src)->reference_type() != REF_NONE) { + // pre_barrier(..., reg, ...); + // } + // } + // } + // + // The first non-constant check of either the offset or + // the src operand will be done here; the remainder + // will take place in the generated code stub. + + if (UseG1GC && type == T_OBJECT) { + bool gen_code_stub = true; // Assume we need to generate the slow code stub. + bool gen_offset_check = true; // Assume the code stub has to generate the offset guard. + bool gen_source_check = true; // Assume the code stub has to check the src object for null. + + if (off.is_constant()) { + jlong off_con = (off.type()->is_int() ? + (jlong) off.get_jint_constant() : + off.get_jlong_constant()); + + + if (off_con != (jlong) java_lang_ref_Reference::referent_offset) { + // The constant offset is something other than referent_offset. + // We can skip generating/checking the remaining guards and + // skip generation of the code stub. + gen_code_stub = false; + } else { + // The constant offset is the same as referent_offset - + // we do not need to generate a runtime offset check. + gen_offset_check = false; + } + } + + // We don't need to generate stub if the source object is an array + if (gen_code_stub && src.type()->is_array()) { + gen_code_stub = false; + } + + if (gen_code_stub) { + // We still need to continue with the checks. + if (src.is_constant()) { + ciObject* src_con = src.get_jobject_constant(); + + if (src_con->is_null_object()) { + // The constant src object is null - We can skip + // generating the code stub. + gen_code_stub = false; + } else { + // Non-null constant source object. We still have to generate + // the slow stub - but we don't need to generate the runtime + // null object check. + gen_source_check = false; + } + } + } + + if (gen_code_stub) { + // Temoraries. + LIR_Opr src_klass = new_register(T_OBJECT); + + // Get the thread pointer for the pre-barrier + LIR_Opr thread = getThreadPointer(); + + CodeStub* stub; + + // We can have generate one runtime check here. Let's start with + // the offset check. + if (gen_offset_check) { + // if (offset == referent_offset) -> slow code stub + // If offset is an int then we can do the comparison with the + // referent_offset constant; otherwise we need to move + // referent_offset into a temporary register and generate + // a reg-reg compare. + + LIR_Opr referent_off; + + if (off.type()->is_int()) { + referent_off = LIR_OprFact::intConst(java_lang_ref_Reference::referent_offset); + } else { + assert(off.type()->is_long(), "what else?"); + referent_off = new_register(T_LONG); + __ move(LIR_OprFact::longConst(java_lang_ref_Reference::referent_offset), referent_off); + } + + __ cmp(lir_cond_equal, off.result(), referent_off); + + // Optionally generate "src == null" check. + stub = new G1UnsafeGetObjSATBBarrierStub(reg, src.result(), + src_klass, thread, + gen_source_check); + + __ branch(lir_cond_equal, as_BasicType(off.type()), stub); + } else { + if (gen_source_check) { + // offset is a const and equals referent offset + // if (source != null) -> slow code stub + __ cmp(lir_cond_notEqual, src.result(), LIR_OprFact::oopConst(NULL)); + + // Since we are generating the "if src == null" guard here, + // there is no need to generate the "src == null" check again. + stub = new G1UnsafeGetObjSATBBarrierStub(reg, src.result(), + src_klass, thread, + false); + + __ branch(lir_cond_notEqual, T_OBJECT, stub); + } else { + // We have statically determined that offset == referent_offset + // && src != null so we unconditionally branch to code stub + // to perform the guards and record reg in the SATB log buffer. + + stub = new G1UnsafeGetObjSATBBarrierStub(reg, src.result(), + src_klass, thread, + false); + + __ branch(lir_cond_always, T_ILLEGAL, stub); + } + } + + // Continuation point + __ branch_destination(stub->continuation()); + } + } +#endif // SERIALGC + if (x->is_volatile() && os::is_MP()) __ membar_acquire(); } @@ -2652,6 +2942,10 @@ void LIRGenerator::do_Intrinsic(Intrinsic* x) { do_AttemptUpdate(x); break; + case vmIntrinsics::_Reference_get: + do_Reference_get(x); + break; + default: ShouldNotReachHere(); break; } } diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp index 4b9c4aeca73..2b8fc23e65b 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp @@ -246,6 +246,7 @@ class LIRGenerator: public InstructionVisitor, public BlockClosure { void do_AttemptUpdate(Intrinsic* x); void do_NIOCheckIndex(Intrinsic* x); void do_FPIntrinsics(Intrinsic* x); + void do_Reference_get(Intrinsic* x); void do_UnsafePrefetch(UnsafePrefetch* x, bool is_store); @@ -260,13 +261,14 @@ class LIRGenerator: public InstructionVisitor, public BlockClosure { // generic interface - void pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info); + void pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, bool do_load, bool patch, CodeEmitInfo* info); void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val); // specific implementations // pre barriers - void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info); + void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, LIR_Opr pre_val, + bool do_load, bool patch, CodeEmitInfo* info); // post barriers diff --git a/hotspot/src/share/vm/c1/c1_Optimizer.cpp b/hotspot/src/share/vm/c1/c1_Optimizer.cpp index 93d610e6245..f07494d379c 100644 --- a/hotspot/src/share/vm/c1/c1_Optimizer.cpp +++ b/hotspot/src/share/vm/c1/c1_Optimizer.cpp @@ -644,7 +644,7 @@ void NullCheckVisitor::do_CheckCast (CheckCast* x) {} void NullCheckVisitor::do_InstanceOf (InstanceOf* x) {} void NullCheckVisitor::do_MonitorEnter (MonitorEnter* x) { nce()->handle_AccessMonitor(x); } void NullCheckVisitor::do_MonitorExit (MonitorExit* x) { nce()->handle_AccessMonitor(x); } -void NullCheckVisitor::do_Intrinsic (Intrinsic* x) { nce()->clear_last_explicit_null_check(); } +void NullCheckVisitor::do_Intrinsic (Intrinsic* x) { nce()->handle_Intrinsic(x); } void NullCheckVisitor::do_BlockBegin (BlockBegin* x) {} void NullCheckVisitor::do_Goto (Goto* x) {} void NullCheckVisitor::do_If (If* x) {} @@ -1023,6 +1023,12 @@ void NullCheckEliminator::handle_AccessMonitor(AccessMonitor* x) { void NullCheckEliminator::handle_Intrinsic(Intrinsic* x) { if (!x->has_receiver()) { + if (x->id() == vmIntrinsics::_arraycopy) { + for (int i = 0; i < x->number_of_arguments(); i++) { + x->set_arg_needs_null_check(i, !set_contains(x->argument_at(i))); + } + } + // Be conservative clear_last_explicit_null_check(); return; diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index 63fe9c0a2a0..03e83420d45 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -103,7 +103,10 @@ const char *Runtime1::_blob_names[] = { int Runtime1::_generic_arraycopy_cnt = 0; int Runtime1::_primitive_arraycopy_cnt = 0; int Runtime1::_oop_arraycopy_cnt = 0; +int Runtime1::_generic_arraycopystub_cnt = 0; int Runtime1::_arraycopy_slowcase_cnt = 0; +int Runtime1::_arraycopy_checkcast_cnt = 0; +int Runtime1::_arraycopy_checkcast_attempt_cnt = 0; int Runtime1::_new_type_array_slowcase_cnt = 0; int Runtime1::_new_object_array_slowcase_cnt = 0; int Runtime1::_new_instance_slowcase_cnt = 0; @@ -119,6 +122,32 @@ int Runtime1::_throw_class_cast_exception_count = 0; int Runtime1::_throw_incompatible_class_change_error_count = 0; int Runtime1::_throw_array_store_exception_count = 0; int Runtime1::_throw_count = 0; + +static int _byte_arraycopy_cnt = 0; +static int _short_arraycopy_cnt = 0; +static int _int_arraycopy_cnt = 0; +static int _long_arraycopy_cnt = 0; +static int _oop_arraycopy_cnt = 0; + +address Runtime1::arraycopy_count_address(BasicType type) { + switch (type) { + case T_BOOLEAN: + case T_BYTE: return (address)&_byte_arraycopy_cnt; + case T_CHAR: + case T_SHORT: return (address)&_short_arraycopy_cnt; + case T_FLOAT: + case T_INT: return (address)&_int_arraycopy_cnt; + case T_DOUBLE: + case T_LONG: return (address)&_long_arraycopy_cnt; + case T_ARRAY: + case T_OBJECT: return (address)&_oop_arraycopy_cnt; + default: + ShouldNotReachHere(); + return NULL; + } +} + + #endif // Simple helper to see if the caller of a runtime stub which @@ -1229,9 +1258,17 @@ void Runtime1::print_statistics() { tty->print_cr(" _handle_wrong_method_cnt: %d", SharedRuntime::_wrong_method_ctr); tty->print_cr(" _ic_miss_cnt: %d", SharedRuntime::_ic_miss_ctr); tty->print_cr(" _generic_arraycopy_cnt: %d", _generic_arraycopy_cnt); + tty->print_cr(" _generic_arraycopystub_cnt: %d", _generic_arraycopystub_cnt); + tty->print_cr(" _byte_arraycopy_cnt: %d", _byte_arraycopy_cnt); + tty->print_cr(" _short_arraycopy_cnt: %d", _short_arraycopy_cnt); + tty->print_cr(" _int_arraycopy_cnt: %d", _int_arraycopy_cnt); + tty->print_cr(" _long_arraycopy_cnt: %d", _long_arraycopy_cnt); tty->print_cr(" _primitive_arraycopy_cnt: %d", _primitive_arraycopy_cnt); - tty->print_cr(" _oop_arraycopy_cnt: %d", _oop_arraycopy_cnt); + tty->print_cr(" _oop_arraycopy_cnt (C): %d", Runtime1::_oop_arraycopy_cnt); + tty->print_cr(" _oop_arraycopy_cnt (stub): %d", _oop_arraycopy_cnt); tty->print_cr(" _arraycopy_slowcase_cnt: %d", _arraycopy_slowcase_cnt); + tty->print_cr(" _arraycopy_checkcast_cnt: %d", _arraycopy_checkcast_cnt); + tty->print_cr(" _arraycopy_checkcast_attempt_cnt:%d", _arraycopy_checkcast_attempt_cnt); tty->print_cr(" _new_type_array_slowcase_cnt: %d", _new_type_array_slowcase_cnt); tty->print_cr(" _new_object_array_slowcase_cnt: %d", _new_object_array_slowcase_cnt); diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.hpp b/hotspot/src/share/vm/c1/c1_Runtime1.hpp index 1d6782c6ac4..78f73bf6209 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.hpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.hpp @@ -94,7 +94,10 @@ class Runtime1: public AllStatic { static int _generic_arraycopy_cnt; static int _primitive_arraycopy_cnt; static int _oop_arraycopy_cnt; + static int _generic_arraycopystub_cnt; static int _arraycopy_slowcase_cnt; + static int _arraycopy_checkcast_cnt; + static int _arraycopy_checkcast_attempt_cnt; static int _new_type_array_slowcase_cnt; static int _new_object_array_slowcase_cnt; static int _new_instance_slowcase_cnt; @@ -174,7 +177,8 @@ class Runtime1: public AllStatic { static void trace_block_entry(jint block_id); #ifndef PRODUCT - static address throw_count_address() { return (address)&_throw_count; } + static address throw_count_address() { return (address)&_throw_count; } + static address arraycopy_count_address(BasicType type); #endif // directly accessible leaf routine diff --git a/hotspot/src/share/vm/ci/ciInstance.cpp b/hotspot/src/share/vm/ci/ciInstance.cpp index d249caa2e0c..0c671082bf2 100644 --- a/hotspot/src/share/vm/ci/ciInstance.cpp +++ b/hotspot/src/share/vm/ci/ciInstance.cpp @@ -66,8 +66,8 @@ ciConstant ciInstance::field_value(ciField* field) { "invalid access"); VM_ENTRY_MARK; ciConstant result; - oop obj = get_oop(); - assert(obj != NULL, "bad oop"); + Handle obj = get_oop(); + assert(!obj.is_null(), "bad oop"); BasicType field_btype = field->type()->basic_type(); int offset = field->offset(); diff --git a/hotspot/src/share/vm/ci/ciMethodHandle.cpp b/hotspot/src/share/vm/ci/ciMethodHandle.cpp index 1355b504c4c..ef57f800cab 100644 --- a/hotspot/src/share/vm/ci/ciMethodHandle.cpp +++ b/hotspot/src/share/vm/ci/ciMethodHandle.cpp @@ -42,9 +42,20 @@ ciMethod* ciMethodHandle::get_adapter(bool is_invokedynamic) const { methodHandle callee(_callee->get_methodOop()); // We catch all exceptions here that could happen in the method // handle compiler and stop the VM. - MethodHandleCompiler mhc(h, callee, is_invokedynamic, CATCH); - methodHandle m = mhc.compile(CATCH); - return CURRENT_ENV->get_object(m())->as_method(); + MethodHandleCompiler mhc(h, callee, is_invokedynamic, THREAD); + if (!HAS_PENDING_EXCEPTION) { + methodHandle m = mhc.compile(THREAD); + if (!HAS_PENDING_EXCEPTION) { + return CURRENT_ENV->get_object(m())->as_method(); + } + } + if (PrintMiscellaneous && (Verbose || WizardMode)) { + tty->print("*** ciMethodHandle::get_adapter => "); + PENDING_EXCEPTION->print(); + tty->print("*** get_adapter (%s): ", is_invokedynamic ? "indy" : "mh"); ((ciObject*)this)->print(); //@@ + } + CLEAR_PENDING_EXCEPTION; + return NULL; } diff --git a/hotspot/src/share/vm/ci/ciTypeFlow.hpp b/hotspot/src/share/vm/ci/ciTypeFlow.hpp index e83487d1937..5cc5c90c891 100644 --- a/hotspot/src/share/vm/ci/ciTypeFlow.hpp +++ b/hotspot/src/share/vm/ci/ciTypeFlow.hpp @@ -34,6 +34,7 @@ #include "ci/ciEnv.hpp" #include "ci/ciKlass.hpp" #include "ci/ciMethodBlocks.hpp" +#include "shark/shark_globals.hpp" #endif diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 3f71a2b432c..0593639bbf7 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -170,7 +170,6 @@ void ClassFileParser::parse_constant_pool_entries(constantPoolHandle cp, int len ShouldNotReachHere(); } break; - case JVM_CONSTANT_InvokeDynamicTrans : // this tag appears only in old classfiles case JVM_CONSTANT_InvokeDynamic : { if (_major_version < Verifier::INVOKEDYNAMIC_MAJOR_VERSION) { @@ -186,14 +185,6 @@ void ClassFileParser::parse_constant_pool_entries(constantPoolHandle cp, int len cfs->guarantee_more(5, CHECK); // bsm_index, nt, tag/access_flags u2 bootstrap_specifier_index = cfs->get_u2_fast(); u2 name_and_type_index = cfs->get_u2_fast(); - if (tag == JVM_CONSTANT_InvokeDynamicTrans) { - if (!AllowTransitionalJSR292) - classfile_parse_error( - "This JVM does not support transitional InvokeDynamic tag %u in class file %s", - tag, CHECK); - cp->invoke_dynamic_trans_at_put(index, bootstrap_specifier_index, name_and_type_index); - break; - } if (_max_bootstrap_specifier_index < (int) bootstrap_specifier_index) _max_bootstrap_specifier_index = (int) bootstrap_specifier_index; // collect for later cp->invoke_dynamic_at_put(index, bootstrap_specifier_index, name_and_type_index); @@ -492,7 +483,6 @@ constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) { ref_index, CHECK_(nullHandle)); } break; - case JVM_CONSTANT_InvokeDynamicTrans : case JVM_CONSTANT_InvokeDynamic : { int name_and_type_ref_index = cp->invoke_dynamic_name_and_type_ref_index_at(index); @@ -501,14 +491,6 @@ constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) { "Invalid constant pool index %u in class file %s", name_and_type_ref_index, CHECK_(nullHandle)); - if (tag == JVM_CONSTANT_InvokeDynamicTrans) { - int bootstrap_method_ref_index = cp->invoke_dynamic_bootstrap_method_ref_index_at(index); - check_property(valid_cp_range(bootstrap_method_ref_index, length) && - cp->tag_at(bootstrap_method_ref_index).is_method_handle(), - "Invalid constant pool index %u in class file %s", - bootstrap_method_ref_index, - CHECK_(nullHandle)); - } // bootstrap specifier index must be checked later, when BootstrapMethods attr is available break; } @@ -578,6 +560,7 @@ constantPoolHandle ClassFileParser::parse_constant_pool(TRAPS) { } break; } + case JVM_CONSTANT_InvokeDynamic: case JVM_CONSTANT_Fieldref: case JVM_CONSTANT_Methodref: case JVM_CONSTANT_InterfaceMethodref: { @@ -2213,11 +2196,12 @@ typeArrayHandle ClassFileParser::sort_methods(objArrayHandle methods, TRAPS) { typeArrayHandle nullHandle; int length = methods()->length(); - // If JVMTI original method ordering is enabled we have to + // If JVMTI original method ordering or sharing is enabled we have to // remember the original class file ordering. // We temporarily use the vtable_index field in the methodOop to store the // class file index, so we can read in after calling qsort. - if (JvmtiExport::can_maintain_original_method_order()) { + // Put the method ordering in the shared archive. + if (JvmtiExport::can_maintain_original_method_order() || DumpSharedSpaces) { for (int index = 0; index < length; index++) { methodOop m = methodOop(methods->obj_at(index)); assert(!m->valid_vtable_index(), "vtable index should not be set"); @@ -2231,8 +2215,9 @@ typeArrayHandle ClassFileParser::sort_methods(objArrayHandle methods, methods_parameter_annotations(), methods_default_annotations()); - // If JVMTI original method ordering is enabled construct int array remembering the original ordering - if (JvmtiExport::can_maintain_original_method_order()) { + // If JVMTI original method ordering or sharing is enabled construct int + // array remembering the original ordering + if (JvmtiExport::can_maintain_original_method_order() || DumpSharedSpaces) { typeArrayOop new_ordering = oopFactory::new_permanent_intArray(length, CHECK_(nullHandle)); typeArrayHandle method_ordering(THREAD, new_ordering); for (int index = 0; index < length; index++) { @@ -2783,7 +2768,6 @@ void ClassFileParser::java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle c } } - if (AllowTransitionalJSR292 && word_sig_index == 0) return; if (word_sig_index == 0) THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), "missing I or J signature (for vmentry) in java.lang.invoke.MethodHandle"); @@ -2823,7 +2807,6 @@ void ClassFileParser::java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle c } } - if (AllowTransitionalJSR292 && !found_vmentry) return; if (!found_vmentry) THROW_MSG(vmSymbols::java_lang_VirtualMachineError(), "missing vmentry byte field in java.lang.invoke.MethodHandle"); @@ -3194,15 +3177,6 @@ instanceKlassHandle ClassFileParser::parseClassFile(Symbol* name, if (EnableInvokeDynamic && class_name == vmSymbols::java_lang_invoke_MethodHandle() && class_loader.is_null()) { java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); } - if (AllowTransitionalJSR292 && - EnableInvokeDynamic && class_name == vmSymbols::java_dyn_MethodHandle() && class_loader.is_null()) { - java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); - } - if (AllowTransitionalJSR292 && - EnableInvokeDynamic && class_name == vmSymbols::sun_dyn_MethodHandleImpl() && class_loader.is_null()) { - // allow vmentry field in MethodHandleImpl also - java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle)); - } // Add a fake "discovered" field if it is not present // for compatibility with earlier jdk's. diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp index 9294a58fbe7..81b3e65d4ee 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.cpp +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp @@ -67,28 +67,6 @@ static bool find_field(instanceKlass* ik, return ik->find_local_field(name_symbol, signature_symbol, fd); } -static bool find_hacked_field(instanceKlass* ik, - Symbol* name_symbol, Symbol* signature_symbol, - fieldDescriptor* fd, - bool allow_super = false) { - bool found = find_field(ik, name_symbol, signature_symbol, fd, allow_super); - if (!found && AllowTransitionalJSR292) { - Symbol* backup_sig = SystemDictionary::find_backup_signature(signature_symbol); - if (backup_sig != NULL) { - found = find_field(ik, name_symbol, backup_sig, fd, allow_super); - if (TraceMethodHandles) { - ResourceMark rm; - tty->print_cr("MethodHandles: %s.%s: backup for %s => %s%s", - ik->name()->as_C_string(), name_symbol->as_C_string(), - signature_symbol->as_C_string(), backup_sig->as_C_string(), - (found ? "" : " (NOT FOUND)")); - } - } - } - return found; -} -#define find_field find_hacked_field /* remove after AllowTransitionalJSR292 */ - // Helpful routine for computing field offsets at run time rather than hardcoding them static void compute_offset(int &dest_offset, @@ -1453,32 +1431,41 @@ void java_lang_Throwable::fill_in_stack_trace(Handle throwable, TRAPS) { } } #ifdef ASSERT - assert(st_method() == method && st.bci() == bci, - "Wrong stack trace"); - st.next(); - // vframeStream::method isn't GC-safe so store off a copy - // of the methodOop in case we GC. - if (!st.at_end()) { - st_method = st.method(); - } + assert(st_method() == method && st.bci() == bci, + "Wrong stack trace"); + st.next(); + // vframeStream::method isn't GC-safe so store off a copy + // of the methodOop in case we GC. + if (!st.at_end()) { + st_method = st.method(); + } #endif + + // the format of the stacktrace will be: + // - 1 or more fillInStackTrace frames for the exception class (skipped) + // - 0 or more methods for the exception class (skipped) + // - rest of the stack + if (!skip_fillInStackTrace_check) { - // check "fillInStackTrace" only once, so we negate the flag - // after the first time check. - skip_fillInStackTrace_check = true; - if (method->name() == vmSymbols::fillInStackTrace_name()) { + if ((method->name() == vmSymbols::fillInStackTrace_name() || + method->name() == vmSymbols::fillInStackTrace0_name()) && + throwable->is_a(method->method_holder())) { continue; } + else { + skip_fillInStackTrace_check = true; // gone past them all + } } - // skip methods of the exceptions klass. If there is methods - // that belongs to a superclass of the exception we are going to skipping - // them in stack trace. This is simlar to classic VM. if (!skip_throwableInit_check) { + assert(skip_fillInStackTrace_check, "logic error in backtrace filtering"); + + // skip methods of the exception class and superclasses + // This is simlar to classic VM. if (method->name() == vmSymbols::object_initializer_name() && throwable->is_a(method->method_holder())) { continue; } else { - // if no "Throwable.init()" method found, we stop checking it next time. + // there are none or we've seen them all - either way stop checking skip_throwableInit_check = true; } } @@ -2333,7 +2320,6 @@ void java_lang_invoke_MethodHandle::compute_offsets() { klassOop k = SystemDictionary::MethodHandle_klass(); if (k != NULL && EnableInvokeDynamic) { bool allow_super = false; - if (AllowTransitionalJSR292) allow_super = true; // temporary, to access java.dyn.MethodHandleImpl compute_offset(_type_offset, k, vmSymbols::type_name(), vmSymbols::java_lang_invoke_MethodType_signature(), allow_super); compute_offset(_vmtarget_offset, k, vmSymbols::vmtarget_name(), vmSymbols::object_signature(), allow_super); compute_offset(_vmentry_offset, k, vmSymbols::vmentry_name(), vmSymbols::machine_word_signature(), allow_super); diff --git a/hotspot/src/share/vm/classfile/stackMapFrame.cpp b/hotspot/src/share/vm/classfile/stackMapFrame.cpp index 19f903c662f..01620c71848 100644 --- a/hotspot/src/share/vm/classfile/stackMapFrame.cpp +++ b/hotspot/src/share/vm/classfile/stackMapFrame.cpp @@ -208,8 +208,10 @@ bool StackMapFrame::has_flag_match_exception( return true; } -bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const { - if (_max_locals != target->max_locals() || _stack_size != target->stack_size()) { +bool StackMapFrame::is_assignable_to( + const StackMapFrame* target, bool is_exception_handler, TRAPS) const { + if (_max_locals != target->max_locals() || + _stack_size != target->stack_size()) { return false; } // Only need to compare type elements up to target->locals() or target->stack(). @@ -222,7 +224,7 @@ bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const { bool match_flags = (_flags | target->flags()) == target->flags(); return match_locals && match_stack && - (match_flags || has_flag_match_exception(target)); + (match_flags || (is_exception_handler && has_flag_match_exception(target))); } VerificationType StackMapFrame::pop_stack_ex(VerificationType type, TRAPS) { diff --git a/hotspot/src/share/vm/classfile/stackMapFrame.hpp b/hotspot/src/share/vm/classfile/stackMapFrame.hpp index d99808bce10..1e4c130d46c 100644 --- a/hotspot/src/share/vm/classfile/stackMapFrame.hpp +++ b/hotspot/src/share/vm/classfile/stackMapFrame.hpp @@ -134,7 +134,8 @@ class StackMapFrame : public ResourceObj { void copy_stack(const StackMapFrame* src); // Return true if this stack map frame is assignable to target. - bool is_assignable_to(const StackMapFrame* target, TRAPS) const; + bool is_assignable_to(const StackMapFrame* target, + bool is_exception_handler, TRAPS) const; // Push type into stack type array. inline void push_stack(VerificationType type, TRAPS) { diff --git a/hotspot/src/share/vm/classfile/stackMapTable.cpp b/hotspot/src/share/vm/classfile/stackMapTable.cpp index 41de52d8b2d..4d1f599577e 100644 --- a/hotspot/src/share/vm/classfile/stackMapTable.cpp +++ b/hotspot/src/share/vm/classfile/stackMapTable.cpp @@ -98,10 +98,13 @@ bool StackMapTable::match_stackmap( bool result = true; StackMapFrame *stackmap_frame = _frame_array[frame_index]; if (match) { + // when checking handler target, match == true && update == false + bool is_exception_handler = !update; // Has direct control flow from last instruction, need to match the two // frames. result = frame->is_assignable_to( - stackmap_frame, CHECK_VERIFY_(frame->verifier(), false)); + stackmap_frame, is_exception_handler, + CHECK_VERIFY_(frame->verifier(), false)); } if (update) { // Use the frame in stackmap table as current frame diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp index 9ed92f8354d..dd185e6bc98 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.cpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp @@ -1255,6 +1255,16 @@ instanceKlassHandle SystemDictionary::load_shared_class( methodHandle m(THREAD, methodOop(methods->obj_at(index2))); m()->link_method(m, CHECK_(nh)); } + if (JvmtiExport::has_redefined_a_class()) { + // Reinitialize vtable because RedefineClasses may have changed some + // entries in this vtable for super classes so the CDS vtable might + // point to old or obsolete entries. RedefineClasses doesn't fix up + // vtables in the shared system dictionary, only the main one. + // It also redefines the itable too so fix that too. + ResourceMark rm(THREAD); + ik->vtable()->initialize_vtable(false, CHECK_(nh)); + ik->itable()->initialize_itable(false, CHECK_(nh)); + } } if (TraceClassLoading) { @@ -1887,99 +1897,27 @@ static const short wk_init_info[] = { 0 }; -Symbol* SystemDictionary::find_backup_symbol(Symbol* symbol, - const char* from_prefix, - const char* to_prefix) { - assert(AllowTransitionalJSR292, ""); // delete this subroutine - Symbol* backup_symbol = NULL; - size_t from_len = strlen(from_prefix); - if (strncmp((const char*) symbol->base(), from_prefix, from_len) != 0) - return NULL; - char buf[100]; - size_t to_len = strlen(to_prefix); - size_t tail_len = symbol->utf8_length() - from_len; - size_t new_len = to_len + tail_len; - guarantee(new_len < sizeof(buf), "buf too small"); - memcpy(buf, to_prefix, to_len); - memcpy(buf + to_len, symbol->base() + from_len, tail_len); - buf[new_len] = '\0'; - vmSymbols::SID backup_sid = vmSymbols::find_sid(buf); - if (backup_sid != vmSymbols::NO_SID) { - backup_symbol = vmSymbols::symbol_at(backup_sid); - } - return backup_symbol; -} - -Symbol* SystemDictionary::find_backup_class_name(Symbol* symbol) { - assert(AllowTransitionalJSR292, ""); // delete this subroutine - if (symbol == NULL) return NULL; - Symbol* backup_symbol = find_backup_symbol(symbol, "java/lang/invoke/", "java/dyn/"); // AllowTransitionalJSR292 ONLY - if (backup_symbol == NULL) - backup_symbol = find_backup_symbol(symbol, "java/dyn/", "sun/dyn/"); // AllowTransitionalJSR292 ONLY - return backup_symbol; -} - -Symbol* SystemDictionary::find_backup_signature(Symbol* symbol) { - assert(AllowTransitionalJSR292, ""); // delete this subroutine - if (symbol == NULL) return NULL; - return find_backup_symbol(symbol, "Ljava/lang/invoke/", "Ljava/dyn/"); -} - bool SystemDictionary::initialize_wk_klass(WKID id, int init_opt, TRAPS) { assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob"); int info = wk_init_info[id - FIRST_WKID]; int sid = (info >> CEIL_LG_OPTION_LIMIT); Symbol* symbol = vmSymbols::symbol_at((vmSymbols::SID)sid); klassOop* klassp = &_well_known_klasses[id]; - bool pre_load = (init_opt < SystemDictionary::Opt); - bool try_load = true; + bool must_load = (init_opt < SystemDictionary::Opt); + bool try_load = true; if (init_opt == SystemDictionary::Opt_Kernel) { #ifndef KERNEL try_load = false; #endif //KERNEL } - Symbol* backup_symbol = NULL; // symbol to try if the current symbol fails - if (init_opt == SystemDictionary::Pre_JSR292) { - if (!EnableInvokeDynamic) try_load = false; // do not bother to load such classes - if (AllowTransitionalJSR292) { - backup_symbol = find_backup_class_name(symbol); - if (try_load && PreferTransitionalJSR292) { - while (backup_symbol != NULL) { - (*klassp) = resolve_or_null(backup_symbol, CHECK_0); // try backup early - if (TraceMethodHandles) { - ResourceMark rm; - tty->print_cr("MethodHandles: try backup first for %s => %s (%s)", - symbol->as_C_string(), backup_symbol->as_C_string(), - ((*klassp) == NULL) ? "no such class" : "backup load succeeded"); - } - if ((*klassp) != NULL) return true; - backup_symbol = find_backup_class_name(backup_symbol); // find next backup - } - } - } - } - if ((*klassp) != NULL) return true; - if (!try_load) return false; - while (symbol != NULL) { - bool must_load = (pre_load && (backup_symbol == NULL)); + if ((*klassp) == NULL && try_load) { if (must_load) { (*klassp) = resolve_or_fail(symbol, true, CHECK_0); // load required class } else { (*klassp) = resolve_or_null(symbol, CHECK_0); // load optional klass } - if ((*klassp) != NULL) return true; - // Go around again. Example of long backup sequence: - // java.lang.invoke.MemberName, java.dyn.MemberName, sun.dyn.MemberName, ONLY if AllowTransitionalJSR292 - if (TraceMethodHandles && (backup_symbol != NULL)) { - ResourceMark rm; - tty->print_cr("MethodHandles: backup for %s => %s", - symbol->as_C_string(), backup_symbol->as_C_string()); - } - symbol = backup_symbol; - if (AllowTransitionalJSR292) - backup_symbol = find_backup_class_name(symbol); } - return false; + return ((*klassp) != NULL); } void SystemDictionary::initialize_wk_klasses_until(WKID limit_id, WKID &start_id, TRAPS) { @@ -2409,9 +2347,7 @@ methodOop SystemDictionary::find_method_handle_invoke(Symbol* name, // Must create lots of stuff here, but outside of the SystemDictionary lock. if (THREAD->is_Compiler_thread()) return NULL; // do not attempt from within compiler - bool for_invokeGeneric = (name_id == vmSymbols::VM_SYMBOL_ENUM_NAME(invokeGeneric_name)); - if (AllowInvokeForInvokeGeneric && name_id == vmSymbols::VM_SYMBOL_ENUM_NAME(invoke_name)) - for_invokeGeneric = true; + bool for_invokeGeneric = (name_id != vmSymbols::VM_SYMBOL_ENUM_NAME(invokeExact_name)); bool found_on_bcp = false; Handle mt = find_method_handle_type(signature, accessing_klass, for_invokeGeneric, @@ -2498,14 +2434,10 @@ Handle SystemDictionary::find_method_handle_type(Symbol* signature, JavaCallArguments args(Handle(THREAD, rt())); args.push_oop(pts()); JavaValue result(T_OBJECT); - Symbol* findMethodHandleType_signature = vmSymbols::findMethodHandleType_signature(); - if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodType_klass()->name() == vmSymbols::java_dyn_MethodType()) { - findMethodHandleType_signature = vmSymbols::findMethodHandleType_TRANS_signature(); - } JavaCalls::call_static(&result, SystemDictionary::MethodHandleNatives_klass(), vmSymbols::findMethodHandleType_name(), - findMethodHandleType_signature, + vmSymbols::findMethodHandleType_signature(), &args, CHECK_(empty)); Handle method_type(THREAD, (oop) result.get_jobject()); @@ -2513,14 +2445,10 @@ Handle SystemDictionary::find_method_handle_type(Symbol* signature, // call java.lang.invoke.MethodHandleNatives::notifyGenericMethodType(MethodType) -> void JavaCallArguments args(Handle(THREAD, method_type())); JavaValue no_result(T_VOID); - Symbol* notifyGenericMethodType_signature = vmSymbols::notifyGenericMethodType_signature(); - if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodType_klass()->name() == vmSymbols::java_dyn_MethodType()) { - notifyGenericMethodType_signature = vmSymbols::notifyGenericMethodType_TRANS_signature(); - } JavaCalls::call_static(&no_result, SystemDictionary::MethodHandleNatives_klass(), vmSymbols::notifyGenericMethodType_name(), - notifyGenericMethodType_signature, + vmSymbols::notifyGenericMethodType_signature(), &args, THREAD); if (HAS_PENDING_EXCEPTION) { // If the notification fails, just kill it. @@ -2569,14 +2497,10 @@ Handle SystemDictionary::link_method_handle_constant(KlassHandle caller, args.push_oop(name()); args.push_oop(type()); JavaValue result(T_OBJECT); - Symbol* linkMethodHandleConstant_signature = vmSymbols::linkMethodHandleConstant_signature(); - if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandle_klass()->name() == vmSymbols::java_dyn_MethodHandle()) { - linkMethodHandleConstant_signature = vmSymbols::linkMethodHandleConstant_TRANS_signature(); - } JavaCalls::call_static(&result, SystemDictionary::MethodHandleNatives_klass(), vmSymbols::linkMethodHandleConstant_name(), - linkMethodHandleConstant_signature, + vmSymbols::linkMethodHandleConstant_signature(), &args, CHECK_(empty)); return Handle(THREAD, (oop) result.get_jobject()); } @@ -2607,17 +2531,10 @@ Handle SystemDictionary::make_dynamic_call_site(Handle bootstrap_method, args.push_oop(caller_mname()); args.push_int(caller_bci); JavaValue result(T_OBJECT); - Symbol* makeDynamicCallSite_signature = vmSymbols::makeDynamicCallSite_signature(); - if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandleNatives_klass()->name() == vmSymbols::sun_dyn_MethodHandleNatives()) { - makeDynamicCallSite_signature = vmSymbols::makeDynamicCallSite_TRANS_signature(); - } - if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandleNatives_klass()->name() == vmSymbols::java_dyn_MethodHandleNatives()) { - makeDynamicCallSite_signature = vmSymbols::makeDynamicCallSite_TRANS2_signature(); - } JavaCalls::call_static(&result, SystemDictionary::MethodHandleNatives_klass(), vmSymbols::makeDynamicCallSite_name(), - makeDynamicCallSite_signature, + vmSymbols::makeDynamicCallSite_signature(), &args, CHECK_(empty)); oop call_site_oop = (oop) result.get_jobject(); assert(call_site_oop->is_oop() @@ -2698,28 +2615,10 @@ Handle SystemDictionary::find_bootstrap_method(methodHandle caller_method, int c argument_info_result = argument_info; // return argument_info to caller return bsm; } - // else null BSM; fall through - } else if (tag.is_name_and_type()) { - // JSR 292 EDR does not have JVM_CONSTANT_InvokeDynamic - // a bare name&type defaults its BSM to null, so fall through... } else { ShouldNotReachHere(); // verifier does not allow this } - // Fall through to pick up the per-class bootstrap method. - // This mechanism may go away in the PFD. - assert(AllowTransitionalJSR292, "else the verifier should have stopped us already"); - argument_info_result = empty; // return no argument_info to caller - oop bsm_oop = instanceKlass::cast(caller_method->method_holder())->bootstrap_method(); - if (bsm_oop != NULL) { - if (TraceMethodHandles) { - tty->print_cr("bootstrap method for "PTR_FORMAT" registered as "PTR_FORMAT":", - (intptr_t) caller_method(), (intptr_t) bsm_oop); - } - assert(bsm_oop->is_oop(), "must be sane"); - return Handle(THREAD, bsm_oop); - } - return empty; } diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp index 6db5a5048ed..ab84ebf591e 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.hpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp @@ -146,7 +146,6 @@ class SymbolPropertyTable; /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \ template(MethodHandle_klass, java_lang_invoke_MethodHandle, Pre_JSR292) \ template(MemberName_klass, java_lang_invoke_MemberName, Pre_JSR292) \ - template(MethodHandleImpl_klass, sun_dyn_MethodHandleImpl, Opt) /* AllowTransitionalJSR292 ONLY */ \ template(MethodHandleNatives_klass, java_lang_invoke_MethodHandleNatives, Pre_JSR292) \ template(AdapterMethodHandle_klass, java_lang_invoke_AdapterMethodHandle, Pre_JSR292) \ template(BoundMethodHandle_klass, java_lang_invoke_BoundMethodHandle, Pre_JSR292) \ @@ -154,7 +153,6 @@ class SymbolPropertyTable; template(MethodType_klass, java_lang_invoke_MethodType, Pre_JSR292) \ template(MethodTypeForm_klass, java_lang_invoke_MethodTypeForm, Pre_JSR292) \ template(WrongMethodTypeException_klass, java_lang_invoke_WrongMethodTypeException, Pre_JSR292) \ - template(Linkage_klass, java_lang_invoke_Linkage, Opt) /* AllowTransitionalJSR292 ONLY */ \ template(CallSite_klass, java_lang_invoke_CallSite, Pre_JSR292) \ /* Note: MethodHandle must be first, and CallSite last in group */ \ \ @@ -422,8 +420,6 @@ public: initialize_wk_klasses_until((WKID) limit, start_id, THREAD); } - static Symbol* find_backup_symbol(Symbol* symbol, const char* from_prefix, const char* to_prefix); - public: #define WK_KLASS_DECLARE(name, ignore_symbol, option) \ static klassOop name() { return check_klass_##option(_well_known_klasses[WK_KLASS_ENUM_NAME(name)]); } @@ -445,9 +441,6 @@ public: static void load_abstract_ownable_synchronizer_klass(TRAPS); - static Symbol* find_backup_class_name(Symbol* class_name_symbol); - static Symbol* find_backup_signature(Symbol* signature_symbol); - private: // Tells whether ClassLoader.loadClassInternal is present static bool has_loadClassInternal() { return _has_loadClassInternal; } diff --git a/hotspot/src/share/vm/classfile/verifier.cpp b/hotspot/src/share/vm/classfile/verifier.cpp index 67a2a66dbe8..9ab47f7b664 100644 --- a/hotspot/src/share/vm/classfile/verifier.cpp +++ b/hotspot/src/share/vm/classfile/verifier.cpp @@ -1671,19 +1671,13 @@ void ClassVerifier::verify_ldc( VerificationType::long_type(), VerificationType::long2_type(), CHECK_VERIFY(this)); } else if (tag.is_method_handle()) { - Symbol* methodHandle_name = vmSymbols::java_lang_invoke_MethodHandle(); - if (AllowTransitionalJSR292 && !Universe::is_bootstrapping()) - methodHandle_name = SystemDictionaryHandles::MethodHandle_klass()->name(); current_frame->push_stack( VerificationType::reference_type( - methodHandle_name), CHECK_VERIFY(this)); + vmSymbols::java_lang_invoke_MethodHandle()), CHECK_VERIFY(this)); } else if (tag.is_method_type()) { - Symbol* methodType_name = vmSymbols::java_lang_invoke_MethodType(); - if (AllowTransitionalJSR292 && !Universe::is_bootstrapping()) - methodType_name = SystemDictionaryHandles::MethodType_klass()->name(); current_frame->push_stack( VerificationType::reference_type( - methodType_name), CHECK_VERIFY(this)); + vmSymbols::java_lang_invoke_MethodType()), CHECK_VERIFY(this)); } else { verify_error(bci, "Invalid index in ldc"); return; @@ -1950,8 +1944,7 @@ void ClassVerifier::verify_invoke_instructions( unsigned int types = (opcode == Bytecodes::_invokeinterface ? 1 << JVM_CONSTANT_InterfaceMethodref : opcode == Bytecodes::_invokedynamic - ? ((AllowTransitionalJSR292 ? 1 << JVM_CONSTANT_NameAndType : 0) - |1 << JVM_CONSTANT_InvokeDynamic) + ? 1 << JVM_CONSTANT_InvokeDynamic : 1 << JVM_CONSTANT_Methodref); verify_cp_type(index, cp, types, CHECK_VERIFY(this)); diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index 81376926f07..88d946854da 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -245,44 +245,15 @@ template(java_lang_invoke_AdapterMethodHandle, "java/lang/invoke/AdapterMethodHandle") \ template(java_lang_invoke_BoundMethodHandle, "java/lang/invoke/BoundMethodHandle") \ template(java_lang_invoke_DirectMethodHandle, "java/lang/invoke/DirectMethodHandle") \ - /* temporary transitional public names from 6839872: */ \ - template(java_dyn_InvokeDynamic, "java/dyn/InvokeDynamic") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_Linkage, "java/dyn/Linkage") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_CallSite, "java/dyn/CallSite") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodHandle, "java/dyn/MethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodType, "java/dyn/MethodType") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_WrongMethodTypeException, "java/dyn/WrongMethodTypeException") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodType_signature, "Ljava/dyn/MethodType;") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodHandle_signature, "Ljava/dyn/MethodHandle;") /* AllowTransitionalJSR292 ONLY */ \ - /* temporary transitional internal names from 6839872: */ \ - template(java_dyn_MethodTypeForm, "java/dyn/MethodTypeForm") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodTypeForm_signature, "Ljava/dyn/MethodTypeForm;") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MemberName, "java/dyn/MemberName") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_MethodHandleNatives, "java/dyn/MethodHandleNatives") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_AdapterMethodHandle, "java/dyn/AdapterMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_BoundMethodHandle, "java/dyn/BoundMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - template(java_dyn_DirectMethodHandle, "java/dyn/DirectMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - /* temporary transitional internal names from EDR: */ \ - template(sun_dyn_MemberName, "sun/dyn/MemberName") /* AllowTransitionalJSR292 ONLY */ \ - template(sun_dyn_MethodHandleImpl, "sun/dyn/MethodHandleImpl") /* AllowTransitionalJSR292 ONLY */ \ - template(sun_dyn_MethodHandleNatives, "sun/dyn/MethodHandleNatives") /* AllowTransitionalJSR292 ONLY */ \ - template(sun_dyn_AdapterMethodHandle, "sun/dyn/AdapterMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - template(sun_dyn_BoundMethodHandle, "sun/dyn/BoundMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ - template(sun_dyn_DirectMethodHandle, "sun/dyn/DirectMethodHandle") /* AllowTransitionalJSR292 ONLY */ \ /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ template(findMethodHandleType_name, "findMethodHandleType") \ template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \ - template(findMethodHandleType_TRANS_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/dyn/MethodType;") /* AllowTransitionalJSR292 ONLY */ \ template(notifyGenericMethodType_name, "notifyGenericMethodType") \ template(notifyGenericMethodType_signature, "(Ljava/lang/invoke/MethodType;)V") \ - template(notifyGenericMethodType_TRANS_signature, "(Ljava/dyn/MethodType;)V") /* AllowTransitionalJSR292 ONLY */ \ template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \ template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \ - template(linkMethodHandleConstant_TRANS_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/dyn/MethodHandle;") /* AllowTransitionalJSR292 ONLY */ \ template(makeDynamicCallSite_name, "makeDynamicCallSite") \ template(makeDynamicCallSite_signature, "(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/invoke/MemberName;I)Ljava/lang/invoke/CallSite;") \ - template(makeDynamicCallSite_TRANS_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Lsun/dyn/MemberName;I)Ljava/dyn/CallSite;") /* AllowTransitionalJSR292 ONLY */ \ - template(makeDynamicCallSite_TRANS2_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Ljava/dyn/MemberName;I)Ljava/dyn/CallSite;") /* AllowTransitionalJSR292 ONLY */ \ NOT_LP64( do_alias(machine_word_signature, int_signature) ) \ LP64_ONLY( do_alias(machine_word_signature, long_signature) ) \ \ @@ -330,6 +301,7 @@ template(dispatch_name, "dispatch") \ template(getSystemClassLoader_name, "getSystemClassLoader") \ template(fillInStackTrace_name, "fillInStackTrace") \ + template(fillInStackTrace0_name, "fillInStackTrace0") \ template(getCause_name, "getCause") \ template(initCause_name, "initCause") \ template(setProperty_name, "setProperty") \ @@ -706,6 +678,10 @@ do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \ do_name( checkIndex_name, "checkIndex") \ \ + /* java/lang/ref/Reference */ \ + do_intrinsic(_Reference_get, java_lang_ref_Reference, get_name, void_object_signature, F_R) \ + \ + \ do_class(sun_misc_AtomicLongCSImpl, "sun/misc/AtomicLongCSImpl") \ do_intrinsic(_get_AtomicLong, sun_misc_AtomicLongCSImpl, get_name, void_long_signature, F_R) \ /* (symbols get_name and void_long_signature defined above) */ \ @@ -910,8 +886,6 @@ do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \ /* (symbols invoke_name and invoke_signature defined above) */ \ do_intrinsic(_checkSpreadArgument, java_lang_invoke_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \ - do_intrinsic(_checkSpreadArgument_TRANS,sun_dyn_MethodHandleImpl, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \ - do_intrinsic(_checkSpreadArgument_TRANS2,java_dyn_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \ do_name( checkSpreadArgument_name, "checkSpreadArgument") \ do_name( checkSpreadArgument_signature, "(Ljava/lang/Object;I)V") \ do_intrinsic(_invokeExact, java_lang_invoke_MethodHandle, invokeExact_name, object_array_object_signature, F_RN) \ diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp index ce3b4dc9559..2dd42dc06af 100644 --- a/hotspot/src/share/vm/code/codeCache.cpp +++ b/hotspot/src/share/vm/code/codeCache.cpp @@ -964,3 +964,14 @@ void CodeCache::log_state(outputStream* st) { nof_blobs(), nof_nmethods(), nof_adapters(), unallocated_capacity(), largest_free_block()); } + +size_t CodeCache::largest_free_block() { + // This is called both with and without CodeCache_lock held so + // handle both cases. + if (CodeCache_lock->owned_by_self()) { + return _heap->largest_free_block(); + } else { + MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); + return _heap->largest_free_block(); + } +} diff --git a/hotspot/src/share/vm/code/codeCache.hpp b/hotspot/src/share/vm/code/codeCache.hpp index 9107bbcc167..bdd128e9813 100644 --- a/hotspot/src/share/vm/code/codeCache.hpp +++ b/hotspot/src/share/vm/code/codeCache.hpp @@ -160,7 +160,7 @@ class CodeCache : AllStatic { static size_t capacity() { return _heap->capacity(); } static size_t max_capacity() { return _heap->max_capacity(); } static size_t unallocated_capacity() { return _heap->unallocated_capacity(); } - static size_t largest_free_block() { return _heap->largest_free_block(); } + static size_t largest_free_block(); static bool needs_flushing() { return largest_free_block() < CodeCacheFlushingMinimumFreeSpace; } static bool needs_cache_clean() { return _needs_cache_clean; } diff --git a/hotspot/src/share/vm/code/relocInfo.cpp b/hotspot/src/share/vm/code/relocInfo.cpp index 43a8eef0625..4fd82dfaa1b 100644 --- a/hotspot/src/share/vm/code/relocInfo.cpp +++ b/hotspot/src/share/vm/code/relocInfo.cpp @@ -472,20 +472,14 @@ RelocationHolder Relocation::spec_simple(relocInfo::relocType rtype) { return itr._rh; } - -static inline bool is_index(intptr_t index) { - return 0 < index && index < os::vm_page_size(); -} - - int32_t Relocation::runtime_address_to_index(address runtime_address) { - assert(!is_index((intptr_t)runtime_address), "must not look like an index"); + assert(!is_reloc_index((intptr_t)runtime_address), "must not look like an index"); if (runtime_address == NULL) return 0; StubCodeDesc* p = StubCodeDesc::desc_for(runtime_address); if (p != NULL && p->begin() == runtime_address) { - assert(is_index(p->index()), "there must not be too many stubs"); + assert(is_reloc_index(p->index()), "there must not be too many stubs"); return (int32_t)p->index(); } else { // Known "miscellaneous" non-stub pointers: @@ -506,7 +500,7 @@ int32_t Relocation::runtime_address_to_index(address runtime_address) { address Relocation::index_to_runtime_address(int32_t index) { if (index == 0) return NULL; - if (is_index(index)) { + if (is_reloc_index(index)) { StubCodeDesc* p = StubCodeDesc::desc_for_index(index); assert(p != NULL, "there must be a stub for this index"); return p->begin(); @@ -634,7 +628,7 @@ void external_word_Relocation::pack_data_to(CodeSection* dest) { #ifndef _LP64 p = pack_1_int_to(p, index); #else - if (is_index(index)) { + if (is_reloc_index(index)) { p = pack_2_ints_to(p, index, 0); } else { jlong t = (jlong) _target; @@ -642,7 +636,7 @@ void external_word_Relocation::pack_data_to(CodeSection* dest) { int32_t hi = high(t); p = pack_2_ints_to(p, lo, hi); DEBUG_ONLY(jlong t1 = jlong_from(hi, lo)); - assert(!is_index(t1) && (address) t1 == _target, "not symmetric"); + assert(!is_reloc_index(t1) && (address) t1 == _target, "not symmetric"); } #endif /* _LP64 */ dest->set_locs_end((relocInfo*) p); @@ -656,7 +650,7 @@ void external_word_Relocation::unpack_data() { int32_t lo, hi; unpack_2_ints(lo, hi); jlong t = jlong_from(hi, lo);; - if (is_index(t)) { + if (is_reloc_index(t)) { _target = index_to_runtime_address(t); } else { _target = (address) t; diff --git a/hotspot/src/share/vm/code/relocInfo.hpp b/hotspot/src/share/vm/code/relocInfo.hpp index 9f5ad21d940..1d14b445087 100644 --- a/hotspot/src/share/vm/code/relocInfo.hpp +++ b/hotspot/src/share/vm/code/relocInfo.hpp @@ -703,6 +703,10 @@ class Relocation VALUE_OBJ_CLASS_SPEC { assert(datalen()==0 || type()==relocInfo::none, "no data here"); } + static bool is_reloc_index(intptr_t index) { + return 0 < index && index < os::vm_page_size(); + } + protected: // Helper functions for pack_data_to() and unpack_data(). @@ -1127,6 +1131,12 @@ class external_word_Relocation : public DataRelocation { return rh; } + // Some address looking values aren't safe to treat as relocations + // and should just be treated as constants. + static bool can_be_relocated(address target) { + return target != NULL && !is_reloc_index((intptr_t)target); + } + private: address _target; // address in runtime diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 50683647638..6c2a9683d5c 100644 --- a/hotspot/src/share/vm/compiler/compileBroker.cpp +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp @@ -847,9 +847,9 @@ CompilerThread* CompileBroker::make_compiler_thread(const char* name, CompileQue // Initialize the compilation queue void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) { EXCEPTION_MARK; -#ifndef ZERO +#if !defined(ZERO) && !defined(SHARK) assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?"); -#endif // !ZERO +#endif // !ZERO && !SHARK if (c2_compiler_count > 0) { _c2_method_queue = new CompileQueue("C2MethodQueue", MethodCompileQueue_lock); } @@ -1118,7 +1118,7 @@ nmethod* CompileBroker::compile_method(methodHandle method, int osr_bci, assert(!HAS_PENDING_EXCEPTION, "No exception should be present"); // some prerequisites that are compiler specific - if (compiler(comp_level)->is_c2()) { + if (compiler(comp_level)->is_c2() || compiler(comp_level)->is_shark()) { method->constants()->resolve_string_constants(CHECK_0); // Resolve all classes seen in the signature of the method // we are compiling. @@ -1736,8 +1736,14 @@ void CompileBroker::handle_full_code_cache() { UseInterpreter = true; if (UseCompiler || AlwaysCompileLoopMethods ) { if (xtty != NULL) { + stringStream s; + // Dump code cache state into a buffer before locking the tty, + // because log_state() will use locks causing lock conflicts. + CodeCache::log_state(&s); + // Lock to prevent tearing + ttyLocker ttyl; xtty->begin_elem("code_cache_full"); - CodeCache::log_state(xtty); + xtty->print(s.as_string()); xtty->stamp(); xtty->end_elem(); } diff --git a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp index 68a9407a2f3..2379e189f9f 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp @@ -172,7 +172,7 @@ class ConcurrentG1Refine: public CHeapObj { // hash a given key (index of card_ptr) with the specified size static unsigned int hash(size_t key, size_t size) { - return (unsigned int) key % size; + return (unsigned int) (key % size); } // hash a given key (index of card_ptr) @@ -180,11 +180,11 @@ class ConcurrentG1Refine: public CHeapObj { return hash(key, _n_card_counts); } - unsigned ptr_2_card_num(jbyte* card_ptr) { - return (unsigned) (card_ptr - _ct_bot); + unsigned int ptr_2_card_num(jbyte* card_ptr) { + return (unsigned int) (card_ptr - _ct_bot); } - jbyte* card_num_2_ptr(unsigned card_num) { + jbyte* card_num_2_ptr(unsigned int card_num) { return (jbyte*) (_ct_bot + card_num); } diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp index 8145aa9fce0..59d25906570 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp @@ -1,5 +1,5 @@ /* - * 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 @@ -47,7 +47,9 @@ G1SATBCardTableModRefBS::G1SATBCardTableModRefBS(MemRegion whole_heap, void G1SATBCardTableModRefBS::enqueue(oop pre_val) { - assert(pre_val->is_oop_or_null(true), "Error"); + // Nulls should have been already filtered. + assert(pre_val->is_oop(true), "Error"); + if (!JavaThread::satb_mark_queue_set().is_active()) return; Thread* thr = Thread::current(); if (thr->is_Java_thread()) { @@ -59,20 +61,6 @@ void G1SATBCardTableModRefBS::enqueue(oop pre_val) { } } -// When we know the current java thread: -template void -G1SATBCardTableModRefBS::write_ref_field_pre_static(T* field, - oop new_val, - JavaThread* jt) { - if (!JavaThread::satb_mark_queue_set().is_active()) return; - T heap_oop = oopDesc::load_heap_oop(field); - if (!oopDesc::is_null(heap_oop)) { - oop pre_val = oopDesc::decode_heap_oop_not_null(heap_oop); - assert(pre_val->is_oop(true /* ignore mark word */), "Error"); - jt->satb_mark_queue().enqueue(pre_val); - } -} - template void G1SATBCardTableModRefBS::write_ref_array_pre_work(T* dst, int count) { if (!JavaThread::satb_mark_queue_set().is_active()) return; diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp index 50cc99d0994..dde3ba4be31 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp @@ -37,12 +37,11 @@ class DirtyCardQueueSet; // snapshot-at-the-beginning marking. class G1SATBCardTableModRefBS: public CardTableModRefBSForCTRS { -private: +public: // Add "pre_val" to a set of objects that may have been disconnected from the // pre-marking object graph. static void enqueue(oop pre_val); -public: G1SATBCardTableModRefBS(MemRegion whole_heap, int max_covered_regions); @@ -61,10 +60,6 @@ public: } } - // When we know the current java thread: - template static void write_ref_field_pre_static(T* field, oop newVal, - JavaThread* jt); - // We export this to make it available in cases where the static // type of the barrier set is known. Note that it is non-virtual. template inline void inline_write_ref_field_pre(T* field, oop newVal) { diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp index b42949f22a1..5fd535533e1 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp @@ -89,13 +89,9 @@ "The number of discovered reference objects to process before " \ "draining concurrent marking work queues.") \ \ - experimental(bool, G1UseConcMarkReferenceProcessing, false, \ + experimental(bool, G1UseConcMarkReferenceProcessing, true, \ "If true, enable reference discovery during concurrent " \ - "marking and reference processing at the end of remark " \ - "(unsafe).") \ - \ - develop(bool, G1SATBBarrierPrintNullPreVals, false, \ - "If true, count frac of ptr writes with null pre-vals.") \ + "marking and reference processing at the end of remark.") \ \ product(intx, G1SATBBufferSize, 1*K, \ "Number of entries in an SATB log buffer.") \ @@ -150,12 +146,6 @@ develop(bool, G1PrintParCleanupStats, false, \ "When true, print extra stats about parallel cleanup.") \ \ - develop(bool, G1DisablePreBarrier, false, \ - "Disable generation of pre-barrier (i.e., marking barrier) ") \ - \ - develop(bool, G1DisablePostBarrier, false, \ - "Disable generation of post-barrier (i.e., RS barrier) ") \ - \ product(intx, G1UpdateBufferSize, 256, \ "Size of an update buffer") \ \ diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp index d3b054c59ac..58dea49b77f 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parCardTableModRefBS.cpp @@ -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 @@ -36,7 +36,6 @@ void CardTableModRefBS::par_non_clean_card_iterate_work(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, MemRegionClosure* cl, - bool clear, int n_threads) { if (n_threads > 0) { assert((n_threads == 1 && ParallelGCThreads == 0) || @@ -57,7 +56,7 @@ void CardTableModRefBS::par_non_clean_card_iterate_work(Space* sp, MemRegion mr, int stride = 0; while (!pst->is_task_claimed(/* reference */ stride)) { - process_stride(sp, mr, stride, n_strides, dcto_cl, cl, clear, + process_stride(sp, mr, stride, n_strides, dcto_cl, cl, lowest_non_clean, lowest_non_clean_base_chunk_index, lowest_non_clean_chunk_size); @@ -83,7 +82,6 @@ process_stride(Space* sp, jint stride, int n_strides, DirtyCardToOopClosure* dcto_cl, MemRegionClosure* cl, - bool clear, jbyte** lowest_non_clean, uintptr_t lowest_non_clean_base_chunk_index, size_t lowest_non_clean_chunk_size) { @@ -129,7 +127,7 @@ process_stride(Space* sp, lowest_non_clean_base_chunk_index, lowest_non_clean_chunk_size); - non_clean_card_iterate_work(chunk_mr, cl, clear); + non_clean_card_iterate_work(chunk_mr, cl); // Find the next chunk of the stride. chunk_card_start += CardsPerStrideChunk * n_strides; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp index df0865ee392..acbe76f9461 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp @@ -1,5 +1,5 @@ /* - * 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 @@ -176,10 +176,6 @@ void PSOldGen::compact() { object_mark_sweep()->compact(ZapUnusedHeapArea); } -void PSOldGen::move_and_update(ParCompactionManager* cm) { - PSParallelCompact::move_and_update(cm, PSParallelCompact::old_space_id); -} - size_t PSOldGen::contiguous_available() const { return object_space()->free_in_bytes() + virtual_space()->uncommitted_size(); } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp index 0d9cdd75ddd..76f43f51ab2 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psOldGen.hpp @@ -1,5 +1,5 @@ /* - * 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 @@ -143,9 +143,6 @@ class PSOldGen : public CHeapObj { void adjust_pointers(); void compact(); - // Parallel old - virtual void move_and_update(ParCompactionManager* cm); - // Size info size_t capacity_in_bytes() const { return object_space()->capacity_in_bytes(); } size_t used_in_bytes() const { return object_space()->used_in_bytes(); } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 5f7504ded06..7ff75bd8d34 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -2104,11 +2104,7 @@ void PSParallelCompact::invoke_no_policy(bool maximum_heap_compaction) { // klasses are used in the update of an object? compact_perm(vmthread_cm); - if (UseParallelOldGCCompacting) { - compact(); - } else { - compact_serial(vmthread_cm); - } + compact(); // Reset the mark bitmap, summary data, and do other bookkeeping. Must be // done before resizing. @@ -2582,18 +2578,16 @@ void PSParallelCompact::enqueue_dense_prefix_tasks(GCTaskQueue* q, // each thread? if (total_dense_prefix_regions > 0) { uint tasks_for_dense_prefix = 1; - if (UseParallelDensePrefixUpdate) { - if (total_dense_prefix_regions <= - (parallel_gc_threads * PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING)) { - // Don't over partition. This assumes that - // PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING is a small integer value - // so there are not many regions to process. - tasks_for_dense_prefix = parallel_gc_threads; - } else { - // Over partition - tasks_for_dense_prefix = parallel_gc_threads * - PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING; - } + if (total_dense_prefix_regions <= + (parallel_gc_threads * PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING)) { + // Don't over partition. This assumes that + // PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING is a small integer value + // so there are not many regions to process. + tasks_for_dense_prefix = parallel_gc_threads; + } else { + // Over partition + tasks_for_dense_prefix = parallel_gc_threads * + PAR_OLD_DENSE_PREFIX_OVER_PARTITIONING; } size_t regions_per_thread = total_dense_prefix_regions / tasks_for_dense_prefix; @@ -2733,21 +2727,6 @@ void PSParallelCompact::verify_complete(SpaceId space_id) { } #endif // #ifdef ASSERT -void PSParallelCompact::compact_serial(ParCompactionManager* cm) { - EventMark m("5 compact serial"); - TraceTime tm("compact serial", print_phases(), true, gclog_or_tty); - - ParallelScavengeHeap* heap = (ParallelScavengeHeap*)Universe::heap(); - assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); - - PSYoungGen* young_gen = heap->young_gen(); - PSOldGen* old_gen = heap->old_gen(); - - old_gen->start_array()->reset(); - old_gen->move_and_update(cm); - young_gen->move_and_update(cm); -} - void PSParallelCompact::follow_weak_klass_links() { // All klasses on the revisit stack are marked at this point. @@ -3530,11 +3509,8 @@ PSParallelCompact::VerifyUpdateClosure::do_addr(HeapWord* addr, size_t words) { "Object liveness is wrong."); return ParMarkBitMap::incomplete; } - assert(UseParallelOldGCDensePrefix || - (HeapMaximumCompactionInterval > 1) || - (MarkSweepAlwaysCompactCount > 1) || - (forwarding_ptr == new_pointer), - "Calculation of new location is incorrect"); + assert(HeapMaximumCompactionInterval > 1 || MarkSweepAlwaysCompactCount > 1 || + forwarding_ptr == new_pointer, "new location is incorrect"); return ParMarkBitMap::incomplete; } diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 0e2c6477aff..f47bff5c226 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -1027,9 +1027,6 @@ class PSParallelCompact : AllStatic { ParallelTaskTerminator* terminator_ptr, uint parallel_gc_threads); - // For debugging only - compacts the old gen serially - static void compact_serial(ParCompactionManager* cm); - // If objects are left in eden after a collection, try to move the boundary // and absorb them into the old gen. Returns true if eden was emptied. static bool absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy, diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp index 60fea316595..eacb47fb266 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp @@ -1,5 +1,5 @@ /* - * 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 @@ -121,12 +121,6 @@ void PSPermGen::compute_new_size(size_t used_before_collection) { } } - - -void PSPermGen::move_and_update(ParCompactionManager* cm) { - PSParallelCompact::move_and_update(cm, PSParallelCompact::perm_space_id); -} - void PSPermGen::precompact() { // Reset start array first. _start_array.reset(); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp index 7a890fc8d14..ba384d429e9 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.hpp @@ -1,5 +1,5 @@ /* - * 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 @@ -51,9 +51,6 @@ class PSPermGen : public PSOldGen { // MarkSweep code virtual void precompact(); - // Parallel old - virtual void move_and_update(ParCompactionManager* cm); - virtual const char* name() const { return "PSPermGen"; } }; diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp index b5e6462e746..5355abe0a73 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp @@ -1,5 +1,5 @@ /* - * 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 @@ -792,12 +792,6 @@ void PSYoungGen::compact() { to_mark_sweep()->compact(false); } -void PSYoungGen::move_and_update(ParCompactionManager* cm) { - PSParallelCompact::move_and_update(cm, PSParallelCompact::eden_space_id); - PSParallelCompact::move_and_update(cm, PSParallelCompact::from_space_id); - PSParallelCompact::move_and_update(cm, PSParallelCompact::to_space_id); -} - void PSYoungGen::print() const { print_on(tty); } void PSYoungGen::print_on(outputStream* st) const { st->print(" %-15s", "PSYoungGen"); diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp index 3d4c566378e..898b56f57fc 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp @@ -1,5 +1,5 @@ /* - * 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 @@ -127,9 +127,6 @@ class PSYoungGen : public CHeapObj { void adjust_pointers(); void compact(); - // Parallel Old - void move_and_update(ParCompactionManager* cm); - // Called during/after gc void swap_spaces(); diff --git a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp index 104ff1954fe..b2182342318 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp @@ -76,7 +76,7 @@ class AllocationStats VALUE_OBJ_CLASS_SPEC { _beforeSweep = 0; _coalBirths = 0; _coalDeaths = 0; - _splitBirths = split_birth? 1 : 0; + _splitBirths = (split_birth ? 1 : 0); _splitDeaths = 0; _returnedBytes = 0; } diff --git a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp index a1908a2c928..c407fbaba66 100644 --- a/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp +++ b/hotspot/src/share/vm/interpreter/abstractInterpreter.hpp @@ -104,6 +104,7 @@ class AbstractInterpreter: AllStatic { java_lang_math_sqrt, // implementation of java.lang.Math.sqrt (x) java_lang_math_log, // implementation of java.lang.Math.log (x) java_lang_math_log10, // implementation of java.lang.Math.log10 (x) + java_lang_ref_reference_get, // implementation of java.lang.ref.Reference.get() number_of_method_entries, invalid = -1 }; @@ -140,7 +141,7 @@ class AbstractInterpreter: AllStatic { // Method activation static MethodKind method_kind(methodHandle m); static address entry_for_kind(MethodKind k) { assert(0 <= k && k < number_of_method_entries, "illegal kind"); return _entry_table[k]; } - static address entry_for_method(methodHandle m) { return _entry_table[method_kind(m)]; } + static address entry_for_method(methodHandle m) { return entry_for_kind(method_kind(m)); } static void print_method_kind(MethodKind kind) PRODUCT_RETURN; diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp index 9428ab967b9..7da054dfb37 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp @@ -554,7 +554,7 @@ BytecodeInterpreter::run(interpreterState istate) { /* 0xB0 */ &&opc_areturn, &&opc_return, &&opc_getstatic, &&opc_putstatic, /* 0xB4 */ &&opc_getfield, &&opc_putfield, &&opc_invokevirtual,&&opc_invokespecial, -/* 0xB8 */ &&opc_invokestatic,&&opc_invokeinterface,&&opc_default, &&opc_new, +/* 0xB8 */ &&opc_invokestatic,&&opc_invokeinterface,&&opc_invokedynamic,&&opc_new, /* 0xBC */ &&opc_newarray, &&opc_anewarray, &&opc_arraylength, &&opc_athrow, /* 0xC0 */ &&opc_checkcast, &&opc_instanceof, &&opc_monitorenter, &&opc_monitorexit, @@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterState istate) { /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, -/* 0xE4 */ &&opc_default, &&opc_return_register_finalizer, &&opc_default, &&opc_default, +/* 0xE4 */ &&opc_default, &&opc_fast_aldc, &&opc_fast_aldc_w, &&opc_return_register_finalizer, /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, @@ -1718,8 +1718,7 @@ run: } // Need to throw illegal monitor state exception CALL_VM(InterpreterRuntime::throw_illegal_monitor_state_exception(THREAD), handle_exception); - // Should never reach here... - assert(false, "Should have thrown illegal monitor exception"); + ShouldNotReachHere(); } /* All of the non-quick opcodes. */ @@ -2147,6 +2146,74 @@ run: UPDATE_PC_AND_TOS_AND_CONTINUE(3, 2); } + CASE(_fast_aldc_w): + CASE(_fast_aldc): { + if (!EnableInvokeDynamic) { + // We should not encounter this bytecode if !EnableInvokeDynamic. + // The verifier will stop it. However, if we get past the verifier, + // this will stop the thread in a reasonable way, without crashing the JVM. + CALL_VM(InterpreterRuntime::throw_IncompatibleClassChangeError(THREAD), + handle_exception); + ShouldNotReachHere(); + } + + u2 index; + int incr; + if (opcode == Bytecodes::_fast_aldc) { + index = pc[1]; + incr = 2; + } else { + index = Bytes::get_native_u2(pc+1); + incr = 3; + } + + // We are resolved if the f1 field contains a non-null object (CallSite, etc.) + // This kind of CP cache entry does not need to match the flags byte, because + // there is a 1-1 relation between bytecode type and CP entry type. + ConstantPoolCacheEntry* cache = cp->entry_at(index); + if (cache->is_f1_null()) { + CALL_VM(InterpreterRuntime::resolve_ldc(THREAD, (Bytecodes::Code) opcode), + handle_exception); + } + + VERIFY_OOP(cache->f1()); + SET_STACK_OBJECT(cache->f1(), 0); + UPDATE_PC_AND_TOS_AND_CONTINUE(incr, 1); + } + + CASE(_invokedynamic): { + if (!EnableInvokeDynamic) { + // We should not encounter this bytecode if !EnableInvokeDynamic. + // The verifier will stop it. However, if we get past the verifier, + // this will stop the thread in a reasonable way, without crashing the JVM. + CALL_VM(InterpreterRuntime::throw_IncompatibleClassChangeError(THREAD), + handle_exception); + ShouldNotReachHere(); + } + + int index = Bytes::get_native_u4(pc+1); + + // We are resolved if the f1 field contains a non-null object (CallSite, etc.) + // This kind of CP cache entry does not need to match the flags byte, because + // there is a 1-1 relation between bytecode type and CP entry type. + assert(constantPoolCacheOopDesc::is_secondary_index(index), "incorrect format"); + ConstantPoolCacheEntry* cache = cp->secondary_entry_at(index); + if (cache->is_f1_null()) { + CALL_VM(InterpreterRuntime::resolve_invokedynamic(THREAD), + handle_exception); + } + + VERIFY_OOP(cache->f1()); + oop method_handle = java_lang_invoke_CallSite::target(cache->f1()); + CHECK_NULL(method_handle); + + istate->set_msg(call_method_handle); + istate->set_callee((methodOop) method_handle); + istate->set_bcp_advance(5); + + UPDATE_PC_AND_RETURN(0); // I'll be back... + } + CASE(_invokeinterface): { u2 index = Bytes::get_native_u2(pc+1); diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp index 599fd188cb4..8757760c3a5 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp @@ -107,6 +107,7 @@ public: rethrow_exception, // unwinding and throwing exception // requests to frame manager from C++ interpreter call_method, // request for new frame from interpreter, manager responds with method_entry + call_method_handle, // like the above, except the callee is a method handle return_from_method, // request from interpreter to unwind, manager responds with method_continue more_monitors, // need a new monitor throwing_exception, // unwind stack and rethrow diff --git a/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp b/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp index ff28656b3cd..1309d0cf9a2 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeTracer.cpp @@ -345,7 +345,6 @@ void BytecodePrinter::print_field_or_method(int orig_i, int i, outputStream* st) break; case JVM_CONSTANT_NameAndType: case JVM_CONSTANT_InvokeDynamic: - case JVM_CONSTANT_InvokeDynamicTrans: has_klass = false; break; default: diff --git a/hotspot/src/share/vm/interpreter/cppInterpreter.cpp b/hotspot/src/share/vm/interpreter/cppInterpreter.cpp index 6ce16e271dd..9a6669519f6 100644 --- a/hotspot/src/share/vm/interpreter/cppInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/cppInterpreter.cpp @@ -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 @@ -125,6 +125,7 @@ void CppInterpreterGenerator::generate_all() { method_entry(java_lang_math_sqrt ); method_entry(java_lang_math_log ); method_entry(java_lang_math_log10 ); + method_entry(java_lang_ref_reference_get); Interpreter::_native_entry_begin = Interpreter::code()->code_end(); method_entry(native); method_entry(native_synchronized); diff --git a/hotspot/src/share/vm/interpreter/interpreter.cpp b/hotspot/src/share/vm/interpreter/interpreter.cpp index 04a9d68f486..137f50ee3f1 100644 --- a/hotspot/src/share/vm/interpreter/interpreter.cpp +++ b/hotspot/src/share/vm/interpreter/interpreter.cpp @@ -208,12 +208,6 @@ AbstractInterpreter::MethodKind AbstractInterpreter::method_kind(methodHandle m) return empty; } - // Accessor method? - if (m->is_accessor()) { - assert(m->size_of_parameters() == 1, "fast code for accessors assumes parameter size = 1"); - return accessor; - } - // Special intrinsic method? // Note: This test must come _after_ the test for native methods, // otherwise we will run into problems with JDK 1.2, see also @@ -227,6 +221,15 @@ AbstractInterpreter::MethodKind AbstractInterpreter::method_kind(methodHandle m) case vmIntrinsics::_dsqrt : return java_lang_math_sqrt ; case vmIntrinsics::_dlog : return java_lang_math_log ; case vmIntrinsics::_dlog10: return java_lang_math_log10; + + case vmIntrinsics::_Reference_get: + return java_lang_ref_reference_get; + } + + // Accessor method? + if (m->is_accessor()) { + assert(m->size_of_parameters() == 1, "fast code for accessors assumes parameter size = 1"); + return accessor; } // Note: for now: zero locals for all non-empty methods diff --git a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp index 66cb27edf1f..499a66046a8 100644 --- a/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp +++ b/hotspot/src/share/vm/interpreter/interpreterRuntime.cpp @@ -369,10 +369,7 @@ IRT_ENTRY(void, InterpreterRuntime::throw_WrongMethodTypeException(JavaThread* t } // create exception - Symbol* java_lang_invoke_WrongMethodTypeException = vmSymbols::java_lang_invoke_WrongMethodTypeException(); - if (AllowTransitionalJSR292) - java_lang_invoke_WrongMethodTypeException = SystemDictionaryHandles::WrongMethodTypeException_klass()->name(); - THROW_MSG(java_lang_invoke_WrongMethodTypeException, message); + THROW_MSG(vmSymbols::java_lang_invoke_WrongMethodTypeException(), message); } IRT_END diff --git a/hotspot/src/share/vm/interpreter/linkResolver.cpp b/hotspot/src/share/vm/interpreter/linkResolver.cpp index 746d86fd2bc..ee61e5795cf 100644 --- a/hotspot/src/share/vm/interpreter/linkResolver.cpp +++ b/hotspot/src/share/vm/interpreter/linkResolver.cpp @@ -221,9 +221,7 @@ void LinkResolver::lookup_implicit_method(methodHandle& result, // Make sure the Java part of the runtime has been booted up. klassOop natives = SystemDictionary::MethodHandleNatives_klass(); if (natives == NULL || instanceKlass::cast(natives)->is_not_initialized()) { - Symbol* natives_name = vmSymbols::java_lang_invoke_MethodHandleNatives(); - if (natives != NULL && AllowTransitionalJSR292) natives_name = Klass::cast(natives)->name(); - SystemDictionary::resolve_or_fail(natives_name, + SystemDictionary::resolve_or_fail(vmSymbols::java_lang_invoke_MethodHandleNatives(), Handle(), Handle(), true, diff --git a/hotspot/src/share/vm/interpreter/rewriter.cpp b/hotspot/src/share/vm/interpreter/rewriter.cpp index 3bdebda0941..5be2df24baa 100644 --- a/hotspot/src/share/vm/interpreter/rewriter.cpp +++ b/hotspot/src/share/vm/interpreter/rewriter.cpp @@ -52,7 +52,6 @@ void Rewriter::compute_index_maps() { case JVM_CONSTANT_MethodHandle : // fall through case JVM_CONSTANT_MethodType : // fall through case JVM_CONSTANT_InvokeDynamic : // fall through - case JVM_CONSTANT_InvokeDynamicTrans: // fall through add_cp_cache_entry(i); break; } @@ -62,7 +61,6 @@ void Rewriter::compute_index_maps() { "all cp cache indexes fit in a u2"); _have_invoke_dynamic = ((tag_mask & (1 << JVM_CONSTANT_InvokeDynamic)) != 0); - _have_invoke_dynamic |= ((tag_mask & (1 << JVM_CONSTANT_InvokeDynamicTrans)) != 0); } @@ -81,16 +79,10 @@ void Rewriter::make_constant_pool_cache(TRAPS) { if (pool_index >= 0 && _pool->tag_at(pool_index).is_invoke_dynamic()) { int bsm_index = _pool->invoke_dynamic_bootstrap_method_ref_index_at(pool_index); - if (bsm_index != 0) { - assert(_pool->tag_at(bsm_index).is_method_handle(), "must be a MH constant"); - // There is a CP cache entry holding the BSM for these calls. - int bsm_cache_index = cp_entry_to_cp_cache(bsm_index); - cache->entry_at(i)->initialize_bootstrap_method_index_in_cache(bsm_cache_index); - } else { - // There is no CP cache entry holding the BSM for these calls. - // We will need to look for a class-global BSM, later. - guarantee(AllowTransitionalJSR292, ""); - } + assert(_pool->tag_at(bsm_index).is_method_handle(), "must be a MH constant"); + // There is a CP cache entry holding the BSM for these calls. + int bsm_cache_index = cp_entry_to_cp_cache(bsm_index); + cache->entry_at(i)->initialize_bootstrap_method_index_in_cache(bsm_cache_index); } } } diff --git a/hotspot/src/share/vm/interpreter/templateInterpreter.cpp b/hotspot/src/share/vm/interpreter/templateInterpreter.cpp index 0d1125ecb38..6b22dc1eb82 100644 --- a/hotspot/src/share/vm/interpreter/templateInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/templateInterpreter.cpp @@ -372,6 +372,7 @@ void TemplateInterpreterGenerator::generate_all() { method_entry(java_lang_math_sqrt ) method_entry(java_lang_math_log ) method_entry(java_lang_math_log10) + method_entry(java_lang_ref_reference_get) // all native method kinds (must be one contiguous block) Interpreter::_native_entry_begin = Interpreter::code()->code_end(); diff --git a/hotspot/src/share/vm/memory/cardTableModRefBS.cpp b/hotspot/src/share/vm/memory/cardTableModRefBS.cpp index 5d8ea30fb9e..0f221653985 100644 --- a/hotspot/src/share/vm/memory/cardTableModRefBS.cpp +++ b/hotspot/src/share/vm/memory/cardTableModRefBS.cpp @@ -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 @@ -459,18 +459,17 @@ bool CardTableModRefBS::mark_card_deferred(size_t card_index) { void CardTableModRefBS::non_clean_card_iterate(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, - MemRegionClosure* cl, - bool clear) { + MemRegionClosure* cl) { if (!mr.is_empty()) { int n_threads = SharedHeap::heap()->n_par_threads(); if (n_threads > 0) { #ifndef SERIALGC - par_non_clean_card_iterate_work(sp, mr, dcto_cl, cl, clear, n_threads); + par_non_clean_card_iterate_work(sp, mr, dcto_cl, cl, n_threads); #else // SERIALGC fatal("Parallel gc not supported here."); #endif // SERIALGC } else { - non_clean_card_iterate_work(mr, cl, clear); + non_clean_card_iterate_work(mr, cl); } } } @@ -481,10 +480,7 @@ void CardTableModRefBS::non_clean_card_iterate(Space* sp, // cards (and miss those marked precleaned). In that sense, // the name precleaned is currently somewhat of a misnomer. void CardTableModRefBS::non_clean_card_iterate_work(MemRegion mr, - MemRegionClosure* cl, - bool clear) { - // Figure out whether we have to worry about parallelism. - bool is_par = (SharedHeap::heap()->n_par_threads() > 1); + MemRegionClosure* cl) { for (int i = 0; i < _cur_covered_regions; i++) { MemRegion mri = mr.intersection(_covered[i]); if (mri.word_size() > 0) { @@ -506,22 +502,6 @@ void CardTableModRefBS::non_clean_card_iterate_work(MemRegion mr, MemRegion cur_cards(addr_for(cur_entry), non_clean_cards * card_size_in_words); MemRegion dirty_region = cur_cards.intersection(mri); - if (clear) { - for (size_t i = 0; i < non_clean_cards; i++) { - // Clean the dirty cards (but leave the other non-clean - // alone.) If parallel, do the cleaning atomically. - jbyte cur_entry_val = cur_entry[i]; - if (card_is_dirty_wrt_gen_iter(cur_entry_val)) { - if (is_par) { - jbyte res = Atomic::cmpxchg(clean_card, &cur_entry[i], cur_entry_val); - assert(res != clean_card, - "Dirty card mysteriously cleaned"); - } else { - cur_entry[i] = clean_card; - } - } - } - } cl->do_MemRegion(dirty_region); } cur_entry = next_entry; @@ -530,22 +510,6 @@ void CardTableModRefBS::non_clean_card_iterate_work(MemRegion mr, } } -void CardTableModRefBS::mod_oop_in_space_iterate(Space* sp, - OopClosure* cl, - bool clear, - bool before_save_marks) { - // Note that dcto_cl is resource-allocated, so there is no - // corresponding "delete". - DirtyCardToOopClosure* dcto_cl = sp->new_dcto_cl(cl, precision()); - MemRegion used_mr; - if (before_save_marks) { - used_mr = sp->used_region_at_save_marks(); - } else { - used_mr = sp->used_region(); - } - non_clean_card_iterate(sp, used_mr, dcto_cl, dcto_cl, clear); -} - void CardTableModRefBS::dirty_MemRegion(MemRegion mr) { assert((HeapWord*)align_size_down((uintptr_t)mr.start(), HeapWordSize) == mr.start(), "Unaligned start"); assert((HeapWord*)align_size_up ((uintptr_t)mr.end(), HeapWordSize) == mr.end(), "Unaligned end" ); @@ -593,9 +557,8 @@ void CardTableModRefBS::dirty(MemRegion mr) { memset(first, dirty_card, last-first); } -// NOTES: -// (1) Unlike mod_oop_in_space_iterate() above, dirty_card_iterate() -// iterates over dirty cards ranges in increasing address order. +// Unlike several other card table methods, dirty_card_iterate() +// iterates over dirty cards ranges in increasing address order. void CardTableModRefBS::dirty_card_iterate(MemRegion mr, MemRegionClosure* cl) { for (int i = 0; i < _cur_covered_regions; i++) { @@ -698,7 +661,7 @@ public: void CardTableModRefBS::verify_clean_region(MemRegion mr) { GuaranteeNotModClosure blk(this); - non_clean_card_iterate_work(mr, &blk, false); + non_clean_card_iterate_work(mr, &blk); } // To verify a MemRegion is entirely dirty this closure is passed to diff --git a/hotspot/src/share/vm/memory/cardTableModRefBS.hpp b/hotspot/src/share/vm/memory/cardTableModRefBS.hpp index 34a924ef36e..833a67109b2 100644 --- a/hotspot/src/share/vm/memory/cardTableModRefBS.hpp +++ b/hotspot/src/share/vm/memory/cardTableModRefBS.hpp @@ -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 @@ -171,17 +171,14 @@ class CardTableModRefBS: public ModRefBarrierSet { // mode if worker threads are available. void non_clean_card_iterate(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, - MemRegionClosure* cl, - bool clear); + MemRegionClosure* cl); // Utility function used to implement the other versions below. - void non_clean_card_iterate_work(MemRegion mr, MemRegionClosure* cl, - bool clear); + void non_clean_card_iterate_work(MemRegion mr, MemRegionClosure* cl); void par_non_clean_card_iterate_work(Space* sp, MemRegion mr, DirtyCardToOopClosure* dcto_cl, MemRegionClosure* cl, - bool clear, int n_threads); // Dirty the bytes corresponding to "mr" (not all of which must be @@ -241,7 +238,6 @@ class CardTableModRefBS: public ModRefBarrierSet { jint stride, int n_strides, DirtyCardToOopClosure* dcto_cl, MemRegionClosure* cl, - bool clear, jbyte** lowest_non_clean, uintptr_t lowest_non_clean_base_chunk_index, size_t lowest_non_clean_chunk_size); @@ -402,9 +398,6 @@ public: virtual void invalidate(MemRegion mr, bool whole_heap = false); void clear(MemRegion mr); void dirty(MemRegion mr); - void mod_oop_in_space_iterate(Space* sp, OopClosure* cl, - bool clear = false, - bool before_save_marks = false); // *** Card-table-RemSet-specific things. @@ -415,18 +408,15 @@ public: // *decreasing* address order. (This order aids with imprecise card // marking, where a dirty card may cause scanning, and summarization // marking, of objects that extend onto subsequent cards.) - // If "clear" is true, the card is (conceptually) marked unmodified before - // applying the closure. - void mod_card_iterate(MemRegionClosure* cl, bool clear = false) { - non_clean_card_iterate_work(_whole_heap, cl, clear); + void mod_card_iterate(MemRegionClosure* cl) { + non_clean_card_iterate_work(_whole_heap, cl); } // Like the "mod_cards_iterate" above, except only invokes the closure // for cards within the MemRegion "mr" (which is required to be // card-aligned and sized.) - void mod_card_iterate(MemRegion mr, MemRegionClosure* cl, - bool clear = false) { - non_clean_card_iterate_work(mr, cl, clear); + void mod_card_iterate(MemRegion mr, MemRegionClosure* cl) { + non_clean_card_iterate_work(mr, cl); } static uintx ct_max_alignment_constraint(); diff --git a/hotspot/src/share/vm/memory/cardTableRS.cpp b/hotspot/src/share/vm/memory/cardTableRS.cpp index dcaa7c682f5..3f8b46a4b5f 100644 --- a/hotspot/src/share/vm/memory/cardTableRS.cpp +++ b/hotspot/src/share/vm/memory/cardTableRS.cpp @@ -1,5 +1,5 @@ /* - * 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 @@ -247,7 +247,7 @@ void CardTableRS::younger_refs_in_space_iterate(Space* sp, ClearNoncleanCardWrapper clear_cl(dcto_cl, this); _ct_bs->non_clean_card_iterate(sp, sp->used_region_at_save_marks(), - dcto_cl, &clear_cl, false); + dcto_cl, &clear_cl); } void CardTableRS::clear_into_younger(Generation* gen, bool clear_perm) { diff --git a/hotspot/src/share/vm/memory/dump.cpp b/hotspot/src/share/vm/memory/dump.cpp index 1c88bb70fd8..cb66e8608a7 100644 --- a/hotspot/src/share/vm/memory/dump.cpp +++ b/hotspot/src/share/vm/memory/dump.cpp @@ -623,24 +623,48 @@ public: } }; -// Itable indices are calculated based on methods array order -// (see klassItable::compute_itable_index()). Must reinitialize +// Vtable and Itable indices are calculated based on methods array +// order (see klassItable::compute_itable_index()). Must reinitialize // after ALL methods of ALL classes have been reordered. // We assume that since checkconstraints is false, this method // cannot throw an exception. An exception here would be // problematic since this is the VMThread, not a JavaThread. -class ReinitializeItables: public ObjectClosure { +class ReinitializeTables: public ObjectClosure { private: Thread* _thread; public: - ReinitializeItables(Thread* thread) : _thread(thread) {} + ReinitializeTables(Thread* thread) : _thread(thread) {} + + // Initialize super vtable first, check if already initialized to avoid + // quadradic behavior. The vtable is cleared in remove_unshareable_info. + void reinitialize_vtables(klassOop k) { + if (k->blueprint()->oop_is_instanceKlass()) { + instanceKlass* ik = instanceKlass::cast(k); + if (ik->vtable()->is_initialized()) return; + if (ik->super() != NULL) { + reinitialize_vtables(ik->super()); + } + ik->vtable()->initialize_vtable(false, _thread); + } + } void do_object(oop obj) { if (obj->blueprint()->oop_is_instanceKlass()) { instanceKlass* ik = instanceKlass::cast((klassOop)obj); + ResourceMark rm(_thread); ik->itable()->initialize_itable(false, _thread); + reinitialize_vtables((klassOop)obj); +#ifdef ASSERT + ik->vtable()->verify(tty, true); +#endif // ASSERT + } else if (obj->blueprint()->oop_is_arrayKlass()) { + // The vtable for array klasses are that of its super class, + // ie. java.lang.Object. + arrayKlass* ak = arrayKlass::cast((klassOop)obj); + if (ak->vtable()->is_initialized()) return; + ak->vtable()->initialize_vtable(false, _thread); } } }; @@ -1205,9 +1229,9 @@ public: gen->ro_space()->object_iterate(&sort); gen->rw_space()->object_iterate(&sort); - ReinitializeItables reinit_itables(THREAD); - gen->ro_space()->object_iterate(&reinit_itables); - gen->rw_space()->object_iterate(&reinit_itables); + ReinitializeTables reinit_tables(THREAD); + gen->ro_space()->object_iterate(&reinit_tables); + gen->rw_space()->object_iterate(&reinit_tables); tty->print_cr("done. "); tty->cr(); diff --git a/hotspot/src/share/vm/memory/modRefBarrierSet.hpp b/hotspot/src/share/vm/memory/modRefBarrierSet.hpp index 6a9b2aa0a12..ea3d2dc266b 100644 --- a/hotspot/src/share/vm/memory/modRefBarrierSet.hpp +++ b/hotspot/src/share/vm/memory/modRefBarrierSet.hpp @@ -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 @@ -88,15 +88,6 @@ public: assert(false, "can't call"); } - // Invoke "cl->do_oop" on (the address of) every possibly-modifed - // reference field in objects in "sp". If "clear" is "true", the oops - // are no longer considered possibly modified after application of the - // closure. If' "before_save_marks" is true, oops in objects allocated - // after the last call to "save_marks" on "sp" will not be considered. - virtual void mod_oop_in_space_iterate(Space* sp, OopClosure* cl, - bool clear = false, - bool before_save_marks = false) = 0; - // Causes all refs in "mr" to be assumed to be modified. If "whole_heap" // is true, the caller asserts that the entire heap is being invalidated, // which may admit an optimized implementation for some barriers. diff --git a/hotspot/src/share/vm/oops/constantPoolKlass.cpp b/hotspot/src/share/vm/oops/constantPoolKlass.cpp index 87a771bfe22..627a2017ebe 100644 --- a/hotspot/src/share/vm/oops/constantPoolKlass.cpp +++ b/hotspot/src/share/vm/oops/constantPoolKlass.cpp @@ -381,7 +381,6 @@ void constantPoolKlass::oop_print_on(oop obj, outputStream* st) { case JVM_CONSTANT_MethodType : st->print("signature_index=%d", cp->method_type_index_at(index)); break; - case JVM_CONSTANT_InvokeDynamicTrans : case JVM_CONSTANT_InvokeDynamic : { st->print("bootstrap_method_index=%d", cp->invoke_dynamic_bootstrap_method_ref_index_at(index)); diff --git a/hotspot/src/share/vm/oops/constantPoolOop.cpp b/hotspot/src/share/vm/oops/constantPoolOop.cpp index 91ab822d096..00aa94f20bd 100644 --- a/hotspot/src/share/vm/oops/constantPoolOop.cpp +++ b/hotspot/src/share/vm/oops/constantPoolOop.cpp @@ -284,17 +284,13 @@ int constantPoolOopDesc::impl_name_and_type_ref_index_at(int which, bool uncache if (constantPoolCacheOopDesc::is_secondary_index(which)) { // Invokedynamic index. int pool_index = cache()->main_entry_at(which)->constant_pool_index(); - if (!AllowTransitionalJSR292 || tag_at(pool_index).is_invoke_dynamic()) - pool_index = invoke_dynamic_name_and_type_ref_index_at(pool_index); + pool_index = invoke_dynamic_name_and_type_ref_index_at(pool_index); assert(tag_at(pool_index).is_name_and_type(), ""); return pool_index; } // change byte-ordering and go via cache i = remap_instruction_operand_from_cache(which); } else { - if (AllowTransitionalJSR292 && tag_at(which).is_name_and_type()) - // invokedynamic index is a simple name-and-type - return which; if (tag_at(which).is_invoke_dynamic()) { int pool_index = invoke_dynamic_name_and_type_ref_index_at(which); assert(tag_at(pool_index).is_name_and_type(), ""); @@ -953,7 +949,6 @@ bool constantPoolOopDesc::compare_entry_to(int index1, constantPoolHandle cp2, } break; case JVM_CONSTANT_InvokeDynamic: - case JVM_CONSTANT_InvokeDynamicTrans: { int k1 = invoke_dynamic_bootstrap_method_ref_index_at(index1); int k2 = cp2->invoke_dynamic_bootstrap_method_ref_index_at(index2); @@ -1227,13 +1222,6 @@ void constantPoolOopDesc::copy_entry_to(constantPoolHandle from_cp, int from_i, to_cp->method_handle_index_at_put(to_i, k1, k2); } break; - case JVM_CONSTANT_InvokeDynamicTrans: - { - int k1 = from_cp->invoke_dynamic_bootstrap_method_ref_index_at(from_i); - int k2 = from_cp->invoke_dynamic_name_and_type_ref_index_at(from_i); - to_cp->invoke_dynamic_trans_at_put(to_i, k1, k2); - } break; - case JVM_CONSTANT_InvokeDynamic: { int k1 = from_cp->invoke_dynamic_bootstrap_specifier_index(from_i); @@ -1459,7 +1447,6 @@ jint constantPoolOopDesc::cpool_entry_size(jint idx) { return 5; case JVM_CONSTANT_InvokeDynamic: - case JVM_CONSTANT_InvokeDynamicTrans: // u1 tag, u2 bsm, u2 nt return 5; @@ -1674,7 +1661,6 @@ int constantPoolOopDesc::copy_cpool_bytes(int cpool_size, DBG(printf("JVM_CONSTANT_MethodType: %hd", idx1)); break; } - case JVM_CONSTANT_InvokeDynamicTrans: case JVM_CONSTANT_InvokeDynamic: { *bytes = tag; idx1 = extract_low_short_from_int(*int_at_addr(idx)); diff --git a/hotspot/src/share/vm/oops/constantPoolOop.hpp b/hotspot/src/share/vm/oops/constantPoolOop.hpp index d53de40e025..d8dd7844d6e 100644 --- a/hotspot/src/share/vm/oops/constantPoolOop.hpp +++ b/hotspot/src/share/vm/oops/constantPoolOop.hpp @@ -244,12 +244,6 @@ class constantPoolOopDesc : public oopDesc { *int_at_addr(which) = ((jint) name_and_type_index<<16) | bootstrap_specifier_index; } - void invoke_dynamic_trans_at_put(int which, int bootstrap_method_index, int name_and_type_index) { - tag_at_put(which, JVM_CONSTANT_InvokeDynamicTrans); - *int_at_addr(which) = ((jint) name_and_type_index<<16) | bootstrap_method_index; - assert(AllowTransitionalJSR292, ""); - } - // Temporary until actual use void unresolved_string_at_put(int which, Symbol* s) { release_tag_at_put(which, JVM_CONSTANT_UnresolvedString); @@ -570,15 +564,11 @@ class constantPoolOopDesc : public oopDesc { }; int invoke_dynamic_bootstrap_method_ref_index_at(int which) { assert(tag_at(which).is_invoke_dynamic(), "Corrupted constant pool"); - if (tag_at(which).value() == JVM_CONSTANT_InvokeDynamicTrans) - return extract_low_short_from_int(*int_at_addr(which)); int op_base = invoke_dynamic_operand_base(which); return operands()->short_at(op_base + _indy_bsm_offset); } int invoke_dynamic_argument_count_at(int which) { assert(tag_at(which).is_invoke_dynamic(), "Corrupted constant pool"); - if (tag_at(which).value() == JVM_CONSTANT_InvokeDynamicTrans) - return 0; int op_base = invoke_dynamic_operand_base(which); int argc = operands()->short_at(op_base + _indy_argc_offset); DEBUG_ONLY(int end_offset = op_base + _indy_argv_offset + argc; diff --git a/hotspot/src/share/vm/oops/cpCacheOop.cpp b/hotspot/src/share/vm/oops/cpCacheOop.cpp index 24855ce75cf..953ac789fee 100644 --- a/hotspot/src/share/vm/oops/cpCacheOop.cpp +++ b/hotspot/src/share/vm/oops/cpCacheOop.cpp @@ -185,7 +185,7 @@ void ConstantPoolCacheEntry::set_method(Bytecodes::Code invoke_code, this->print(tty, 0); } assert(method->can_be_statically_bound(), "must be a MH invoker method"); - assert(AllowTransitionalJSR292 || _f2 >= constantPoolOopDesc::CPCACHE_INDEX_TAG, "BSM index initialized"); + assert(_f2 >= constantPoolOopDesc::CPCACHE_INDEX_TAG, "BSM index initialized"); // SystemDictionary::find_method_handle_invoke only caches // methods which signature classes are on the boot classpath, // otherwise the newly created method is returned. To avoid diff --git a/hotspot/src/share/vm/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp index a1701e43833..ab9ddf3265d 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.hpp +++ b/hotspot/src/share/vm/oops/instanceKlass.hpp @@ -191,8 +191,6 @@ class instanceKlass: public Klass { typeArrayOop _inner_classes; // Implementors of this interface (not valid if it overflows) klassOop _implementors[implementors_limit]; - // invokedynamic bootstrap method (a java.lang.invoke.MethodHandle) - oop _bootstrap_method; // AllowTransitionalJSR292 ONLY // Annotations for this class, or null if none. typeArrayOop _class_annotations; // Annotation objects (byte arrays) for fields, or null if no annotations. @@ -403,6 +401,8 @@ class instanceKlass: public Klass { ReferenceType reference_type() const { return _reference_type; } void set_reference_type(ReferenceType t) { _reference_type = t; } + static int reference_type_offset_in_bytes() { return offset_of(instanceKlass, _reference_type); } + // find local field, returns true if found bool find_local_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const; // find field in direct superinterfaces, returns the interface in which the field is defined @@ -526,10 +526,6 @@ class instanceKlass: public Klass { u2 method_index) { _enclosing_method_class_index = class_index; _enclosing_method_method_index = method_index; } - // JSR 292 support - oop bootstrap_method() const { return _bootstrap_method; } // AllowTransitionalJSR292 ONLY - void set_bootstrap_method(oop mh) { oop_store(&_bootstrap_method, mh); } - // jmethodID support static jmethodID get_jmethod_id(instanceKlassHandle ik_h, methodHandle method_h); @@ -793,7 +789,6 @@ private: oop* adr_signers() const { return (oop*)&this->_signers;} oop* adr_inner_classes() const { return (oop*)&this->_inner_classes;} oop* adr_implementors() const { return (oop*)&this->_implementors[0];} - oop* adr_bootstrap_method() const { return (oop*)&this->_bootstrap_method;} // AllowTransitionalJSR292 ONLY oop* adr_methods_jmethod_ids() const { return (oop*)&this->_methods_jmethod_ids;} oop* adr_methods_cached_itable_indices() const { return (oop*)&this->_methods_cached_itable_indices;} oop* adr_class_annotations() const { return (oop*)&this->_class_annotations;} diff --git a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp index 897c5157c36..dc2cd6cdf45 100644 --- a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp @@ -105,7 +105,6 @@ void instanceKlassKlass::oop_follow_contents(oop obj) { MarkSweep::mark_and_push(ik->adr_protection_domain()); MarkSweep::mark_and_push(ik->adr_host_klass()); MarkSweep::mark_and_push(ik->adr_signers()); - MarkSweep::mark_and_push(ik->adr_bootstrap_method()); MarkSweep::mark_and_push(ik->adr_class_annotations()); MarkSweep::mark_and_push(ik->adr_fields_annotations()); MarkSweep::mark_and_push(ik->adr_methods_annotations()); @@ -142,7 +141,6 @@ void instanceKlassKlass::oop_follow_contents(ParCompactionManager* cm, PSParallelCompact::mark_and_push(cm, ik->adr_protection_domain()); PSParallelCompact::mark_and_push(cm, ik->adr_host_klass()); PSParallelCompact::mark_and_push(cm, ik->adr_signers()); - PSParallelCompact::mark_and_push(cm, ik->adr_bootstrap_method()); PSParallelCompact::mark_and_push(cm, ik->adr_class_annotations()); PSParallelCompact::mark_and_push(cm, ik->adr_fields_annotations()); PSParallelCompact::mark_and_push(cm, ik->adr_methods_annotations()); @@ -185,7 +183,6 @@ int instanceKlassKlass::oop_oop_iterate(oop obj, OopClosure* blk) { for (int i = 0; i < instanceKlass::implementors_limit; i++) { blk->do_oop(&ik->adr_implementors()[i]); } - blk->do_oop(ik->adr_bootstrap_method()); blk->do_oop(ik->adr_class_annotations()); blk->do_oop(ik->adr_fields_annotations()); blk->do_oop(ik->adr_methods_annotations()); @@ -239,8 +236,6 @@ int instanceKlassKlass::oop_oop_iterate_m(oop obj, OopClosure* blk, for (int i = 0; i < instanceKlass::implementors_limit; i++) { if (mr.contains(&adr[i])) blk->do_oop(&adr[i]); } - adr = ik->adr_bootstrap_method(); - if (mr.contains(adr)) blk->do_oop(adr); adr = ik->adr_class_annotations(); if (mr.contains(adr)) blk->do_oop(adr); adr = ik->adr_fields_annotations(); @@ -281,7 +276,6 @@ int instanceKlassKlass::oop_adjust_pointers(oop obj) { for (int i = 0; i < instanceKlass::implementors_limit; i++) { MarkSweep::adjust_pointer(&ik->adr_implementors()[i]); } - MarkSweep::adjust_pointer(ik->adr_bootstrap_method()); MarkSweep::adjust_pointer(ik->adr_class_annotations()); MarkSweep::adjust_pointer(ik->adr_fields_annotations()); MarkSweep::adjust_pointer(ik->adr_methods_annotations()); @@ -317,11 +311,6 @@ void instanceKlassKlass::oop_push_contents(PSPromotionManager* pm, oop obj) { pm->claim_or_forward_depth(sg_addr); } - oop* bsm_addr = ik->adr_bootstrap_method(); - if (PSScavenge::should_scavenge(bsm_addr)) { - pm->claim_or_forward_depth(bsm_addr); - } - klassKlass::oop_push_contents(pm, obj); } @@ -420,7 +409,6 @@ instanceKlassKlass::allocate_instance_klass(Symbol* name, int vtable_len, int it ik->set_breakpoints(NULL); ik->init_previous_versions(); ik->set_generic_signature(NULL); - ik->set_bootstrap_method(NULL); ik->release_set_methods_jmethod_ids(NULL); ik->release_set_methods_cached_itable_indices(NULL); ik->set_class_annotations(NULL); @@ -542,11 +530,6 @@ void instanceKlassKlass::oop_print_on(oop obj, outputStream* st) { } // pvw is cleaned up } // rm is cleaned up - if (ik->bootstrap_method() != NULL) { - st->print(BULLET"bootstrap method: "); - ik->bootstrap_method()->print_value_on(st); - st->cr(); - } if (ik->generic_signature() != NULL) { st->print(BULLET"generic signature: "); ik->generic_signature()->print_value_on(st); @@ -707,7 +690,8 @@ void instanceKlassKlass::oop_verify_on(oop obj, outputStream* st) { guarantee(method_ordering->is_perm(), "should be in permspace"); guarantee(method_ordering->is_typeArray(), "should be type array"); int length = method_ordering->length(); - if (JvmtiExport::can_maintain_original_method_order()) { + if (JvmtiExport::can_maintain_original_method_order() || + (UseSharedSpaces && length != 0)) { guarantee(length == methods->length(), "invalid method ordering length"); jlong sum = 0; for (j = 0; j < length; j++) { diff --git a/hotspot/src/share/vm/oops/klass.cpp b/hotspot/src/share/vm/oops/klass.cpp index 499bf53a96f..8541bd5d2b9 100644 --- a/hotspot/src/share/vm/oops/klass.cpp +++ b/hotspot/src/share/vm/oops/klass.cpp @@ -453,6 +453,14 @@ void Klass::remove_unshareable_info() { ik->unlink_class(); } } + // Clear the Java vtable if the oop has one. + // The vtable isn't shareable because it's in the wrong order wrt the methods + // once the method names get moved and resorted. + klassVtable* vt = vtable(); + if (vt != NULL) { + assert(oop_is_instance() || oop_is_array(), "nothing else has vtable"); + vt->clear_vtable(); + } set_subklass(NULL); set_next_sibling(NULL); } diff --git a/hotspot/src/share/vm/oops/klassVtable.cpp b/hotspot/src/share/vm/oops/klassVtable.cpp index 5436f534348..8b8bc7dce35 100644 --- a/hotspot/src/share/vm/oops/klassVtable.cpp +++ b/hotspot/src/share/vm/oops/klassVtable.cpp @@ -645,6 +645,15 @@ void klassVtable::adjust_method_entries(methodOop* old_methods, methodOop* new_m } } +// CDS/RedefineClasses support - clear vtables so they can be reinitialized +void klassVtable::clear_vtable() { + for (int i = 0; i < _length; i++) table()[i].clear(); +} + +bool klassVtable::is_initialized() { + return _length == 0 || table()[0].method() != NULL; +} + // Garbage collection void klassVtable::oop_follow_contents() { diff --git a/hotspot/src/share/vm/oops/klassVtable.hpp b/hotspot/src/share/vm/oops/klassVtable.hpp index 33f5b62e19b..8f979be3189 100644 --- a/hotspot/src/share/vm/oops/klassVtable.hpp +++ b/hotspot/src/share/vm/oops/klassVtable.hpp @@ -75,7 +75,15 @@ class klassVtable : public ResourceObj { void initialize_vtable(bool checkconstraints, TRAPS); // initialize vtable of a new klass - // conputes vtable length (in words) and the number of miranda methods + // CDS/RedefineClasses support - clear vtables so they can be reinitialized + // at dump time. Clearing gives us an easy way to tell if the vtable has + // already been reinitialized at dump time (see dump.cpp). Vtables can + // be initialized at run time by RedefineClasses so dumping the right order + // is necessary. + void clear_vtable(); + bool is_initialized(); + + // computes vtable length (in words) and the number of miranda methods static void compute_vtable_size_and_num_mirandas(int &vtable_length, int &num_miranda_methods, klassOop super, objArrayOop methods, AccessFlags class_flags, Handle classloader, diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 16d42b0262b..b1218874b91 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -852,11 +852,11 @@ bool methodOopDesc::should_not_be_cached() const { bool methodOopDesc::is_method_handle_invoke_name(vmSymbols::SID name_sid) { switch (name_sid) { case vmSymbols::VM_SYMBOL_ENUM_NAME(invokeExact_name): - case vmSymbols::VM_SYMBOL_ENUM_NAME(invokeGeneric_name): + case vmSymbols::VM_SYMBOL_ENUM_NAME(invoke_name): return true; } - if ((AllowTransitionalJSR292 || AllowInvokeForInvokeGeneric) - && name_sid == vmSymbols::VM_SYMBOL_ENUM_NAME(invoke_name)) + if (AllowInvokeGeneric + && name_sid == vmSymbols::VM_SYMBOL_ENUM_NAME(invokeGeneric_name)) return true; return false; } @@ -921,6 +921,10 @@ methodHandle methodOopDesc::make_invoke_method(KlassHandle holder, tty->cr(); } + // invariant: cp->symbol_at_put is preceded by a refcount increment (more usually a lookup) + name->increment_refcount(); + signature->increment_refcount(); + constantPoolHandle cp; { constantPoolOop cp_oop = oopFactory::new_constantPool(_imcp_limit, IsSafeConc, CHECK_(empty)); @@ -1092,7 +1096,6 @@ void methodOopDesc::init_intrinsic_id() { if (name_id == vmSymbols::NO_SID) return; vmSymbols::SID sig_id = vmSymbols::find_sid(signature()); if (klass_id != vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_MethodHandle) - && !(klass_id == vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle) && AllowTransitionalJSR292) && sig_id == vmSymbols::NO_SID) return; jshort flags = access_flags().as_short(); @@ -1118,20 +1121,17 @@ void methodOopDesc::init_intrinsic_id() { break; // Signature-polymorphic methods: MethodHandle.invoke*, InvokeDynamic.*. - case vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle): // AllowTransitionalJSR292 ONLY case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_MethodHandle): if (is_static() || !is_native()) break; switch (name_id) { case vmSymbols::VM_SYMBOL_ENUM_NAME(invokeGeneric_name): + if (!AllowInvokeGeneric) break; + case vmSymbols::VM_SYMBOL_ENUM_NAME(invoke_name): id = vmIntrinsics::_invokeGeneric; break; case vmSymbols::VM_SYMBOL_ENUM_NAME(invokeExact_name): id = vmIntrinsics::_invokeExact; break; - case vmSymbols::VM_SYMBOL_ENUM_NAME(invoke_name): - if (AllowInvokeForInvokeGeneric) id = vmIntrinsics::_invokeGeneric; - else if (AllowTransitionalJSR292) id = vmIntrinsics::_invokeExact; - break; } break; case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_InvokeDynamic): diff --git a/hotspot/src/share/vm/opto/callGenerator.cpp b/hotspot/src/share/vm/opto/callGenerator.cpp index 6d201139e80..ed02629d6b3 100644 --- a/hotspot/src/share/vm/opto/callGenerator.cpp +++ b/hotspot/src/share/vm/opto/callGenerator.cpp @@ -978,31 +978,19 @@ WarmCallInfo* WarmCallInfo::remove_from(WarmCallInfo* head) { return head; } -WarmCallInfo* WarmCallInfo::_always_hot = NULL; -WarmCallInfo* WarmCallInfo::_always_cold = NULL; +WarmCallInfo WarmCallInfo::_always_hot(WarmCallInfo::MAX_VALUE(), WarmCallInfo::MAX_VALUE(), + WarmCallInfo::MIN_VALUE(), WarmCallInfo::MIN_VALUE()); +WarmCallInfo WarmCallInfo::_always_cold(WarmCallInfo::MIN_VALUE(), WarmCallInfo::MIN_VALUE(), + WarmCallInfo::MAX_VALUE(), WarmCallInfo::MAX_VALUE()); WarmCallInfo* WarmCallInfo::always_hot() { - if (_always_hot == NULL) { - static double bits[sizeof(WarmCallInfo) / sizeof(double) + 1] = {0}; - WarmCallInfo* ci = (WarmCallInfo*) bits; - ci->_profit = ci->_count = MAX_VALUE(); - ci->_work = ci->_size = MIN_VALUE(); - _always_hot = ci; - } - assert(_always_hot->is_hot(), "must always be hot"); - return _always_hot; + assert(_always_hot.is_hot(), "must always be hot"); + return &_always_hot; } WarmCallInfo* WarmCallInfo::always_cold() { - if (_always_cold == NULL) { - static double bits[sizeof(WarmCallInfo) / sizeof(double) + 1] = {0}; - WarmCallInfo* ci = (WarmCallInfo*) bits; - ci->_profit = ci->_count = MIN_VALUE(); - ci->_work = ci->_size = MAX_VALUE(); - _always_cold = ci; - } - assert(_always_cold->is_cold(), "must always be cold"); - return _always_cold; + assert(_always_cold.is_cold(), "must always be cold"); + return &_always_cold; } diff --git a/hotspot/src/share/vm/opto/callGenerator.hpp b/hotspot/src/share/vm/opto/callGenerator.hpp index 75e8ba004ad..4a50f990e6d 100644 --- a/hotspot/src/share/vm/opto/callGenerator.hpp +++ b/hotspot/src/share/vm/opto/callGenerator.hpp @@ -215,8 +215,20 @@ class WarmCallInfo : public ResourceObj { WarmCallInfo* next() const { return _next; } void set_next(WarmCallInfo* n) { _next = n; } - static WarmCallInfo* _always_hot; - static WarmCallInfo* _always_cold; + static WarmCallInfo _always_hot; + static WarmCallInfo _always_cold; + + // Constructor intitialization of always_hot and always_cold + WarmCallInfo(float c, float p, float w, float s) { + _call = NULL; + _hot_cg = NULL; + _next = NULL; + _count = c; + _profit = p; + _work = w; + _size = s; + _heat = 0; + } public: // Because WarmInfo objects live over the entire lifetime of the diff --git a/hotspot/src/share/vm/opto/cfgnode.cpp b/hotspot/src/share/vm/opto/cfgnode.cpp index f6ca3ce7f90..90f0234f089 100644 --- a/hotspot/src/share/vm/opto/cfgnode.cpp +++ b/hotspot/src/share/vm/opto/cfgnode.cpp @@ -1349,9 +1349,17 @@ static Node* is_absolute( PhaseGVN *phase, PhiNode *phi_root, int true_path) { static void split_once(PhaseIterGVN *igvn, Node *phi, Node *val, Node *n, Node *newn) { igvn->hash_delete(n); // Remove from hash before hacking edges + Node* predicate_proj = NULL; uint j = 1; - for( uint i = phi->req()-1; i > 0; i-- ) { - if( phi->in(i) == val ) { // Found a path with val? + for (uint i = phi->req()-1; i > 0; i--) { + if (phi->in(i) == val) { // Found a path with val? + if (n->is_Region()) { + Node* proj = PhaseIdealLoop::find_predicate(n->in(i)); + if (proj != NULL) { + assert(predicate_proj == NULL, "only one predicate entry expected"); + predicate_proj = proj; + } + } // Add to NEW Region/Phi, no DU info newn->set_req( j++, n->in(i) ); // Remove from OLD Region/Phi @@ -1362,6 +1370,12 @@ static void split_once(PhaseIterGVN *igvn, Node *phi, Node *val, Node *n, Node * // Register the new node but do not transform it. Cannot transform until the // entire Region/Phi conglomerate has been hacked as a single huge transform. igvn->register_new_node_with_optimizer( newn ); + + // Clone loop predicates + if (predicate_proj != NULL) { + newn = igvn->clone_loop_predicates(predicate_proj, newn); + } + // Now I can point to the new node. n->add_req(newn); igvn->_worklist.push(n); diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index 39bcf30bd77..7117f7ccc39 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -629,7 +629,7 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr initial_gvn()->transform_no_reclaim(top()); // Set up tf(), start(), and find a CallGenerator. - CallGenerator* cg; + CallGenerator* cg = NULL; if (is_osr_compilation()) { const TypeTuple *domain = StartOSRNode::osr_domain(); const TypeTuple *range = TypeTuple::make_range(method()->signature()); @@ -644,9 +644,24 @@ Compile::Compile( ciEnv* ci_env, C2Compiler* compiler, ciMethod* target, int osr StartNode* s = new (this, 2) StartNode(root(), tf()->domain()); initial_gvn()->set_type_bottom(s); init_start(s); - float past_uses = method()->interpreter_invocation_count(); - float expected_uses = past_uses; - cg = CallGenerator::for_inline(method(), expected_uses); + if (method()->intrinsic_id() == vmIntrinsics::_Reference_get && UseG1GC) { + // With java.lang.ref.reference.get() we must go through the + // intrinsic when G1 is enabled - even when get() is the root + // method of the compile - so that, if necessary, the value in + // the referent field of the reference object gets recorded by + // the pre-barrier code. + // Specifically, if G1 is enabled, the value in the referent + // field is recorded by the G1 SATB pre barrier. This will + // result in the referent being marked live and the reference + // object removed from the list of discovered references during + // reference processing. + cg = find_intrinsic(method(), false); + } + if (cg == NULL) { + float past_uses = method()->interpreter_invocation_count(); + float expected_uses = past_uses; + cg = CallGenerator::for_inline(method(), expected_uses); + } } if (failing()) return; if (cg == NULL) { @@ -1632,7 +1647,6 @@ void Compile::cleanup_loop_predicates(PhaseIterGVN &igvn) { igvn.replace_node(n, n->in(1)); } assert(predicate_count()==0, "should be clean!"); - igvn.optimize(); } //------------------------------Optimize--------------------------------------- @@ -1689,7 +1703,7 @@ void Compile::Optimize() { if((loop_opts_cnt > 0) && (has_loops() || has_split_ifs())) { { TracePhase t2("idealLoop", &_t_idealLoop, true); - PhaseIdealLoop ideal_loop( igvn, true, UseLoopPredicate); + PhaseIdealLoop ideal_loop( igvn, true ); loop_opts_cnt--; if (major_progress()) print_method("PhaseIdealLoop 1", 2); if (failing()) return; @@ -1697,7 +1711,7 @@ void Compile::Optimize() { // Loop opts pass if partial peeling occurred in previous pass if(PartialPeelLoop && major_progress() && (loop_opts_cnt > 0)) { TracePhase t3("idealLoop", &_t_idealLoop, true); - PhaseIdealLoop ideal_loop( igvn, false, UseLoopPredicate); + PhaseIdealLoop ideal_loop( igvn, false ); loop_opts_cnt--; if (major_progress()) print_method("PhaseIdealLoop 2", 2); if (failing()) return; @@ -1705,7 +1719,7 @@ void Compile::Optimize() { // Loop opts pass for loop-unrolling before CCP if(major_progress() && (loop_opts_cnt > 0)) { TracePhase t4("idealLoop", &_t_idealLoop, true); - PhaseIdealLoop ideal_loop( igvn, false, UseLoopPredicate); + PhaseIdealLoop ideal_loop( igvn, false ); loop_opts_cnt--; if (major_progress()) print_method("PhaseIdealLoop 3", 2); } @@ -1743,21 +1757,13 @@ void Compile::Optimize() { // peeling, unrolling, etc. if(loop_opts_cnt > 0) { debug_only( int cnt = 0; ); - bool loop_predication = UseLoopPredicate; while(major_progress() && (loop_opts_cnt > 0)) { TracePhase t2("idealLoop", &_t_idealLoop, true); assert( cnt++ < 40, "infinite cycle in loop optimization" ); - PhaseIdealLoop ideal_loop( igvn, true, loop_predication); + PhaseIdealLoop ideal_loop( igvn, true); loop_opts_cnt--; if (major_progress()) print_method("PhaseIdealLoop iterations", 2); if (failing()) return; - // Perform loop predication optimization during first iteration after CCP. - // After that switch it off and cleanup unused loop predicates. - if (loop_predication) { - loop_predication = false; - cleanup_loop_predicates(igvn); - if (failing()) return; - } } } @@ -2050,6 +2056,52 @@ static bool oop_offset_is_sane(const TypeInstPtr* tp) { // Note that OffsetBot and OffsetTop are very negative. } +// Eliminate trivially redundant StoreCMs and accumulate their +// precedence edges. +static void eliminate_redundant_card_marks(Node* n) { + assert(n->Opcode() == Op_StoreCM, "expected StoreCM"); + if (n->in(MemNode::Address)->outcnt() > 1) { + // There are multiple users of the same address so it might be + // possible to eliminate some of the StoreCMs + Node* mem = n->in(MemNode::Memory); + Node* adr = n->in(MemNode::Address); + Node* val = n->in(MemNode::ValueIn); + Node* prev = n; + bool done = false; + // Walk the chain of StoreCMs eliminating ones that match. As + // long as it's a chain of single users then the optimization is + // safe. Eliminating partially redundant StoreCMs would require + // cloning copies down the other paths. + while (mem->Opcode() == Op_StoreCM && mem->outcnt() == 1 && !done) { + if (adr == mem->in(MemNode::Address) && + val == mem->in(MemNode::ValueIn)) { + // redundant StoreCM + if (mem->req() > MemNode::OopStore) { + // Hasn't been processed by this code yet. + n->add_prec(mem->in(MemNode::OopStore)); + } else { + // Already converted to precedence edge + for (uint i = mem->req(); i < mem->len(); i++) { + // Accumulate any precedence edges + if (mem->in(i) != NULL) { + n->add_prec(mem->in(i)); + } + } + // Everything above this point has been processed. + done = true; + } + // Eliminate the previous StoreCM + prev->set_req(MemNode::Memory, mem->in(MemNode::Memory)); + assert(mem->outcnt() == 0, "should be dead"); + mem->disconnect_inputs(NULL); + } else { + prev = mem; + } + mem = prev->in(MemNode::Memory); + } + } +} + //------------------------------final_graph_reshaping_impl---------------------- // Implement items 1-5 from final_graph_reshaping below. static void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc ) { @@ -2176,9 +2228,19 @@ static void final_graph_reshaping_impl( Node *n, Final_Reshape_Counts &frc ) { frc.inc_float_count(); goto handle_mem; + case Op_StoreCM: + { + // Convert OopStore dependence into precedence edge + Node* prec = n->in(MemNode::OopStore); + n->del_req(MemNode::OopStore); + n->add_prec(prec); + eliminate_redundant_card_marks(n); + } + + // fall through + case Op_StoreB: case Op_StoreC: - case Op_StoreCM: case Op_StorePConditional: case Op_StoreI: case Op_StoreL: diff --git a/hotspot/src/share/vm/opto/compile.hpp b/hotspot/src/share/vm/opto/compile.hpp index 5b562ecee44..b2d81897ac0 100644 --- a/hotspot/src/share/vm/opto/compile.hpp +++ b/hotspot/src/share/vm/opto/compile.hpp @@ -489,6 +489,9 @@ class Compile : public Phase { // remove the opaque nodes that protect the predicates so that the unused checks and // uncommon traps will be eliminated from the graph. void cleanup_loop_predicates(PhaseIterGVN &igvn); + bool is_predicate_opaq(Node * n) { + return _predicate_opaqs->contains(n); + } // Compilation environment. Arena* comp_arena() { return &_comp_arena; } diff --git a/hotspot/src/share/vm/opto/doCall.cpp b/hotspot/src/share/vm/opto/doCall.cpp index e7cdaf47e86..de066e992a3 100644 --- a/hotspot/src/share/vm/opto/doCall.cpp +++ b/hotspot/src/share/vm/opto/doCall.cpp @@ -63,6 +63,7 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, JVMState* jvms, bool allow_inline, float prof_factor) { CallGenerator* cg; + guarantee(call_method != NULL, "failed method resolution"); // Dtrace currently doesn't work unless all calls are vanilla if (env()->dtrace_method_probes()) { @@ -130,8 +131,9 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, // Get an adapter for the MethodHandle. ciMethod* target_method = method_handle->get_method_handle_adapter(); - - CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor); + CallGenerator* hit_cg = NULL; + if (target_method != NULL) + hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor); if (hit_cg != NULL && hit_cg->is_inline()) return hit_cg; } @@ -152,8 +154,9 @@ CallGenerator* Compile::call_generator(ciMethod* call_method, int vtable_index, // Get an adapter for the MethodHandle. ciMethod* target_method = method_handle->get_invokedynamic_adapter(); - - CallGenerator* hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor); + CallGenerator* hit_cg = NULL; + if (target_method != NULL) + hit_cg = this->call_generator(target_method, vtable_index, false, jvms, true, prof_factor); if (hit_cg != NULL && hit_cg->is_inline()) { CallGenerator* miss_cg = CallGenerator::for_dynamic_call(call_method); return CallGenerator::for_predicted_dynamic_call(method_handle, miss_cg, hit_cg, prof_factor); diff --git a/hotspot/src/share/vm/opto/escape.cpp b/hotspot/src/share/vm/opto/escape.cpp index 788a79785bb..a7b509e34c5 100644 --- a/hotspot/src/share/vm/opto/escape.cpp +++ b/hotspot/src/share/vm/opto/escape.cpp @@ -594,7 +594,7 @@ bool ConnectionGraph::split_AddP(Node *addp, Node *base, PhaseGVN *igvn) { // // Create a new version of orig_phi if necessary. Returns either the newly -// created phi or an existing phi. Sets create_new to indicate wheter a new +// created phi or an existing phi. Sets create_new to indicate whether a new // phi was created. Cache the last newly created phi in the node map. // PhiNode *ConnectionGraph::create_split_phi(PhiNode *orig_phi, int alias_idx, GrowableArray &orig_phi_worklist, PhaseGVN *igvn, bool &new_created) { @@ -649,7 +649,7 @@ PhiNode *ConnectionGraph::create_split_phi(PhiNode *orig_phi, int alias_idx, Gro } // -// Return a new version of Memory Phi "orig_phi" with the inputs having the +// Return a new version of Memory Phi "orig_phi" with the inputs having the // specified alias index. // PhiNode *ConnectionGraph::split_memory_phi(PhiNode *orig_phi, int alias_idx, GrowableArray &orig_phi_worklist, PhaseGVN *igvn) { @@ -828,11 +828,15 @@ Node* ConnectionGraph::find_inst_mem(Node *orig_mem, int alias_idx, GrowableArra break; // hit one of our sentinels if (result->is_Mem()) { const Type *at = phase->type(result->in(MemNode::Address)); - if (at != Type::TOP) { - assert (at->isa_ptr() != NULL, "pointer type required."); - int idx = C->get_alias_index(at->is_ptr()); - if (idx == alias_idx) - break; + if (at == Type::TOP) + break; // Dead + assert (at->isa_ptr() != NULL, "pointer type required."); + int idx = C->get_alias_index(at->is_ptr()); + if (idx == alias_idx) + break; // Found + if (!is_instance && (at->isa_oopptr() == NULL || + !at->is_oopptr()->is_known_instance())) { + break; // Do not skip store to general memory slice. } result = result->in(MemNode::Memory); } @@ -902,13 +906,13 @@ Node* ConnectionGraph::find_inst_mem(Node *orig_mem, int alias_idx, GrowableArra PhiNode *mphi = result->as_Phi(); assert(mphi->bottom_type() == Type::MEMORY, "memory phi required"); const TypePtr *t = mphi->adr_type(); - if (C->get_alias_index(t) != alias_idx) { - // Create a new Phi with the specified alias index type. - result = split_memory_phi(mphi, alias_idx, orig_phis, phase); - } else if (!is_instance) { + if (!is_instance) { // Push all non-instance Phis on the orig_phis worklist to update inputs // during Phase 4 if needed. orig_phis.append_if_missing(mphi); + } else if (C->get_alias_index(t) != alias_idx) { + // Create a new Phi with the specified alias index type. + result = split_memory_phi(mphi, alias_idx, orig_phis, phase); } } // the result is either MemNode, PhiNode, InitializeNode. diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp index 794a0f7171c..f2405cabe70 100644 --- a/hotspot/src/share/vm/opto/graphKit.cpp +++ b/hotspot/src/share/vm/opto/graphKit.cpp @@ -1457,19 +1457,22 @@ Node* GraphKit::store_to_memory(Node* ctl, Node* adr, Node *val, BasicType bt, } -void GraphKit::pre_barrier(Node* ctl, +void GraphKit::pre_barrier(bool do_load, + Node* ctl, Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type, + Node* pre_val, BasicType bt) { + BarrierSet* bs = Universe::heap()->barrier_set(); set_control(ctl); switch (bs->kind()) { case BarrierSet::G1SATBCT: case BarrierSet::G1SATBCTLogging: - g1_write_barrier_pre(obj, adr, adr_idx, val, val_type, bt); + g1_write_barrier_pre(do_load, obj, adr, adr_idx, val, val_type, pre_val, bt); break; case BarrierSet::CardTableModRef: @@ -1532,7 +1535,11 @@ Node* GraphKit::store_oop(Node* ctl, uint adr_idx = C->get_alias_index(adr_type); assert(adr_idx != Compile::AliasIdxTop, "use other store_to_memory factory" ); - pre_barrier(control(), obj, adr, adr_idx, val, val_type, bt); + pre_barrier(true /* do_load */, + control(), obj, adr, adr_idx, val, val_type, + NULL /* pre_val */, + bt); + Node* store = store_to_memory(control(), adr, val, bt, adr_idx); post_barrier(control(), store, obj, adr, adr_idx, val, bt, use_precise); return store; @@ -3385,10 +3392,15 @@ void GraphKit::add_predicate(int nargs) { #define __ ideal. void GraphKit::sync_kit(IdealKit& ideal) { + set_all_memory(__ merged_memory()); + set_i_o(__ i_o()); + set_control(__ ctrl()); +} + +void GraphKit::final_sync(IdealKit& ideal) { // Final sync IdealKit and graphKit. __ drain_delay_transform(); - set_all_memory(__ merged_memory()); - set_control(__ ctrl()); + sync_kit(ideal); } // vanilla/CMS post barrier @@ -3435,7 +3447,7 @@ void GraphKit::write_barrier_post(Node* oop_store, // (Else it's an array (or unknown), and we want more precise card marks.) assert(adr != NULL, ""); - IdealKit ideal(gvn(), control(), merged_memory(), true); + IdealKit ideal(this, true); // Convert the pointer to an int prior to doing math on it Node* cast = __ CastPX(__ ctrl(), adr); @@ -3461,17 +3473,36 @@ void GraphKit::write_barrier_post(Node* oop_store, } // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); } // G1 pre/post barriers -void GraphKit::g1_write_barrier_pre(Node* obj, +void GraphKit::g1_write_barrier_pre(bool do_load, + Node* obj, Node* adr, uint alias_idx, Node* val, const TypeOopPtr* val_type, + Node* pre_val, BasicType bt) { - IdealKit ideal(gvn(), control(), merged_memory(), true); + + // Some sanity checks + // Note: val is unused in this routine. + + if (do_load) { + // We need to generate the load of the previous value + assert(obj != NULL, "must have a base"); + assert(adr != NULL, "where are loading from?"); + assert(pre_val == NULL, "loaded already?"); + assert(val_type != NULL, "need a type"); + } else { + // In this case both val_type and alias_idx are unused. + assert(pre_val != NULL, "must be loaded already"); + assert(pre_val->bottom_type()->basic_type() == T_OBJECT, "or we shouldn't be here"); + } + assert(bt == T_OBJECT, "or we shouldn't be here"); + + IdealKit ideal(this, true); Node* tls = __ thread(); // ThreadLocalStorage @@ -3492,32 +3523,28 @@ void GraphKit::g1_write_barrier_pre(Node* obj, PtrQueue::byte_offset_of_index()); const int buffer_offset = in_bytes(JavaThread::satb_mark_queue_offset() + // 652 PtrQueue::byte_offset_of_buf()); + // Now the actual pointers into the thread - - // set_control( ctl); - Node* marking_adr = __ AddP(no_base, tls, __ ConX(marking_offset)); Node* buffer_adr = __ AddP(no_base, tls, __ ConX(buffer_offset)); Node* index_adr = __ AddP(no_base, tls, __ ConX(index_offset)); // Now some of the values - Node* marking = __ load(__ ctrl(), marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); // if (!marking) __ if_then(marking, BoolTest::ne, zero); { Node* index = __ load(__ ctrl(), index_adr, TypeInt::INT, T_INT, Compile::AliasIdxRaw); - const Type* t1 = adr->bottom_type(); - const Type* t2 = val->bottom_type(); - - Node* orig = __ load(no_ctrl, adr, val_type, bt, alias_idx); - // if (orig != NULL) - __ if_then(orig, BoolTest::ne, null()); { - Node* buffer = __ load(__ ctrl(), buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); - + if (do_load) { // load original value // alias_idx correct?? + pre_val = __ load(no_ctrl, adr, val_type, bt, alias_idx); + } + + // if (pre_val != NULL) + __ if_then(pre_val, BoolTest::ne, null()); { + Node* buffer = __ load(__ ctrl(), buffer_adr, TypeRawPtr::NOTNULL, T_ADDRESS, Compile::AliasIdxRaw); // is the queue for this thread full? __ if_then(index, BoolTest::ne, zero, likely); { @@ -3531,10 +3558,9 @@ void GraphKit::g1_write_barrier_pre(Node* obj, next_indexX = _gvn.transform( new (C, 2) ConvI2LNode(next_index, TypeLong::make(0, max_jlong, Type::WidenMax)) ); #endif - // Now get the buffer location we will log the original value into and store it + // Now get the buffer location we will log the previous value into and store it Node *log_addr = __ AddP(no_base, buffer, next_indexX); - __ store(__ ctrl(), log_addr, orig, T_OBJECT, Compile::AliasIdxRaw); - + __ store(__ ctrl(), log_addr, pre_val, T_OBJECT, Compile::AliasIdxRaw); // update the index __ store(__ ctrl(), index_adr, next_index, T_INT, Compile::AliasIdxRaw); @@ -3542,13 +3568,13 @@ void GraphKit::g1_write_barrier_pre(Node* obj, // logging buffer is full, call the runtime const TypeFunc *tf = OptoRuntime::g1_wb_pre_Type(); - __ make_leaf_call(tf, CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), "g1_wb_pre", orig, tls); + __ make_leaf_call(tf, CAST_FROM_FN_PTR(address, SharedRuntime::g1_wb_pre), "g1_wb_pre", pre_val, tls); } __ end_if(); // (!index) - } __ end_if(); // (orig != NULL) + } __ end_if(); // (pre_val != NULL) } __ end_if(); // (!marking) // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); } // @@ -3614,7 +3640,7 @@ void GraphKit::g1_write_barrier_post(Node* oop_store, // (Else it's an array (or unknown), and we want more precise card marks.) assert(adr != NULL, ""); - IdealKit ideal(gvn(), control(), merged_memory(), true); + IdealKit ideal(this, true); Node* tls = __ thread(); // ThreadLocalStorage @@ -3688,6 +3714,6 @@ void GraphKit::g1_write_barrier_post(Node* oop_store, } // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); } #undef __ diff --git a/hotspot/src/share/vm/opto/graphKit.hpp b/hotspot/src/share/vm/opto/graphKit.hpp index 1302184fcbd..fdddd66e705 100644 --- a/hotspot/src/share/vm/opto/graphKit.hpp +++ b/hotspot/src/share/vm/opto/graphKit.hpp @@ -544,8 +544,10 @@ class GraphKit : public Phase { BasicType bt); // For the few case where the barriers need special help - void pre_barrier(Node* ctl, Node* obj, Node* adr, uint adr_idx, - Node* val, const TypeOopPtr* val_type, BasicType bt); + void pre_barrier(bool do_load, Node* ctl, + Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type, + Node* pre_val, + BasicType bt); void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx, Node* val, BasicType bt, bool use_precise); @@ -662,18 +664,22 @@ class GraphKit : public Phase { && Universe::heap()->can_elide_tlab_store_barriers()); } + // Sync Ideal and Graph kits. void sync_kit(IdealKit& ideal); + void final_sync(IdealKit& ideal); // vanilla/CMS post barrier void write_barrier_post(Node *store, Node* obj, Node* adr, uint adr_idx, Node* val, bool use_precise); // G1 pre/post barriers - void g1_write_barrier_pre(Node* obj, + void g1_write_barrier_pre(bool do_load, + Node* obj, Node* adr, uint alias_idx, Node* val, const TypeOopPtr* val_type, + Node* pre_val, BasicType bt); void g1_write_barrier_post(Node* store, diff --git a/hotspot/src/share/vm/opto/idealKit.cpp b/hotspot/src/share/vm/opto/idealKit.cpp index a143a6492e0..c9cb0f85578 100644 --- a/hotspot/src/share/vm/opto/idealKit.cpp +++ b/hotspot/src/share/vm/opto/idealKit.cpp @@ -38,15 +38,16 @@ const uint IdealKit::first_var = TypeFunc::Parms + 1; //----------------------------IdealKit----------------------------------------- -IdealKit::IdealKit(PhaseGVN &gvn, Node* control, Node* mem, bool delay_all_transforms, bool has_declarations) : - _gvn(gvn), C(gvn.C) { - _initial_ctrl = control; - _initial_memory = mem; +IdealKit::IdealKit(GraphKit* gkit, bool delay_all_transforms, bool has_declarations) : + _gvn(gkit->gvn()), C(gkit->C) { + _initial_ctrl = gkit->control(); + _initial_memory = gkit->merged_memory(); + _initial_i_o = gkit->i_o(); _delay_all_transforms = delay_all_transforms; _var_ct = 0; _cvstate = NULL; // We can go memory state free or else we need the entire memory state - assert(mem == NULL || mem->Opcode() == Op_MergeMem, "memory must be pre-split"); + assert(_initial_memory == NULL || _initial_memory->Opcode() == Op_MergeMem, "memory must be pre-split"); int init_size = 5; _pending_cvstates = new (C->node_arena()) GrowableArray(C->node_arena(), init_size, 0, 0); _delay_transform = new (C->node_arena()) GrowableArray(C->node_arena(), init_size, 0, 0); @@ -56,6 +57,13 @@ IdealKit::IdealKit(PhaseGVN &gvn, Node* control, Node* mem, bool delay_all_trans } } +//----------------------------sync_kit----------------------------------------- +void IdealKit::sync_kit(GraphKit* gkit) { + set_all_memory(gkit->merged_memory()); + set_i_o(gkit->i_o()); + set_ctrl(gkit->control()); +} + //-------------------------------if_then------------------------------------- // Create: if(left relop right) // / \ @@ -156,16 +164,14 @@ void IdealKit::end_if() { // onto the stack. void IdealKit::loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask relop, Node* limit, float prob, float cnt) { assert((state() & (BlockS|LoopS|IfThenS|ElseS)), "bad state for new loop"); - - // Sync IdealKit and graphKit. - gkit->set_all_memory(this->merged_memory()); - gkit->set_control(this->ctrl()); - // Add loop predicate. - gkit->add_predicate(nargs); - // Update IdealKit memory. - this->set_all_memory(gkit->merged_memory()); - this->set_ctrl(gkit->control()); - + if (UseLoopPredicate) { + // Sync IdealKit and graphKit. + gkit->sync_kit(*this); + // Add loop predicate. + gkit->add_predicate(nargs); + // Update IdealKit memory. + sync_kit(gkit); + } set(iv, init); Node* head = make_label(1); bind(head); @@ -280,6 +286,7 @@ void IdealKit::declarations_done() { _cvstate = new_cvstate(); // initialize current cvstate set_ctrl(_initial_ctrl); // initialize control in current cvstate set_all_memory(_initial_memory);// initialize memory in current cvstate + set_i_o(_initial_i_o); // initialize i_o in current cvstate DEBUG_ONLY(_state->push(BlockS)); } @@ -421,6 +428,9 @@ void IdealKit::do_memory_merge(Node* merging, Node* join) { // Get the region for the join state Node* join_region = join->in(TypeFunc::Control); assert(join_region != NULL, "join region must exist"); + if (join->in(TypeFunc::I_O) == NULL ) { + join->set_req(TypeFunc::I_O, merging->in(TypeFunc::I_O)); + } if (join->in(TypeFunc::Memory) == NULL ) { join->set_req(TypeFunc::Memory, merging->in(TypeFunc::Memory)); return; @@ -467,6 +477,20 @@ void IdealKit::do_memory_merge(Node* merging, Node* join) { mms.set_memory(phi); } } + + Node* join_io = join->in(TypeFunc::I_O); + Node* merging_io = merging->in(TypeFunc::I_O); + if (join_io != merging_io) { + PhiNode* phi; + if (join_io->is_Phi() && join_io->as_Phi()->region() == join_region) { + phi = join_io->as_Phi(); + } else { + phi = PhiNode::make(join_region, join_io, Type::ABIO); + phi = (PhiNode*) delay_transform(phi); + join->set_req(TypeFunc::I_O, phi); + } + phi->set_req(slot, merging_io); + } } @@ -477,7 +501,8 @@ void IdealKit::make_leaf_call(const TypeFunc *slow_call_type, const char *leaf_name, Node* parm0, Node* parm1, - Node* parm2) { + Node* parm2, + Node* parm3) { // We only handle taking in RawMem and modifying RawMem const TypePtr* adr_type = TypeRawPtr::BOTTOM; @@ -498,6 +523,55 @@ void IdealKit::make_leaf_call(const TypeFunc *slow_call_type, if (parm0 != NULL) call->init_req(TypeFunc::Parms+0, parm0); if (parm1 != NULL) call->init_req(TypeFunc::Parms+1, parm1); if (parm2 != NULL) call->init_req(TypeFunc::Parms+2, parm2); + if (parm3 != NULL) call->init_req(TypeFunc::Parms+3, parm3); + + // Node *c = _gvn.transform(call); + call = (CallNode *) _gvn.transform(call); + Node *c = call; // dbx gets confused with call call->dump() + + // Slow leaf call has no side-effects, sets few values + + set_ctrl(transform( new (C, 1) ProjNode(call,TypeFunc::Control) )); + + // Make memory for the call + Node* mem = _gvn.transform( new (C, 1) ProjNode(call, TypeFunc::Memory) ); + + // Set the RawPtr memory state only. + set_memory(mem, adr_idx); + + assert(C->alias_type(call->adr_type()) == C->alias_type(adr_type), + "call node must be constructed correctly"); +} + + +void IdealKit::make_leaf_call_no_fp(const TypeFunc *slow_call_type, + address slow_call, + const char *leaf_name, + const TypePtr* adr_type, + Node* parm0, + Node* parm1, + Node* parm2, + Node* parm3) { + + // We only handle taking in RawMem and modifying RawMem + uint adr_idx = C->get_alias_index(adr_type); + + // Slow-path leaf call + int size = slow_call_type->domain()->cnt(); + CallNode *call = (CallNode*)new (C, size) CallLeafNoFPNode( slow_call_type, slow_call, leaf_name, adr_type); + + // Set fixed predefined input arguments + call->init_req( TypeFunc::Control, ctrl() ); + call->init_req( TypeFunc::I_O , top() ) ; // does no i/o + // Narrow memory as only memory input + call->init_req( TypeFunc::Memory , memory(adr_idx)); + call->init_req( TypeFunc::FramePtr, top() /* frameptr() */ ); + call->init_req( TypeFunc::ReturnAdr, top() ); + + if (parm0 != NULL) call->init_req(TypeFunc::Parms+0, parm0); + if (parm1 != NULL) call->init_req(TypeFunc::Parms+1, parm1); + if (parm2 != NULL) call->init_req(TypeFunc::Parms+2, parm2); + if (parm3 != NULL) call->init_req(TypeFunc::Parms+3, parm3); // Node *c = _gvn.transform(call); call = (CallNode *) _gvn.transform(call); diff --git a/hotspot/src/share/vm/opto/idealKit.hpp b/hotspot/src/share/vm/opto/idealKit.hpp index 1ece1425918..6787e533a64 100644 --- a/hotspot/src/share/vm/opto/idealKit.hpp +++ b/hotspot/src/share/vm/opto/idealKit.hpp @@ -108,6 +108,7 @@ class IdealKit: public StackObj { bool _delay_all_transforms; // flag forcing all transforms to be delayed Node* _initial_ctrl; // saves initial control until variables declared Node* _initial_memory; // saves initial memory until variables declared + Node* _initial_i_o; // saves initial i_o until variables declared PhaseGVN& gvn() const { return _gvn; } // Create a new cvstate filled with nulls @@ -142,17 +143,21 @@ class IdealKit: public StackObj { Node* memory(uint alias_idx); public: - IdealKit(PhaseGVN &gvn, Node* control, Node* memory, bool delay_all_transforms = false, bool has_declarations = false); + IdealKit(GraphKit* gkit, bool delay_all_transforms = false, bool has_declarations = false); ~IdealKit() { stop(); drain_delay_transform(); } + void sync_kit(GraphKit* gkit); + // Control Node* ctrl() { return _cvstate->in(TypeFunc::Control); } void set_ctrl(Node* ctrl) { _cvstate->set_req(TypeFunc::Control, ctrl); } Node* top() { return C->top(); } MergeMemNode* merged_memory() { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); } void set_all_memory(Node* mem) { _cvstate->set_req(TypeFunc::Memory, mem); } + Node* i_o() { return _cvstate->in(TypeFunc::I_O); } + void set_i_o(Node* c) { _cvstate->set_req(TypeFunc::I_O, c); } void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); } Node* value(IdealVariable& v) { return _cvstate->in(first_var + v.id()); } void dead(IdealVariable& v) { set(v, (Node*)NULL); } @@ -239,7 +244,18 @@ class IdealKit: public StackObj { const char *leaf_name, Node* parm0, Node* parm1 = NULL, - Node* parm2 = NULL); + Node* parm2 = NULL, + Node* parm3 = NULL); + + void make_leaf_call_no_fp(const TypeFunc *slow_call_type, + address slow_call, + const char *leaf_name, + const TypePtr* adr_type, + Node* parm0, + Node* parm1, + Node* parm2, + Node* parm3); + }; #endif // SHARE_VM_OPTO_IDEALKIT_HPP diff --git a/hotspot/src/share/vm/opto/ifnode.cpp b/hotspot/src/share/vm/opto/ifnode.cpp index 25f2e315190..bcdf5ad640d 100644 --- a/hotspot/src/share/vm/opto/ifnode.cpp +++ b/hotspot/src/share/vm/opto/ifnode.cpp @@ -27,6 +27,7 @@ #include "opto/addnode.hpp" #include "opto/cfgnode.hpp" #include "opto/connode.hpp" +#include "opto/loopnode.hpp" #include "opto/phaseX.hpp" #include "opto/runtime.hpp" #include "opto/subnode.hpp" @@ -222,22 +223,35 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) { // Make a region merging constants and a region merging the rest uint req_c = 0; + Node* predicate_proj = NULL; for (uint ii = 1; ii < r->req(); ii++) { - if( phi->in(ii) == con1 ) { + if (phi->in(ii) == con1) { req_c++; } + Node* proj = PhaseIdealLoop::find_predicate(r->in(ii)); + if (proj != NULL) { + assert(predicate_proj == NULL, "only one predicate entry expected"); + predicate_proj = proj; + } } + Node* predicate_c = NULL; + Node* predicate_x = NULL; + Node *region_c = new (igvn->C, req_c + 1) RegionNode(req_c + 1); Node *phi_c = con1; uint len = r->req(); - Node *region_x = new (igvn->C, len - req_c + 1) RegionNode(len - req_c + 1); + Node *region_x = new (igvn->C, len - req_c) RegionNode(len - req_c); Node *phi_x = PhiNode::make_blank(region_x, phi); for (uint i = 1, i_c = 1, i_x = 1; i < len; i++) { - if( phi->in(i) == con1 ) { + if (phi->in(i) == con1) { region_c->init_req( i_c++, r ->in(i) ); + if (r->in(i) == predicate_proj) + predicate_c = predicate_proj; } else { region_x->init_req( i_x, r ->in(i) ); phi_x ->init_req( i_x++, phi->in(i) ); + if (r->in(i) == predicate_proj) + predicate_x = predicate_proj; } } @@ -277,8 +291,20 @@ static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) { // Make the true/false arms Node *iff_c_t = phase->transform(new (igvn->C, 1) IfTrueNode (iff_c)); Node *iff_c_f = phase->transform(new (igvn->C, 1) IfFalseNode(iff_c)); + if (predicate_c != NULL) { + assert(predicate_x == NULL, "only one predicate entry expected"); + // Clone loop predicates to each path + iff_c_t = igvn->clone_loop_predicates(predicate_c, iff_c_t); + iff_c_f = igvn->clone_loop_predicates(predicate_c, iff_c_f); + } Node *iff_x_t = phase->transform(new (igvn->C, 1) IfTrueNode (iff_x)); Node *iff_x_f = phase->transform(new (igvn->C, 1) IfFalseNode(iff_x)); + if (predicate_x != NULL) { + assert(predicate_c == NULL, "only one predicate entry expected"); + // Clone loop predicates to each path + iff_x_t = igvn->clone_loop_predicates(predicate_x, iff_x_t); + iff_x_f = igvn->clone_loop_predicates(predicate_x, iff_x_f); + } // Merge the TRUE paths Node *region_s = new (igvn->C, 3) RegionNode(3); diff --git a/hotspot/src/share/vm/opto/lcm.cpp b/hotspot/src/share/vm/opto/lcm.cpp index 1767bce2d00..5729c7eea36 100644 --- a/hotspot/src/share/vm/opto/lcm.cpp +++ b/hotspot/src/share/vm/opto/lcm.cpp @@ -688,20 +688,22 @@ bool Block::schedule_local(PhaseCFG *cfg, Matcher &matcher, int *ready_cnt, Vect } ready_cnt[n->_idx] = local; // Count em up - // A few node types require changing a required edge to a precedence edge - // before allocation. +#ifdef ASSERT if( UseConcMarkSweepGC || UseG1GC ) { if( n->is_Mach() && n->as_Mach()->ideal_Opcode() == Op_StoreCM ) { - // Note: Required edges with an index greater than oper_input_base - // are not supported by the allocator. - // Note2: Can only depend on unmatched edge being last, - // can not depend on its absolute position. - Node *oop_store = n->in(n->req() - 1); - n->del_req(n->req() - 1); - n->add_prec(oop_store); - assert(cfg->_bbs[oop_store->_idx]->_dom_depth <= this->_dom_depth, "oop_store must dominate card-mark"); + // Check the precedence edges + for (uint prec = n->req(); prec < n->len(); prec++) { + Node* oop_store = n->in(prec); + if (oop_store != NULL) { + assert(cfg->_bbs[oop_store->_idx]->_dom_depth <= this->_dom_depth, "oop_store must dominate card-mark"); + } + } } } +#endif + + // A few node types require changing a required edge to a precedence edge + // before allocation. if( n->is_Mach() && n->req() > TypeFunc::Parms && (n->as_Mach()->ideal_Opcode() == Op_MemBarAcquire || n->as_Mach()->ideal_Opcode() == Op_MemBarVolatile) ) { diff --git a/hotspot/src/share/vm/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index be8136bf598..eeed53f6dcf 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -166,6 +166,10 @@ class LibraryCallKit : public GraphKit { // This returns Type::AnyPtr, RawPtr, or OopPtr. int classify_unsafe_addr(Node* &base, Node* &offset); Node* make_unsafe_address(Node* base, Node* offset); + // Helper for inline_unsafe_access. + // Generates the guards that check whether the result of + // Unsafe.getObject should be recorded in an SATB log buffer. + void insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* pre_val); bool inline_unsafe_access(bool is_native_ptr, bool is_store, BasicType type, bool is_volatile); bool inline_unsafe_prefetch(bool is_native_ptr, bool is_store, bool is_static); bool inline_unsafe_allocate(); @@ -240,6 +244,8 @@ class LibraryCallKit : public GraphKit { bool inline_numberOfTrailingZeros(vmIntrinsics::ID id); bool inline_bitCount(vmIntrinsics::ID id); bool inline_reverseBytes(vmIntrinsics::ID id); + + bool inline_reference_get(); }; @@ -336,6 +342,14 @@ CallGenerator* Compile::make_vm_intrinsic(ciMethod* m, bool is_virtual) { if (!UsePopCountInstruction) return NULL; break; + case vmIntrinsics::_Reference_get: + // It is only when G1 is enabled that we absolutely + // need to use the intrinsic version of Reference.get() + // so that the value in the referent field, if necessary, + // can be registered by the pre-barrier code. + if (!UseG1GC) return NULL; + break; + default: assert(id <= vmIntrinsics::LAST_COMPILER_INLINE, "caller responsibility"); assert(id != vmIntrinsics::_Object_init && id != vmIntrinsics::_invoke, "enum out of order?"); @@ -387,6 +401,7 @@ JVMState* LibraryIntrinsic::generate(JVMState* jvms) { tty->print_cr("Intrinsic %s", str); } #endif + if (kit.try_to_inline()) { if (PrintIntrinsics || PrintInlining NOT_PRODUCT( || PrintOptoInlining) ) { CompileTask::print_inlining(kit.callee(), jvms->depth() - 1, kit.bci(), is_virtual() ? "(intrinsic, virtual)" : "(intrinsic)"); @@ -402,11 +417,19 @@ JVMState* LibraryIntrinsic::generate(JVMState* jvms) { } if (PrintIntrinsics) { - tty->print("Did not inline intrinsic %s%s at bci:%d in", + if (jvms->has_method()) { + // Not a root compile. + tty->print("Did not inline intrinsic %s%s at bci:%d in", + vmIntrinsics::name_at(intrinsic_id()), + (is_virtual() ? " (virtual)" : ""), kit.bci()); + kit.caller()->print_short_name(tty); + tty->print_cr(" (%d bytes)", kit.caller()->code_size()); + } else { + // Root compile + tty->print("Did not generate intrinsic %s%s at bci:%d in", vmIntrinsics::name_at(intrinsic_id()), (is_virtual() ? " (virtual)" : ""), kit.bci()); - kit.caller()->print_short_name(tty); - tty->print_cr(" (%d bytes)", kit.caller()->code_size()); + } } C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_failed); return NULL; @@ -418,6 +441,14 @@ bool LibraryCallKit::try_to_inline() { const bool is_native_ptr = true; const bool is_static = true; + if (!jvms()->has_method()) { + // Root JVMState has a null method. + assert(map()->memory()->Opcode() == Op_Parm, ""); + // Insert the memory aliasing node + set_all_memory(reset_memory()); + } + assert(merged_memory(), ""); + switch (intrinsic_id()) { case vmIntrinsics::_hashCode: return inline_native_hashcode(intrinsic()->is_virtual(), !is_static); @@ -658,6 +689,9 @@ bool LibraryCallKit::try_to_inline() { case vmIntrinsics::_getCallerClass: return inline_native_Reflection_getCallerClass(); + case vmIntrinsics::_Reference_get: + return inline_reference_get(); + default: // If you get here, it may be that someone has added a new intrinsic // to the list in vmSymbols.hpp without implementing it here. @@ -1120,7 +1154,7 @@ Node* LibraryCallKit::string_indexOf(Node* string_object, ciTypeArray* target_ar const TypeAry* target_array_type = TypeAry::make(TypeInt::CHAR, TypeInt::make(0, target_length, Type::WidenMin)); const TypeAryPtr* target_type = TypeAryPtr::make(TypePtr::BotPTR, target_array_type, target_array->klass(), true, Type::OffsetBot); - IdealKit kit(gvn(), control(), merged_memory(), false, true); + IdealKit kit(this, false, true); #define __ kit. Node* zero = __ ConI(0); Node* one = __ ConI(1); @@ -1171,7 +1205,7 @@ Node* LibraryCallKit::string_indexOf(Node* string_object, ciTypeArray* target_ar __ bind(return_); // Final sync IdealKit and GraphKit. - sync_kit(kit); + final_sync(kit); Node* result = __ value(rtn); #undef __ C->set_has_loops(true); @@ -2076,6 +2110,106 @@ bool LibraryCallKit::inline_reverseBytes(vmIntrinsics::ID id) { const static BasicType T_ADDRESS_HOLDER = T_LONG; +// Helper that guards and inserts a G1 pre-barrier. +void LibraryCallKit::insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* pre_val) { + assert(UseG1GC, "should not call this otherwise"); + + // We could be accessing the referent field of a reference object. If so, when G1 + // is enabled, we need to log the value in the referent field in an SATB buffer. + // This routine performs some compile time filters and generates suitable + // runtime filters that guard the pre-barrier code. + + // Some compile time checks. + + // If offset is a constant, is it java_lang_ref_Reference::_reference_offset? + const TypeX* otype = offset->find_intptr_t_type(); + if (otype != NULL && otype->is_con() && + otype->get_con() != java_lang_ref_Reference::referent_offset) { + // Constant offset but not the reference_offset so just return + return; + } + + // We only need to generate the runtime guards for instances. + const TypeOopPtr* btype = base_oop->bottom_type()->isa_oopptr(); + if (btype != NULL) { + if (btype->isa_aryptr()) { + // Array type so nothing to do + return; + } + + const TypeInstPtr* itype = btype->isa_instptr(); + if (itype != NULL) { + // Can the klass of base_oop be statically determined + // to be _not_ a sub-class of Reference? + ciKlass* klass = itype->klass(); + if (klass->is_subtype_of(env()->Reference_klass()) && + !env()->Reference_klass()->is_subtype_of(klass)) { + return; + } + } + } + + // The compile time filters did not reject base_oop/offset so + // we need to generate the following runtime filters + // + // if (offset == java_lang_ref_Reference::_reference_offset) { + // if (base != null) { + // if (klass(base)->reference_type() != REF_NONE)) { + // pre_barrier(_, pre_val, ...); + // } + // } + // } + + float likely = PROB_LIKELY(0.999); + float unlikely = PROB_UNLIKELY(0.999); + + IdealKit ideal(this); +#define __ ideal. + + const int reference_type_offset = instanceKlass::reference_type_offset_in_bytes() + + sizeof(oopDesc); + + Node* referent_off = __ ConX(java_lang_ref_Reference::referent_offset); + + __ if_then(offset, BoolTest::eq, referent_off, unlikely); { + __ if_then(base_oop, BoolTest::ne, null(), likely); { + + // Update graphKit memory and control from IdealKit. + sync_kit(ideal); + + Node* ref_klass_con = makecon(TypeKlassPtr::make(env()->Reference_klass())); + Node* is_instof = gen_instanceof(base_oop, ref_klass_con); + + // Update IdealKit memory and control from graphKit. + __ sync_kit(this); + + Node* one = __ ConI(1); + + __ if_then(is_instof, BoolTest::eq, one, unlikely); { + + // Update graphKit from IdeakKit. + sync_kit(ideal); + + // Use the pre-barrier to record the value in the referent field + pre_barrier(false /* do_load */, + __ ctrl(), + NULL /* obj */, NULL /* adr */, max_juint /* alias_idx */, NULL /* val */, NULL /* val_type */, + pre_val /* pre_val */, + T_OBJECT); + + // Update IdealKit from graphKit. + __ sync_kit(this); + + } __ end_if(); // _ref_type != ref_none + } __ end_if(); // base != NULL + } __ end_if(); // offset == referent_offset + + // Final sync IdealKit and GraphKit. + final_sync(ideal); +#undef __ +} + + // Interpret Unsafe.fieldOffset cookies correctly: extern jlong Unsafe_field_offset_to_byte_offset(jlong field_offset); @@ -2152,9 +2286,11 @@ bool LibraryCallKit::inline_unsafe_access(bool is_native_ptr, bool is_store, Bas // Build address expression. See the code in inline_unsafe_prefetch. Node *adr; Node *heap_base_oop = top(); + Node* offset = top(); + if (!is_native_ptr) { // The offset is a value produced by Unsafe.staticFieldOffset or Unsafe.objectFieldOffset - Node* offset = pop_pair(); + offset = pop_pair(); // The base is either a Java object or a value produced by Unsafe.staticFieldBase Node* base = pop(); // We currently rely on the cookies produced by Unsafe.xxxFieldOffset @@ -2195,6 +2331,13 @@ bool LibraryCallKit::inline_unsafe_access(bool is_native_ptr, bool is_store, Bas // or Compile::must_alias will throw a diagnostic assert.) bool need_mem_bar = (alias_type->adr_type() == TypeOopPtr::BOTTOM); + // If we are reading the value of the referent field of a Reference + // object (either by using Unsafe directly or through reflection) + // then, if G1 is enabled, we need to record the referent in an + // SATB log buffer using the pre-barrier mechanism. + bool need_read_barrier = UseG1GC && !is_native_ptr && !is_store && + offset != top() && heap_base_oop != top(); + if (!is_store && type == T_OBJECT) { // Attempt to infer a sharper value type from the offset and base type. ciKlass* sharpened_klass = NULL; @@ -2278,8 +2421,13 @@ bool LibraryCallKit::inline_unsafe_access(bool is_native_ptr, bool is_store, Bas case T_SHORT: case T_INT: case T_FLOAT: + push(p); + break; case T_OBJECT: - push( p ); + if (need_read_barrier) { + insert_g1_pre_barrier(heap_base_oop, offset, p); + } + push(p); break; case T_ADDRESS: // Cast to an int type. @@ -2318,22 +2466,20 @@ bool LibraryCallKit::inline_unsafe_access(bool is_native_ptr, bool is_store, Bas // of it. So we need to emit code to conditionally do the proper type of // store. - IdealKit ideal(gvn(), control(), merged_memory()); + IdealKit ideal(this); #define __ ideal. // QQQ who knows what probability is here?? __ if_then(heap_base_oop, BoolTest::ne, null(), PROB_UNLIKELY(0.999)); { // Sync IdealKit and graphKit. - set_all_memory( __ merged_memory()); - set_control(__ ctrl()); + sync_kit(ideal); Node* st = store_oop_to_unknown(control(), heap_base_oop, adr, adr_type, val, type); // Update IdealKit memory. - __ set_all_memory(merged_memory()); - __ set_ctrl(control()); + __ sync_kit(this); } __ else_(); { __ store(__ ctrl(), adr, val, type, alias_type->index(), is_volatile); } __ end_if(); // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); #undef __ } } @@ -2536,7 +2682,10 @@ bool LibraryCallKit::inline_unsafe_CAS(BasicType type) { case T_OBJECT: // reference stores need a store barrier. // (They don't if CAS fails, but it isn't worth checking.) - pre_barrier(control(), base, adr, alias_idx, newval, value_type->make_oopptr(), T_OBJECT); + pre_barrier(true /* do_load*/, + control(), base, adr, alias_idx, newval, value_type->make_oopptr(), + NULL /* pre_val*/, + T_OBJECT); #ifdef _LP64 if (adr->bottom_type()->is_ptr_to_narrowoop()) { Node *newval_enc = _gvn.transform(new (C, 2) EncodePNode(newval, newval->bottom_type()->make_narrowoop())); @@ -4294,81 +4443,6 @@ bool LibraryCallKit::inline_native_clone(bool is_virtual) { return true; } - -// constants for computing the copy function -enum { - COPYFUNC_UNALIGNED = 0, - COPYFUNC_ALIGNED = 1, // src, dest aligned to HeapWordSize - COPYFUNC_CONJOINT = 0, - COPYFUNC_DISJOINT = 2 // src != dest, or transfer can descend -}; - -// Note: The condition "disjoint" applies also for overlapping copies -// where an descending copy is permitted (i.e., dest_offset <= src_offset). -static address -select_arraycopy_function(BasicType t, bool aligned, bool disjoint, const char* &name, bool dest_uninitialized) { - int selector = - (aligned ? COPYFUNC_ALIGNED : COPYFUNC_UNALIGNED) + - (disjoint ? COPYFUNC_DISJOINT : COPYFUNC_CONJOINT); - -#define RETURN_STUB(xxx_arraycopy) { \ - name = #xxx_arraycopy; \ - return StubRoutines::xxx_arraycopy(); } - -#define RETURN_STUB_PARM(xxx_arraycopy, parm) { \ - name = #xxx_arraycopy; \ - return StubRoutines::xxx_arraycopy(parm); } - - switch (t) { - case T_BYTE: - case T_BOOLEAN: - switch (selector) { - case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jbyte_arraycopy); - case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jbyte_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jbyte_disjoint_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jbyte_disjoint_arraycopy); - } - case T_CHAR: - case T_SHORT: - switch (selector) { - case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jshort_arraycopy); - case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jshort_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jshort_disjoint_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jshort_disjoint_arraycopy); - } - case T_INT: - case T_FLOAT: - switch (selector) { - case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jint_arraycopy); - case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jint_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jint_disjoint_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jint_disjoint_arraycopy); - } - case T_DOUBLE: - case T_LONG: - switch (selector) { - case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jlong_arraycopy); - case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jlong_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jlong_disjoint_arraycopy); - case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jlong_disjoint_arraycopy); - } - case T_ARRAY: - case T_OBJECT: - switch (selector) { - case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB_PARM(oop_arraycopy, dest_uninitialized); - case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB_PARM(arrayof_oop_arraycopy, dest_uninitialized); - case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB_PARM(oop_disjoint_arraycopy, dest_uninitialized); - case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB_PARM(arrayof_oop_disjoint_arraycopy, dest_uninitialized); - } - default: - ShouldNotReachHere(); - return NULL; - } - -#undef RETURN_STUB -#undef RETURN_STUB_PARM -} - //------------------------------basictype2arraycopy---------------------------- address LibraryCallKit::basictype2arraycopy(BasicType t, Node* src_offset, @@ -4401,7 +4475,7 @@ address LibraryCallKit::basictype2arraycopy(BasicType t, disjoint = true; } - return select_arraycopy_function(t, aligned, disjoint, name, dest_uninitialized); + return StubRoutines::select_arraycopy_function(t, aligned, disjoint, name, dest_uninitialized); } @@ -5312,3 +5386,44 @@ LibraryCallKit::generate_unchecked_arraycopy(const TypePtr* adr_type, copyfunc_addr, copyfunc_name, adr_type, src_start, dest_start, copy_length XTOP); } + +//----------------------------inline_reference_get---------------------------- + +bool LibraryCallKit::inline_reference_get() { + const int nargs = 1; // self + + guarantee(java_lang_ref_Reference::referent_offset > 0, + "should have already been set"); + + int referent_offset = java_lang_ref_Reference::referent_offset; + + // Restore the stack and pop off the argument + _sp += nargs; + Node *reference_obj = pop(); + + // Null check on self without removing any arguments. + _sp += nargs; + reference_obj = do_null_check(reference_obj, T_OBJECT); + _sp -= nargs;; + + if (stopped()) return true; + + Node *adr = basic_plus_adr(reference_obj, reference_obj, referent_offset); + + ciInstanceKlass* klass = env()->Object_klass(); + const TypeOopPtr* object_type = TypeOopPtr::make_from_klass(klass); + + Node* no_ctrl = NULL; + Node *result = make_load(no_ctrl, adr, object_type, T_OBJECT); + + // Use the pre-barrier to record the value in the referent field + pre_barrier(false /* do_load */, + control(), + NULL /* obj */, NULL /* adr */, max_juint /* alias_idx */, NULL /* val */, NULL /* val_type */, + result /* pre_val */, + T_OBJECT); + + push(result); + return true; +} + diff --git a/hotspot/src/share/vm/opto/loopPredicate.cpp b/hotspot/src/share/vm/opto/loopPredicate.cpp new file mode 100644 index 00000000000..c5ac2c68200 --- /dev/null +++ b/hotspot/src/share/vm/opto/loopPredicate.cpp @@ -0,0 +1,960 @@ +/* + * 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. + * + */ + +#include "precompiled.hpp" +#include "opto/loopnode.hpp" +#include "opto/addnode.hpp" +#include "opto/callnode.hpp" +#include "opto/connode.hpp" +#include "opto/loopnode.hpp" +#include "opto/mulnode.hpp" +#include "opto/rootnode.hpp" +#include "opto/subnode.hpp" + +/* + * The general idea of Loop Predication is to insert a predicate on the entry + * path to a loop, and raise a uncommon trap if the check of the condition fails. + * The condition checks are promoted from inside the loop body, and thus + * the checks inside the loop could be eliminated. Currently, loop predication + * optimization has been applied to remove array range check and loop invariant + * checks (such as null checks). +*/ + +//-------------------------------is_uncommon_trap_proj---------------------------- +// Return true if proj is the form of "proj->[region->..]call_uct" +bool PhaseIdealLoop::is_uncommon_trap_proj(ProjNode* proj, Deoptimization::DeoptReason reason) { + int path_limit = 10; + assert(proj, "invalid argument"); + Node* out = proj; + for (int ct = 0; ct < path_limit; ct++) { + out = out->unique_ctrl_out(); + if (out == NULL) + return false; + if (out->is_CallStaticJava()) { + int req = out->as_CallStaticJava()->uncommon_trap_request(); + if (req != 0) { + Deoptimization::DeoptReason trap_reason = Deoptimization::trap_request_reason(req); + if (trap_reason == reason || reason == Deoptimization::Reason_none) { + return true; + } + } + return false; // don't do further after call + } + if (out->Opcode() != Op_Region) + return false; + } + return false; +} + +//-------------------------------is_uncommon_trap_if_pattern------------------------- +// Return true for "if(test)-> proj -> ... +// | +// V +// other_proj->[region->..]call_uct" +// +// "must_reason_predicate" means the uct reason must be Reason_predicate +bool PhaseIdealLoop::is_uncommon_trap_if_pattern(ProjNode *proj, Deoptimization::DeoptReason reason) { + Node *in0 = proj->in(0); + if (!in0->is_If()) return false; + // Variation of a dead If node. + if (in0->outcnt() < 2) return false; + IfNode* iff = in0->as_If(); + + // we need "If(Conv2B(Opaque1(...)))" pattern for reason_predicate + if (reason != Deoptimization::Reason_none) { + if (iff->in(1)->Opcode() != Op_Conv2B || + iff->in(1)->in(1)->Opcode() != Op_Opaque1) { + return false; + } + } + + ProjNode* other_proj = iff->proj_out(1-proj->_con)->as_Proj(); + if (is_uncommon_trap_proj(other_proj, reason)) { + assert(reason == Deoptimization::Reason_none || + Compile::current()->is_predicate_opaq(iff->in(1)->in(1)), "should be on the list"); + return true; + } + return false; +} + +//-------------------------------register_control------------------------- +void PhaseIdealLoop::register_control(Node* n, IdealLoopTree *loop, Node* pred) { + assert(n->is_CFG(), "must be control node"); + _igvn.register_new_node_with_optimizer(n); + loop->_body.push(n); + set_loop(n, loop); + // When called from beautify_loops() idom is not constructed yet. + if (_idom != NULL) { + set_idom(n, pred, dom_depth(pred)); + } +} + +//------------------------------create_new_if_for_predicate------------------------ +// create a new if above the uct_if_pattern for the predicate to be promoted. +// +// before after +// ---------- ---------- +// ctrl ctrl +// | | +// | | +// v v +// iff new_iff +// / \ / \ +// / \ / \ +// v v v v +// uncommon_proj cont_proj if_uct if_cont +// \ | | | | +// \ | | | | +// v v v | v +// rgn loop | iff +// | | / \ +// | | / \ +// v | v v +// uncommon_trap | uncommon_proj cont_proj +// \ \ | | +// \ \ | | +// v v v v +// rgn loop +// | +// | +// v +// uncommon_trap +// +// +// We will create a region to guard the uct call if there is no one there. +// The true projecttion (if_cont) of the new_iff is returned. +// This code is also used to clone predicates to clonned loops. +ProjNode* PhaseIdealLoop::create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, + Deoptimization::DeoptReason reason) { + assert(is_uncommon_trap_if_pattern(cont_proj, reason), "must be a uct if pattern!"); + IfNode* iff = cont_proj->in(0)->as_If(); + + ProjNode *uncommon_proj = iff->proj_out(1 - cont_proj->_con); + Node *rgn = uncommon_proj->unique_ctrl_out(); + assert(rgn->is_Region() || rgn->is_Call(), "must be a region or call uct"); + + uint proj_index = 1; // region's edge corresponding to uncommon_proj + if (!rgn->is_Region()) { // create a region to guard the call + assert(rgn->is_Call(), "must be call uct"); + CallNode* call = rgn->as_Call(); + IdealLoopTree* loop = get_loop(call); + rgn = new (C, 1) RegionNode(1); + rgn->add_req(uncommon_proj); + register_control(rgn, loop, uncommon_proj); + _igvn.hash_delete(call); + call->set_req(0, rgn); + // When called from beautify_loops() idom is not constructed yet. + if (_idom != NULL) { + set_idom(call, rgn, dom_depth(rgn)); + } + } else { + // Find region's edge corresponding to uncommon_proj + for (; proj_index < rgn->req(); proj_index++) + if (rgn->in(proj_index) == uncommon_proj) break; + assert(proj_index < rgn->req(), "sanity"); + } + + Node* entry = iff->in(0); + if (new_entry != NULL) { + // Clonning the predicate to new location. + entry = new_entry; + } + // Create new_iff + IdealLoopTree* lp = get_loop(entry); + IfNode *new_iff = iff->clone()->as_If(); + new_iff->set_req(0, entry); + register_control(new_iff, lp, entry); + Node *if_cont = new (C, 1) IfTrueNode(new_iff); + Node *if_uct = new (C, 1) IfFalseNode(new_iff); + if (cont_proj->is_IfFalse()) { + // Swap + Node* tmp = if_uct; if_uct = if_cont; if_cont = tmp; + } + register_control(if_cont, lp, new_iff); + register_control(if_uct, get_loop(rgn), new_iff); + + // if_uct to rgn + _igvn.hash_delete(rgn); + rgn->add_req(if_uct); + // When called from beautify_loops() idom is not constructed yet. + if (_idom != NULL) { + Node* ridom = idom(rgn); + Node* nrdom = dom_lca(ridom, new_iff); + set_idom(rgn, nrdom, dom_depth(rgn)); + } + + // If rgn has phis add new edges which has the same + // value as on original uncommon_proj pass. + assert(rgn->in(rgn->req() -1) == if_uct, "new edge should be last"); + bool has_phi = false; + for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { + Node* use = rgn->fast_out(i); + if (use->is_Phi() && use->outcnt() > 0) { + assert(use->in(0) == rgn, ""); + _igvn.hash_delete(use); + use->add_req(use->in(proj_index)); + _igvn._worklist.push(use); + has_phi = true; + } + } + assert(!has_phi || rgn->req() > 3, "no phis when region is created"); + + if (new_entry == NULL) { + // Attach if_cont to iff + _igvn.hash_delete(iff); + iff->set_req(0, if_cont); + if (_idom != NULL) { + set_idom(iff, if_cont, dom_depth(iff)); + } + } + return if_cont->as_Proj(); +} + +//------------------------------create_new_if_for_predicate------------------------ +// Create a new if below new_entry for the predicate to be cloned (IGVN optimization) +ProjNode* PhaseIterGVN::create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, + Deoptimization::DeoptReason reason) { + assert(new_entry != 0, "only used for clone predicate"); + assert(PhaseIdealLoop::is_uncommon_trap_if_pattern(cont_proj, reason), "must be a uct if pattern!"); + IfNode* iff = cont_proj->in(0)->as_If(); + + ProjNode *uncommon_proj = iff->proj_out(1 - cont_proj->_con); + Node *rgn = uncommon_proj->unique_ctrl_out(); + assert(rgn->is_Region() || rgn->is_Call(), "must be a region or call uct"); + + uint proj_index = 1; // region's edge corresponding to uncommon_proj + if (!rgn->is_Region()) { // create a region to guard the call + assert(rgn->is_Call(), "must be call uct"); + CallNode* call = rgn->as_Call(); + rgn = new (C, 1) RegionNode(1); + register_new_node_with_optimizer(rgn); + rgn->add_req(uncommon_proj); + hash_delete(call); + call->set_req(0, rgn); + } else { + // Find region's edge corresponding to uncommon_proj + for (; proj_index < rgn->req(); proj_index++) + if (rgn->in(proj_index) == uncommon_proj) break; + assert(proj_index < rgn->req(), "sanity"); + } + + // Create new_iff in new location. + IfNode *new_iff = iff->clone()->as_If(); + new_iff->set_req(0, new_entry); + + register_new_node_with_optimizer(new_iff); + Node *if_cont = new (C, 1) IfTrueNode(new_iff); + Node *if_uct = new (C, 1) IfFalseNode(new_iff); + if (cont_proj->is_IfFalse()) { + // Swap + Node* tmp = if_uct; if_uct = if_cont; if_cont = tmp; + } + register_new_node_with_optimizer(if_cont); + register_new_node_with_optimizer(if_uct); + + // if_uct to rgn + hash_delete(rgn); + rgn->add_req(if_uct); + + // If rgn has phis add corresponding new edges which has the same + // value as on original uncommon_proj pass. + assert(rgn->in(rgn->req() -1) == if_uct, "new edge should be last"); + bool has_phi = false; + for (DUIterator_Fast imax, i = rgn->fast_outs(imax); i < imax; i++) { + Node* use = rgn->fast_out(i); + if (use->is_Phi() && use->outcnt() > 0) { + hash_delete(use); + use->add_req(use->in(proj_index)); + _worklist.push(use); + has_phi = true; + } + } + assert(!has_phi || rgn->req() > 3, "no phis when region is created"); + + return if_cont->as_Proj(); +} + +//--------------------------clone_predicate----------------------- +ProjNode* PhaseIdealLoop::clone_predicate(ProjNode* predicate_proj, Node* new_entry, + Deoptimization::DeoptReason reason, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn) { + ProjNode* new_predicate_proj; + if (loop_phase != NULL) { + new_predicate_proj = loop_phase->create_new_if_for_predicate(predicate_proj, new_entry, reason); + } else { + new_predicate_proj = igvn->create_new_if_for_predicate(predicate_proj, new_entry, reason); + } + IfNode* iff = new_predicate_proj->in(0)->as_If(); + Node* ctrl = iff->in(0); + + // Match original condition since predicate's projections could be swapped. + assert(predicate_proj->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); + Node* opq = new (igvn->C, 2) Opaque1Node(igvn->C, predicate_proj->in(0)->in(1)->in(1)->in(1)); + igvn->C->add_predicate_opaq(opq); + + Node* bol = new (igvn->C, 2) Conv2BNode(opq); + if (loop_phase != NULL) { + loop_phase->register_new_node(opq, ctrl); + loop_phase->register_new_node(bol, ctrl); + } else { + igvn->register_new_node_with_optimizer(opq); + igvn->register_new_node_with_optimizer(bol); + } + igvn->hash_delete(iff); + iff->set_req(1, bol); + return new_predicate_proj; +} + +//--------------------------move_predicate----------------------- +// Cut predicate from old place and move it to new. +ProjNode* PhaseIdealLoop::move_predicate(ProjNode* predicate_proj, Node* new_entry, + Deoptimization::DeoptReason reason, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn) { + assert(new_entry != NULL, "must be"); + assert(predicate_proj->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); + IfNode* iff = predicate_proj->in(0)->as_If(); + Node* old_entry = iff->in(0); + + // Cut predicate from old place. + Node* old = predicate_proj; + igvn->_worklist.push(old); + for (DUIterator_Last imin, i = old->last_outs(imin); i >= imin; ) { + Node* use = old->last_out(i); // for each use... + igvn->hash_delete(use); + igvn->_worklist.push(use); + // Update use-def info + uint uses_found = 0; + for (uint j = 0; j < use->req(); j++) { + if (use->in(j) == old) { + use->set_req(j, old_entry); + uses_found++; + if (loop_phase != NULL) { + if (use->is_CFG()) { + // When called from beautify_loops() idom is not constructed yet. + if (loop_phase->_idom != NULL) + loop_phase->set_idom(use, old_entry, loop_phase->dom_depth(use)); + } else { + loop_phase->set_ctrl(use, old_entry); + } + } + } + } + i -= uses_found; // we deleted 1 or more copies of this edge + } + + // Move predicate. + igvn->hash_delete(iff); + iff->set_req(0, new_entry); + igvn->_worklist.push(iff); + + if (loop_phase != NULL) { + // Fix up idom and ctrl. + loop_phase->set_ctrl(iff->in(1), new_entry); + loop_phase->set_ctrl(iff->in(1)->in(1), new_entry); + // When called from beautify_loops() idom is not constructed yet. + if (loop_phase->_idom != NULL) + loop_phase->set_idom(iff, new_entry, loop_phase->dom_depth(iff)); + } + + return predicate_proj; +} + +//--------------------------clone_loop_predicates----------------------- +// Interface from IGVN +Node* PhaseIterGVN::clone_loop_predicates(Node* old_entry, Node* new_entry) { + return PhaseIdealLoop::clone_loop_predicates(old_entry, new_entry, false, NULL, this); +} +Node* PhaseIterGVN::move_loop_predicates(Node* old_entry, Node* new_entry) { + return PhaseIdealLoop::clone_loop_predicates(old_entry, new_entry, true, NULL, this); +} + +// Interface from PhaseIdealLoop +Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry) { + return clone_loop_predicates(old_entry, new_entry, false, this, &this->_igvn); +} +Node* PhaseIdealLoop::move_loop_predicates(Node* old_entry, Node* new_entry) { + return clone_loop_predicates(old_entry, new_entry, true, this, &this->_igvn); +} + +// Clone loop predicates to cloned loops (peeled, unswitched, split_if). +Node* PhaseIdealLoop::clone_loop_predicates(Node* old_entry, Node* new_entry, + bool move_predicates, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn) { +#ifdef ASSERT + if (new_entry == NULL || !(new_entry->is_Proj() || new_entry->is_Region() || new_entry->is_SafePoint())) { + if (new_entry != NULL) + new_entry->dump(); + assert(false, "not IfTrue, IfFalse, Region or SafePoint"); + } +#endif + // Search original predicates + Node* entry = old_entry; + if (UseLoopPredicate) { + ProjNode* predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); + if (predicate_proj != NULL) { // right pattern that can be used by loop predication + assert(entry->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); + if (move_predicates) { + new_entry = move_predicate(predicate_proj, new_entry, + Deoptimization::Reason_predicate, + loop_phase, igvn); + assert(new_entry == predicate_proj, "old predicate fall through projection"); + } else { + // clone predicate + new_entry = clone_predicate(predicate_proj, new_entry, + Deoptimization::Reason_predicate, + loop_phase, igvn); + assert(new_entry != NULL && new_entry->is_Proj(), "IfTrue or IfFalse after clone predicate"); + } + if (TraceLoopPredicate) { + tty->print_cr("Loop Predicate %s: ", move_predicates ? "moved" : "cloned"); + debug_only( new_entry->in(0)->dump(); ) + } + } + } + return new_entry; +} + +//--------------------------eliminate_loop_predicates----------------------- +void PhaseIdealLoop::eliminate_loop_predicates(Node* entry) { + if (UseLoopPredicate) { + ProjNode* predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); + if (predicate_proj != NULL) { // right pattern that can be used by loop predication + Node* n = entry->in(0)->in(1)->in(1); + assert(n->Opcode()==Op_Opaque1, "must be"); + // Remove Opaque1 node from predicates list. + // IGVN will remove this predicate check. + _igvn.replace_node(n, n->in(1)); + } + } +} + +//--------------------------skip_loop_predicates------------------------------ +// Skip related predicates. +Node* PhaseIdealLoop::skip_loop_predicates(Node* entry) { + Node* predicate = NULL; + if (UseLoopPredicate) { + predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); + if (predicate != NULL) { // right pattern that can be used by loop predication + assert(entry->is_Proj() && entry->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); + IfNode* iff = entry->in(0)->as_If(); + ProjNode* uncommon_proj = iff->proj_out(1 - entry->as_Proj()->_con); + Node* rgn = uncommon_proj->unique_ctrl_out(); + assert(rgn->is_Region() || rgn->is_Call(), "must be a region or call uct"); + entry = entry->in(0)->in(0); + while (entry != NULL && entry->is_Proj() && entry->in(0)->is_If()) { + uncommon_proj = entry->in(0)->as_If()->proj_out(1 - entry->as_Proj()->_con); + if (uncommon_proj->unique_ctrl_out() != rgn) + break; + entry = entry->in(0)->in(0); + } + } + } + return entry; +} + +//--------------------------find_predicate_insertion_point------------------- +// Find a good location to insert a predicate +ProjNode* PhaseIdealLoop::find_predicate_insertion_point(Node* start_c, Deoptimization::DeoptReason reason) { + if (start_c == NULL || !start_c->is_Proj()) + return NULL; + if (is_uncommon_trap_if_pattern(start_c->as_Proj(), reason)) { + return start_c->as_Proj(); + } + return NULL; +} + +//--------------------------find_predicate------------------------------------ +// Find a predicate +Node* PhaseIdealLoop::find_predicate(Node* entry) { + Node* predicate = NULL; + if (UseLoopPredicate) { + predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); + if (predicate != NULL) { // right pattern that can be used by loop predication + assert(entry->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); + return entry; + } + } + return NULL; +} + +//------------------------------Invariance----------------------------------- +// Helper class for loop_predication_impl to compute invariance on the fly and +// clone invariants. +class Invariance : public StackObj { + VectorSet _visited, _invariant; + Node_Stack _stack; + VectorSet _clone_visited; + Node_List _old_new; // map of old to new (clone) + IdealLoopTree* _lpt; + PhaseIdealLoop* _phase; + + // Helper function to set up the invariance for invariance computation + // If n is a known invariant, set up directly. Otherwise, look up the + // the possibility to push n onto the stack for further processing. + void visit(Node* use, Node* n) { + if (_lpt->is_invariant(n)) { // known invariant + _invariant.set(n->_idx); + } else if (!n->is_CFG()) { + Node *n_ctrl = _phase->ctrl_or_self(n); + Node *u_ctrl = _phase->ctrl_or_self(use); // self if use is a CFG + if (_phase->is_dominator(n_ctrl, u_ctrl)) { + _stack.push(n, n->in(0) == NULL ? 1 : 0); + } + } + } + + // Compute invariance for "the_node" and (possibly) all its inputs recursively + // on the fly + void compute_invariance(Node* n) { + assert(_visited.test(n->_idx), "must be"); + visit(n, n); + while (_stack.is_nonempty()) { + Node* n = _stack.node(); + uint idx = _stack.index(); + if (idx == n->req()) { // all inputs are processed + _stack.pop(); + // n is invariant if it's inputs are all invariant + bool all_inputs_invariant = true; + for (uint i = 0; i < n->req(); i++) { + Node* in = n->in(i); + if (in == NULL) continue; + assert(_visited.test(in->_idx), "must have visited input"); + if (!_invariant.test(in->_idx)) { // bad guy + all_inputs_invariant = false; + break; + } + } + if (all_inputs_invariant) { + _invariant.set(n->_idx); // I am a invariant too + } + } else { // process next input + _stack.set_index(idx + 1); + Node* m = n->in(idx); + if (m != NULL && !_visited.test_set(m->_idx)) { + visit(n, m); + } + } + } + } + + // Helper function to set up _old_new map for clone_nodes. + // If n is a known invariant, set up directly ("clone" of n == n). + // Otherwise, push n onto the stack for real cloning. + void clone_visit(Node* n) { + assert(_invariant.test(n->_idx), "must be invariant"); + if (_lpt->is_invariant(n)) { // known invariant + _old_new.map(n->_idx, n); + } else { // to be cloned + assert(!n->is_CFG(), "should not see CFG here"); + _stack.push(n, n->in(0) == NULL ? 1 : 0); + } + } + + // Clone "n" and (possibly) all its inputs recursively + void clone_nodes(Node* n, Node* ctrl) { + clone_visit(n); + while (_stack.is_nonempty()) { + Node* n = _stack.node(); + uint idx = _stack.index(); + if (idx == n->req()) { // all inputs processed, clone n! + _stack.pop(); + // clone invariant node + Node* n_cl = n->clone(); + _old_new.map(n->_idx, n_cl); + _phase->register_new_node(n_cl, ctrl); + for (uint i = 0; i < n->req(); i++) { + Node* in = n_cl->in(i); + if (in == NULL) continue; + n_cl->set_req(i, _old_new[in->_idx]); + } + } else { // process next input + _stack.set_index(idx + 1); + Node* m = n->in(idx); + if (m != NULL && !_clone_visited.test_set(m->_idx)) { + clone_visit(m); // visit the input + } + } + } + } + + public: + Invariance(Arena* area, IdealLoopTree* lpt) : + _lpt(lpt), _phase(lpt->_phase), + _visited(area), _invariant(area), _stack(area, 10 /* guess */), + _clone_visited(area), _old_new(area) + {} + + // Map old to n for invariance computation and clone + void map_ctrl(Node* old, Node* n) { + assert(old->is_CFG() && n->is_CFG(), "must be"); + _old_new.map(old->_idx, n); // "clone" of old is n + _invariant.set(old->_idx); // old is invariant + _clone_visited.set(old->_idx); + } + + // Driver function to compute invariance + bool is_invariant(Node* n) { + if (!_visited.test_set(n->_idx)) + compute_invariance(n); + return (_invariant.test(n->_idx) != 0); + } + + // Driver function to clone invariant + Node* clone(Node* n, Node* ctrl) { + assert(ctrl->is_CFG(), "must be"); + assert(_invariant.test(n->_idx), "must be an invariant"); + if (!_clone_visited.test(n->_idx)) + clone_nodes(n, ctrl); + return _old_new[n->_idx]; + } +}; + +//------------------------------is_range_check_if ----------------------------------- +// Returns true if the predicate of iff is in "scale*iv + offset u< load_range(ptr)" format +// Note: this function is particularly designed for loop predication. We require load_range +// and offset to be loop invariant computed on the fly by "invar" +bool IdealLoopTree::is_range_check_if(IfNode *iff, PhaseIdealLoop *phase, Invariance& invar) const { + if (!is_loop_exit(iff)) { + return false; + } + if (!iff->in(1)->is_Bool()) { + return false; + } + const BoolNode *bol = iff->in(1)->as_Bool(); + if (bol->_test._test != BoolTest::lt) { + return false; + } + if (!bol->in(1)->is_Cmp()) { + return false; + } + const CmpNode *cmp = bol->in(1)->as_Cmp(); + if (cmp->Opcode() != Op_CmpU) { + return false; + } + Node* range = cmp->in(2); + if (range->Opcode() != Op_LoadRange) { + const TypeInt* tint = phase->_igvn.type(range)->isa_int(); + if (!OptimizeFill || tint == NULL || tint->empty() || tint->_lo < 0) { + // Allow predication on positive values that aren't LoadRanges. + // This allows optimization of loops where the length of the + // array is a known value and doesn't need to be loaded back + // from the array. + return false; + } + } + if (!invar.is_invariant(range)) { + return false; + } + Node *iv = _head->as_CountedLoop()->phi(); + int scale = 0; + Node *offset = NULL; + if (!phase->is_scaled_iv_plus_offset(cmp->in(1), iv, &scale, &offset)) { + return false; + } + if (offset && !invar.is_invariant(offset)) { // offset must be invariant + return false; + } + return true; +} + +//------------------------------rc_predicate----------------------------------- +// Create a range check predicate +// +// for (i = init; i < limit; i += stride) { +// a[scale*i+offset] +// } +// +// Compute max(scale*i + offset) for init <= i < limit and build the predicate +// as "max(scale*i + offset) u< a.length". +// +// There are two cases for max(scale*i + offset): +// (1) stride*scale > 0 +// max(scale*i + offset) = scale*(limit-stride) + offset +// (2) stride*scale < 0 +// max(scale*i + offset) = scale*init + offset +BoolNode* PhaseIdealLoop::rc_predicate(Node* ctrl, + int scale, Node* offset, + Node* init, Node* limit, Node* stride, + Node* range, bool upper) { + DEBUG_ONLY(ttyLocker ttyl); + if (TraceLoopPredicate) tty->print("rc_predicate "); + + Node* max_idx_expr = init; + int stride_con = stride->get_int(); + if ((stride_con > 0) == (scale > 0) == upper) { + max_idx_expr = new (C, 3) SubINode(limit, stride); + register_new_node(max_idx_expr, ctrl); + if (TraceLoopPredicate) tty->print("(limit - stride) "); + } else { + if (TraceLoopPredicate) tty->print("init "); + } + + if (scale != 1) { + ConNode* con_scale = _igvn.intcon(scale); + max_idx_expr = new (C, 3) MulINode(max_idx_expr, con_scale); + register_new_node(max_idx_expr, ctrl); + if (TraceLoopPredicate) tty->print("* %d ", scale); + } + + if (offset && (!offset->is_Con() || offset->get_int() != 0)){ + max_idx_expr = new (C, 3) AddINode(max_idx_expr, offset); + register_new_node(max_idx_expr, ctrl); + if (TraceLoopPredicate) + if (offset->is_Con()) tty->print("+ %d ", offset->get_int()); + else tty->print("+ offset "); + } + + CmpUNode* cmp = new (C, 3) CmpUNode(max_idx_expr, range); + register_new_node(cmp, ctrl); + BoolNode* bol = new (C, 2) BoolNode(cmp, BoolTest::lt); + register_new_node(bol, ctrl); + + if (TraceLoopPredicate) tty->print_cr("_head->is_Loop()) { + // Could be a simple region when irreducible loops are present. + return false; + } + + if (loop->_head->unique_ctrl_out()->Opcode() == Op_NeverBranch) { + // do nothing for infinite loops + return false; + } + + CountedLoopNode *cl = NULL; + if (loop->_head->is_CountedLoop()) { + cl = loop->_head->as_CountedLoop(); + // do nothing for iteration-splitted loops + if (!cl->is_normal_loop()) return false; + } + + LoopNode *lpn = loop->_head->as_Loop(); + Node* entry = lpn->in(LoopNode::EntryControl); + + ProjNode *predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); + if (!predicate_proj) { +#ifndef PRODUCT + if (TraceLoopPredicate) { + tty->print("missing predicate:"); + loop->dump_head(); + lpn->dump(1); + } +#endif + return false; + } + ConNode* zero = _igvn.intcon(0); + set_ctrl(zero, C->root()); + + ResourceArea *area = Thread::current()->resource_area(); + Invariance invar(area, loop); + + // Create list of if-projs such that a newer proj dominates all older + // projs in the list, and they all dominate loop->tail() + Node_List if_proj_list(area); + LoopNode *head = loop->_head->as_Loop(); + Node *current_proj = loop->tail(); //start from tail + while (current_proj != head) { + if (loop == get_loop(current_proj) && // still in the loop ? + current_proj->is_Proj() && // is a projection ? + current_proj->in(0)->Opcode() == Op_If) { // is a if projection ? + if_proj_list.push(current_proj); + } + current_proj = idom(current_proj); + } + + bool hoisted = false; // true if at least one proj is promoted + while (if_proj_list.size() > 0) { + // Following are changed to nonnull when a predicate can be hoisted + ProjNode* new_predicate_proj = NULL; + + ProjNode* proj = if_proj_list.pop()->as_Proj(); + IfNode* iff = proj->in(0)->as_If(); + + if (!is_uncommon_trap_if_pattern(proj, Deoptimization::Reason_none)) { + if (loop->is_loop_exit(iff)) { + // stop processing the remaining projs in the list because the execution of them + // depends on the condition of "iff" (iff->in(1)). + break; + } else { + // Both arms are inside the loop. There are two cases: + // (1) there is one backward branch. In this case, any remaining proj + // in the if_proj list post-dominates "iff". So, the condition of "iff" + // does not determine the execution the remining projs directly, and we + // can safely continue. + // (2) both arms are forwarded, i.e. a diamond shape. In this case, "proj" + // does not dominate loop->tail(), so it can not be in the if_proj list. + continue; + } + } + + Node* test = iff->in(1); + if (!test->is_Bool()){ //Conv2B, ... + continue; + } + BoolNode* bol = test->as_Bool(); + if (invar.is_invariant(bol)) { + // Invariant test + new_predicate_proj = create_new_if_for_predicate(predicate_proj, NULL, + Deoptimization::Reason_predicate); + Node* ctrl = new_predicate_proj->in(0)->as_If()->in(0); + BoolNode* new_predicate_bol = invar.clone(bol, ctrl)->as_Bool(); + + // Negate test if necessary + bool negated = false; + if (proj->_con != predicate_proj->_con) { + new_predicate_bol = new (C, 2) BoolNode(new_predicate_bol->in(1), new_predicate_bol->_test.negate()); + register_new_node(new_predicate_bol, ctrl); + negated = true; + } + IfNode* new_predicate_iff = new_predicate_proj->in(0)->as_If(); + _igvn.hash_delete(new_predicate_iff); + new_predicate_iff->set_req(1, new_predicate_bol); +#ifndef PRODUCT + if (TraceLoopPredicate) { + tty->print("Predicate invariant if%s: %d ", negated ? " negated" : "", new_predicate_iff->_idx); + loop->dump_head(); + } else if (TraceLoopOpts) { + tty->print("Predicate IC "); + loop->dump_head(); + } +#endif + } else if (cl != NULL && loop->is_range_check_if(iff, this, invar)) { + assert(proj->_con == predicate_proj->_con, "must match"); + + // Range check for counted loops + const Node* cmp = bol->in(1)->as_Cmp(); + Node* idx = cmp->in(1); + assert(!invar.is_invariant(idx), "index is variant"); + assert(cmp->in(2)->Opcode() == Op_LoadRange || OptimizeFill, "must be"); + Node* rng = cmp->in(2); + assert(invar.is_invariant(rng), "range must be invariant"); + int scale = 1; + Node* offset = zero; + bool ok = is_scaled_iv_plus_offset(idx, cl->phi(), &scale, &offset); + assert(ok, "must be index expression"); + + Node* init = cl->init_trip(); + Node* limit = cl->limit(); + Node* stride = cl->stride(); + + // Build if's for the upper and lower bound tests. The + // lower_bound test will dominate the upper bound test and all + // cloned or created nodes will use the lower bound test as + // their declared control. + ProjNode* lower_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate); + ProjNode* upper_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate); + assert(upper_bound_proj->in(0)->as_If()->in(0) == lower_bound_proj, "should dominate"); + Node *ctrl = lower_bound_proj->in(0)->as_If()->in(0); + + // Perform cloning to keep Invariance state correct since the + // late schedule will place invariant things in the loop. + rng = invar.clone(rng, ctrl); + if (offset && offset != zero) { + assert(invar.is_invariant(offset), "offset must be loop invariant"); + offset = invar.clone(offset, ctrl); + } + + // Test the lower bound + Node* lower_bound_bol = rc_predicate(ctrl, scale, offset, init, limit, stride, rng, false); + IfNode* lower_bound_iff = lower_bound_proj->in(0)->as_If(); + _igvn.hash_delete(lower_bound_iff); + lower_bound_iff->set_req(1, lower_bound_bol); + if (TraceLoopPredicate) tty->print_cr("lower bound check if: %d", lower_bound_iff->_idx); + + // Test the upper bound + Node* upper_bound_bol = rc_predicate(ctrl, scale, offset, init, limit, stride, rng, true); + IfNode* upper_bound_iff = upper_bound_proj->in(0)->as_If(); + _igvn.hash_delete(upper_bound_iff); + upper_bound_iff->set_req(1, upper_bound_bol); + if (TraceLoopPredicate) tty->print_cr("upper bound check if: %d", lower_bound_iff->_idx); + + // Fall through into rest of the clean up code which will move + // any dependent nodes onto the upper bound test. + new_predicate_proj = upper_bound_proj; + +#ifndef PRODUCT + if (TraceLoopOpts && !TraceLoopPredicate) { + tty->print("Predicate RC "); + loop->dump_head(); + } +#endif + } else { + // Loop variant check (for example, range check in non-counted loop) + // with uncommon trap. + continue; + } + assert(new_predicate_proj != NULL, "sanity"); + // Success - attach condition (new_predicate_bol) to predicate if + invar.map_ctrl(proj, new_predicate_proj); // so that invariance test can be appropriate + + // Eliminate the old If in the loop body + dominated_by( new_predicate_proj, iff, proj->_con != new_predicate_proj->_con ); + + hoisted = true; + C->set_major_progress(); + } // end while + +#ifndef PRODUCT + // report that the loop predication has been actually performed + // for this loop + if (TraceLoopPredicate && hoisted) { + tty->print("Loop Predication Performed:"); + loop->dump_head(); + } +#endif + + return hoisted; +} + +//------------------------------loop_predication-------------------------------- +// driver routine for loop predication optimization +bool IdealLoopTree::loop_predication( PhaseIdealLoop *phase) { + bool hoisted = false; + // Recursively promote predicates + if (_child) { + hoisted = _child->loop_predication( phase); + } + + // self + if (!_irreducible && !tail()->is_top()) { + hoisted |= phase->loop_predication_impl(this); + } + + if (_next) { //sibling + hoisted |= _next->loop_predication( phase); + } + + return hoisted; +} + diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 9c5a7e034fd..b182f4e4f07 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -63,6 +63,46 @@ void IdealLoopTree::record_for_igvn() { } } +//------------------------------compute_exact_trip_count----------------------- +// Compute loop exact trip count if possible. Do not recalculate trip count for +// split loops (pre-main-post) which have their limits and inits behind Opaque node. +void IdealLoopTree::compute_exact_trip_count( PhaseIdealLoop *phase ) { + if (!_head->as_Loop()->is_valid_counted_loop()) { + return; + } + CountedLoopNode* cl = _head->as_CountedLoop(); + // Trip count may become nonexact for iteration split loops since + // RCE modifies limits. Note, _trip_count value is not reset since + // it is used to limit unrolling of main loop. + cl->set_nonexact_trip_count(); + + // Loop's test should be part of loop. + if (!phase->is_member(this, phase->get_ctrl(cl->loopexit()->in(CountedLoopEndNode::TestValue)))) + return; // Infinite loop + +#ifdef ASSERT + BoolTest::mask bt = cl->loopexit()->test_trip(); + assert(bt == BoolTest::lt || bt == BoolTest::gt || + bt == BoolTest::ne, "canonical test is expected"); +#endif + + Node* init_n = cl->init_trip(); + Node* limit_n = cl->limit(); + if (init_n != NULL && init_n->is_Con() && + limit_n != NULL && limit_n->is_Con()) { + // Use longs to avoid integer overflow. + int stride_con = cl->stride_con(); + long init_con = cl->init_trip()->get_int(); + long limit_con = cl->limit()->get_int(); + int stride_m = stride_con - (stride_con > 0 ? 1 : -1); + long trip_count = (limit_con - init_con + stride_m)/stride_con; + if (trip_count > 0 && (julong)trip_count < (julong)max_juint) { + // Set exact trip count. + cl->set_exact_trip_count((uint)trip_count); + } + } +} + //------------------------------compute_profile_trip_cnt---------------------------- // Compute loop trip count from profile data as // (backedge_count + loop_exit_count) / loop_exit_count @@ -301,6 +341,132 @@ void PhaseIdealLoop::peeled_dom_test_elim( IdealLoopTree *loop, Node_List &old_n // peeled-loop backedge has 2 users. // Step 3: Cut the backedge on the clone (so its not a loop) and remove the // extra backedge user. +// +// orig +// +// stmt1 +// | +// v +// loop predicate +// | +// v +// loop<----+ +// | | +// stmt2 | +// | | +// v | +// if ^ +// / \ | +// / \ | +// v v | +// false true | +// / \ | +// / ----+ +// | +// v +// exit +// +// +// after clone loop +// +// stmt1 +// | +// v +// loop predicate +// / \ +// clone / \ orig +// / \ +// / \ +// v v +// +---->loop clone loop<----+ +// | | | | +// | stmt2 clone stmt2 | +// | | | | +// | v v | +// ^ if clone If ^ +// | / \ / \ | +// | / \ / \ | +// | v v v v | +// | true false false true | +// | / \ / \ | +// +---- \ / ----+ +// \ / +// 1v v2 +// region +// | +// v +// exit +// +// +// after peel and predicate move +// +// stmt1 +// / +// / +// clone / orig +// / +// / +----------+ +// / | | +// / loop predicate | +// / | | +// v v | +// TOP-->loop clone loop<----+ | +// | | | | +// stmt2 clone stmt2 | | +// | | | ^ +// v v | | +// if clone If ^ | +// / \ / \ | | +// / \ / \ | | +// v v v v | | +// true false false true | | +// | \ / \ | | +// | \ / ----+ ^ +// | \ / | +// | 1v v2 | +// v region | +// | | | +// | v | +// | exit | +// | | +// +--------------->-----------------+ +// +// +// final graph +// +// stmt1 +// | +// v +// stmt2 clone +// | +// v +// if clone +// / | +// / | +// v v +// false true +// | | +// | v +// | loop predicate +// | | +// | v +// | loop<----+ +// | | | +// | stmt2 | +// | | | +// | v | +// v if ^ +// | / \ | +// | / \ | +// | v v | +// | false true | +// | | \ | +// v v --+ +// region +// | +// v +// exit +// void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { C->set_major_progress(); @@ -315,9 +481,10 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { loop->dump_head(); } #endif - Node *h = loop->_head; - if (h->is_CountedLoop()) { - CountedLoopNode *cl = h->as_CountedLoop(); + Node* head = loop->_head; + bool counted_loop = head->is_CountedLoop(); + if (counted_loop) { + CountedLoopNode *cl = head->as_CountedLoop(); assert(cl->trip_count() > 0, "peeling a fully unrolled loop"); cl->set_trip_count(cl->trip_count() - 1); if (cl->is_main_loop()) { @@ -330,11 +497,11 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { #endif } } + Node* entry = head->in(LoopNode::EntryControl); // Step 1: Clone the loop body. The clone becomes the peeled iteration. // The pre-loop illegally has 2 control users (old & new loops). - clone_loop( loop, old_new, dom_depth(loop->_head) ); - + clone_loop( loop, old_new, dom_depth(head) ); // Step 2: Make the old-loop fall-in edges point to the peeled iteration. // Do this by making the old-loop fall-in edges act as if they came @@ -342,12 +509,15 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { // backedges) and then map to the new peeled iteration. This leaves // the pre-loop with only 1 user (the new peeled iteration), but the // peeled-loop backedge has 2 users. - for (DUIterator_Fast jmax, j = loop->_head->fast_outs(jmax); j < jmax; j++) { - Node* old = loop->_head->fast_out(j); - if( old->in(0) == loop->_head && old->req() == 3 && - (old->is_Loop() || old->is_Phi()) ) { - Node *new_exit_value = old_new[old->in(LoopNode::LoopBackControl)->_idx]; - if( !new_exit_value ) // Backedge value is ALSO loop invariant? + Node* new_exit_value = old_new[head->in(LoopNode::LoopBackControl)->_idx]; + new_exit_value = move_loop_predicates(entry, new_exit_value); + _igvn.hash_delete(head); + head->set_req(LoopNode::EntryControl, new_exit_value); + for (DUIterator_Fast jmax, j = head->fast_outs(jmax); j < jmax; j++) { + Node* old = head->fast_out(j); + if (old->in(0) == loop->_head && old->req() == 3 && old->is_Phi()) { + new_exit_value = old_new[old->in(LoopNode::LoopBackControl)->_idx]; + if (!new_exit_value ) // Backedge value is ALSO loop invariant? // Then loop body backedge value remains the same. new_exit_value = old->in(LoopNode::LoopBackControl); _igvn.hash_delete(old); @@ -358,12 +528,12 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { // Step 3: Cut the backedge on the clone (so its not a loop) and remove the // extra backedge user. - Node *nnn = old_new[loop->_head->_idx]; - _igvn.hash_delete(nnn); - nnn->set_req(LoopNode::LoopBackControl, C->top()); - for (DUIterator_Fast j2max, j2 = nnn->fast_outs(j2max); j2 < j2max; j2++) { - Node* use = nnn->fast_out(j2); - if( use->in(0) == nnn && use->req() == 3 && use->is_Phi() ) { + Node* new_head = old_new[head->_idx]; + _igvn.hash_delete(new_head); + new_head->set_req(LoopNode::LoopBackControl, C->top()); + for (DUIterator_Fast j2max, j2 = new_head->fast_outs(j2max); j2 < j2max; j2++) { + Node* use = new_head->fast_out(j2); + if (use->in(0) == new_head && use->req() == 3 && use->is_Phi()) { _igvn.hash_delete(use); use->set_req(LoopNode::LoopBackControl, C->top()); } @@ -371,15 +541,15 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { // Step 4: Correct dom-depth info. Set to loop-head depth. - int dd = dom_depth(loop->_head); - set_idom(loop->_head, loop->_head->in(1), dd); + int dd = dom_depth(head); + set_idom(head, head->in(1), dd); for (uint j3 = 0; j3 < loop->_body.size(); j3++) { Node *old = loop->_body.at(j3); Node *nnn = old_new[old->_idx]; if (!has_ctrl(nnn)) set_idom(nnn, idom(nnn), dd-1); // While we're at it, remove any SafePoints from the peeled code - if( old->Opcode() == Op_SafePoint ) { + if (old->Opcode() == Op_SafePoint) { Node *nnn = old_new[old->_idx]; lazy_replace(nnn,nnn->in(TypeFunc::Control)); } @@ -392,34 +562,26 @@ void PhaseIdealLoop::do_peeling( IdealLoopTree *loop, Node_List &old_new ) { loop->record_for_igvn(); } +#define EMPTY_LOOP_SIZE 7 // number of nodes in an empty loop + //------------------------------policy_maximally_unroll------------------------ -// Return exact loop trip count, or 0 if not maximally unrolling +// Calculate exact loop trip count and return true if loop can be maximally +// unrolled. bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { CountedLoopNode *cl = _head->as_CountedLoop(); assert(cl->is_normal_loop(), ""); + if (!cl->is_valid_counted_loop()) + return false; // Malformed counted loop - Node *init_n = cl->init_trip(); - Node *limit_n = cl->limit(); - - // Non-constant bounds - if (init_n == NULL || !init_n->is_Con() || - limit_n == NULL || !limit_n->is_Con() || - // protect against stride not being a constant - !cl->stride_is_con()) { + if (!cl->has_exact_trip_count()) { + // Trip count is not exact. return false; } - int init = init_n->get_int(); - int limit = limit_n->get_int(); - int span = limit - init; - int stride = cl->stride_con(); - if (init >= limit || stride > span) { - // return a false (no maximally unroll) and the regular unroll/peel - // route will make a small mess which CCP will fold away. - return false; - } - uint trip_count = span/stride; // trip_count can be greater than 2 Gig. - assert( (int)trip_count*stride == span, "must divide evenly" ); + uint trip_count = cl->trip_count(); + // Note, max_juint is used to indicate unknown trip count. + assert(trip_count > 1, "one iteration loop should be optimized out already"); + assert(trip_count < max_juint, "exact trip_count should be less than max_uint."); // Real policy: if we maximally unroll, does it get too big? // Allow the unrolled mess to get larger than standard loop @@ -427,15 +589,29 @@ bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { uint body_size = _body.size(); uint unroll_limit = (uint)LoopUnrollLimit * 4; assert( (intx)unroll_limit == LoopUnrollLimit * 4, "LoopUnrollLimit must fit in 32bits"); - cl->set_trip_count(trip_count); if (trip_count > unroll_limit || body_size > unroll_limit) { return false; } + // Take into account that after unroll conjoined heads and tails will fold, + // otherwise policy_unroll() may allow more unrolling than max unrolling. + uint new_body_size = EMPTY_LOOP_SIZE + (body_size - EMPTY_LOOP_SIZE) * trip_count; + uint tst_body_size = (new_body_size - EMPTY_LOOP_SIZE) / trip_count + EMPTY_LOOP_SIZE; + if (body_size != tst_body_size) // Check for int overflow + return false; + if (new_body_size > unroll_limit || + // Unrolling can result in a large amount of node construction + new_body_size >= MaxNodeLimit - phase->C->unique()) { + return false; + } + // Currently we don't have policy to optimize one iteration loops. // Maximally unrolling transformation is used for that: // it is peeled and the original loop become non reachable (dead). - if (trip_count == 1) + // Also fully unroll a loop with few iterations regardless next + // conditions since following loop optimizations will split + // such loop anyway (pre-main-post). + if (trip_count <= 3) return true; // Do not unroll a loop with String intrinsics code. @@ -452,17 +628,7 @@ bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { } // switch } - if (body_size <= unroll_limit) { - uint new_body_size = body_size * trip_count; - if (new_body_size <= unroll_limit && - body_size == new_body_size / trip_count && - // Unrolling can result in a large amount of node construction - new_body_size < MaxNodeLimit - phase->C->unique()) { - return true; // maximally unroll - } - } - - return false; // Do not maximally unroll + return true; // Do maximally unroll } @@ -474,12 +640,15 @@ bool IdealLoopTree::policy_unroll( PhaseIdealLoop *phase ) const { CountedLoopNode *cl = _head->as_CountedLoop(); assert(cl->is_normal_loop() || cl->is_main_loop(), ""); - // protect against stride not being a constant - if (!cl->stride_is_con()) return false; + if (!cl->is_valid_counted_loop()) + return false; // Malformed counted loop // protect against over-unrolling if (cl->trip_count() <= 1) return false; + // Check for stride being a small enough constant + if (abs(cl->stride_con()) > (1<<3)) return false; + int future_unroll_ct = cl->unrolled_count() * 2; // Don't unroll if the next round of unrolling would push us @@ -560,9 +729,6 @@ bool IdealLoopTree::policy_unroll( PhaseIdealLoop *phase ) const { return false; } - // Check for stride being a small enough constant - if (abs(cl->stride_con()) > (1<<3)) return false; - // Unroll once! (Each trip will soon do double iterations) return true; } @@ -956,7 +1122,11 @@ void PhaseIdealLoop::do_unroll( IdealLoopTree *loop, Node_List &old_new, bool ad tty->print("Unrolling "); loop->dump_head(); } else if (TraceLoopOpts) { - tty->print("Unroll %d ", loop_head->unrolled_count()*2); + if (loop_head->trip_count() < (uint)LoopUnrollLimit) { + tty->print("Unroll %d(%2d) ", loop_head->unrolled_count()*2, loop_head->trip_count()); + } else { + tty->print("Unroll %d ", loop_head->unrolled_count()*2); + } loop->dump_head(); } #endif @@ -1631,7 +1801,7 @@ void IdealLoopTree::adjust_loop_exit_prob( PhaseIdealLoop *phase ) { // have on the last iteration. This will break the loop. bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) { // Minimum size must be empty loop - if (_body.size() > 7/*number of nodes in an empty loop*/) + if (_body.size() > EMPTY_LOOP_SIZE) return false; if (!_head->is_CountedLoop()) @@ -1657,9 +1827,20 @@ bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) { // main and post loops have explicitly created zero trip guard bool needs_guard = !cl->is_main_loop() && !cl->is_post_loop(); + if (needs_guard) { + // Skip guard if values not overlap. + const TypeInt* init_t = phase->_igvn.type(cl->init_trip())->is_int(); + const TypeInt* limit_t = phase->_igvn.type(cl->limit())->is_int(); + int stride_con = cl->stride_con(); + if (stride_con > 0) { + needs_guard = (init_t->_hi >= limit_t->_lo); + } else { + needs_guard = (init_t->_lo <= limit_t->_hi); + } + } if (needs_guard) { // Check for an obvious zero trip guard. - Node* inctrl = cl->in(LoopNode::EntryControl); + Node* inctrl = PhaseIdealLoop::skip_loop_predicates(cl->in(LoopNode::EntryControl)); if (inctrl->Opcode() == Op_IfTrue) { // The test should look like just the backedge of a CountedLoop Node* iff = inctrl->in(0); @@ -1702,12 +1883,49 @@ bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) { return true; } +//------------------------------policy_do_one_iteration_loop------------------- +// Convert one iteration loop into normal code. +bool IdealLoopTree::policy_do_one_iteration_loop( PhaseIdealLoop *phase ) { + if (!_head->as_Loop()->is_valid_counted_loop()) + return false; // Only for counted loop + + CountedLoopNode *cl = _head->as_CountedLoop(); + if (!cl->has_exact_trip_count() || cl->trip_count() != 1) { + return false; + } + +#ifndef PRODUCT + if(TraceLoopOpts) { + tty->print("OneIteration "); + this->dump_head(); + } +#endif + + Node *init_n = cl->init_trip(); +#ifdef ASSERT + // Loop boundaries should be constant since trip count is exact. + assert(init_n->get_int() + cl->stride_con() >= cl->limit()->get_int(), "should be one iteration"); +#endif + // Replace the phi at loop head with the value of the init_trip. + // Then the CountedLoopEnd will collapse (backedge will not be taken) + // and all loop-invariant uses of the exit values will be correct. + phase->_igvn.replace_node(cl->phi(), cl->init_trip()); + phase->C->set_major_progress(); + return true; +} //============================================================================= //------------------------------iteration_split_impl--------------------------- bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_new ) { + // Compute exact loop trip count if possible. + compute_exact_trip_count(phase); + + // Convert one iteration loop into normal code. + if (policy_do_one_iteration_loop(phase)) + return true; + // Check and remove empty loops (spam micro-benchmarks) - if( policy_do_remove_empty_loop(phase) ) + if (policy_do_remove_empty_loop(phase)) return true; // Here we removed an empty loop bool should_peel = policy_peeling(phase); // Should we peel? @@ -1716,40 +1934,40 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_ // Non-counted loops may be peeled; exactly 1 iteration is peeled. // This removes loop-invariant tests (usually null checks). - if( !_head->is_CountedLoop() ) { // Non-counted loop + if (!_head->is_CountedLoop()) { // Non-counted loop if (PartialPeelLoop && phase->partial_peel(this, old_new)) { // Partial peel succeeded so terminate this round of loop opts return false; } - if( should_peel ) { // Should we peel? + if (should_peel) { // Should we peel? #ifndef PRODUCT if (PrintOpto) tty->print_cr("should_peel"); #endif phase->do_peeling(this,old_new); - } else if( should_unswitch ) { + } else if (should_unswitch) { phase->do_unswitching(this, old_new); } return true; } CountedLoopNode *cl = _head->as_CountedLoop(); - if( !cl->loopexit() ) return true; // Ignore various kinds of broken loops + if (!cl->loopexit()) return true; // Ignore various kinds of broken loops // Do nothing special to pre- and post- loops - if( cl->is_pre_loop() || cl->is_post_loop() ) return true; + if (cl->is_pre_loop() || cl->is_post_loop()) return true; // Compute loop trip count from profile data compute_profile_trip_cnt(phase); // Before attempting fancy unrolling, RCE or alignment, see if we want // to completely unroll this loop or do loop unswitching. - if( cl->is_normal_loop() ) { + if (cl->is_normal_loop()) { if (should_unswitch) { phase->do_unswitching(this, old_new); return true; } bool should_maximally_unroll = policy_maximally_unroll(phase); - if( should_maximally_unroll ) { + if (should_maximally_unroll) { // Here we did some unrolling and peeling. Eventually we will // completely unroll this loop and it will no longer be a loop. phase->do_maximally_unroll(this,old_new); @@ -1757,6 +1975,12 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_ } } + // Skip next optimizations if running low on nodes. Note that + // policy_unswitching and policy_maximally_unroll have this check. + uint nodes_left = MaxNodeLimit - phase->C->unique(); + if ((2 * _body.size()) > nodes_left) { + return true; + } // Counted loops may be peeled, may need some iterations run up // front for RCE, and may want to align loop refs to a cache @@ -1787,14 +2011,14 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_ // If we have any of these conditions (RCE, alignment, unrolling) met, then // we switch to the pre-/main-/post-loop model. This model also covers // peeling. - if( should_rce || should_align || should_unroll ) { - if( cl->is_normal_loop() ) // Convert to 'pre/main/post' loops + if (should_rce || should_align || should_unroll) { + if (cl->is_normal_loop()) // Convert to 'pre/main/post' loops phase->insert_pre_post_loops(this,old_new, !may_rce_align); // Adjust the pre- and main-loop limits to let the pre and post loops run // with full checks, but the main-loop with no checks. Remove said // checks from the main body. - if( should_rce ) + if (should_rce) phase->do_range_check(this,old_new); // Double loop body for unrolling. Adjust the minimum-trip test (will do @@ -1802,16 +2026,16 @@ bool IdealLoopTree::iteration_split_impl( PhaseIdealLoop *phase, Node_List &old_ // an even number of trips). If we are peeling, we might enable some RCE // and we'd rather unroll the post-RCE'd loop SO... do not unroll if // peeling. - if( should_unroll && !should_peel ) - phase->do_unroll(this,old_new, true); + if (should_unroll && !should_peel) + phase->do_unroll(this,old_new, true); // Adjust the pre-loop limits to align the main body // iterations. - if( should_align ) + if (should_align) Unimplemented(); } else { // Else we have an unchanged counted loop - if( should_peel ) // Might want to peel but do nothing else + if (should_peel) // Might want to peel but do nothing else phase->do_peeling(this,old_new); } return true; @@ -1861,651 +2085,8 @@ bool IdealLoopTree::iteration_split( PhaseIdealLoop *phase, Node_List &old_new ) return true; } -//-------------------------------is_uncommon_trap_proj---------------------------- -// Return true if proj is the form of "proj->[region->..]call_uct" -bool PhaseIdealLoop::is_uncommon_trap_proj(ProjNode* proj, Deoptimization::DeoptReason reason) { - int path_limit = 10; - assert(proj, "invalid argument"); - Node* out = proj; - for (int ct = 0; ct < path_limit; ct++) { - out = out->unique_ctrl_out(); - if (out == NULL || out->is_Root() || out->is_Start()) - return false; - if (out->is_CallStaticJava()) { - int req = out->as_CallStaticJava()->uncommon_trap_request(); - if (req != 0) { - Deoptimization::DeoptReason trap_reason = Deoptimization::trap_request_reason(req); - if (trap_reason == reason || reason == Deoptimization::Reason_none) { - return true; - } - } - return false; // don't do further after call - } - } - return false; -} - -//-------------------------------is_uncommon_trap_if_pattern------------------------- -// Return true for "if(test)-> proj -> ... -// | -// V -// other_proj->[region->..]call_uct" -// -// "must_reason_predicate" means the uct reason must be Reason_predicate -bool PhaseIdealLoop::is_uncommon_trap_if_pattern(ProjNode *proj, Deoptimization::DeoptReason reason) { - Node *in0 = proj->in(0); - if (!in0->is_If()) return false; - // Variation of a dead If node. - if (in0->outcnt() < 2) return false; - IfNode* iff = in0->as_If(); - - // we need "If(Conv2B(Opaque1(...)))" pattern for reason_predicate - if (reason != Deoptimization::Reason_none) { - if (iff->in(1)->Opcode() != Op_Conv2B || - iff->in(1)->in(1)->Opcode() != Op_Opaque1) { - return false; - } - } - - ProjNode* other_proj = iff->proj_out(1-proj->_con)->as_Proj(); - return is_uncommon_trap_proj(other_proj, reason); -} - -//-------------------------------register_control------------------------- -void PhaseIdealLoop::register_control(Node* n, IdealLoopTree *loop, Node* pred) { - assert(n->is_CFG(), "must be control node"); - _igvn.register_new_node_with_optimizer(n); - loop->_body.push(n); - set_loop(n, loop); - // When called from beautify_loops() idom is not constructed yet. - if (_idom != NULL) { - set_idom(n, pred, dom_depth(pred)); - } -} - -//------------------------------create_new_if_for_predicate------------------------ -// create a new if above the uct_if_pattern for the predicate to be promoted. -// -// before after -// ---------- ---------- -// ctrl ctrl -// | | -// | | -// v v -// iff new_iff -// / \ / \ -// / \ / \ -// v v v v -// uncommon_proj cont_proj if_uct if_cont -// \ | | | | -// \ | | | | -// v v v | v -// rgn loop | iff -// | | / \ -// | | / \ -// v | v v -// uncommon_trap | uncommon_proj cont_proj -// \ \ | | -// \ \ | | -// v v v v -// rgn loop -// | -// | -// v -// uncommon_trap -// -// -// We will create a region to guard the uct call if there is no one there. -// The true projecttion (if_cont) of the new_iff is returned. -// This code is also used to clone predicates to clonned loops. -ProjNode* PhaseIdealLoop::create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, - Deoptimization::DeoptReason reason) { - assert(is_uncommon_trap_if_pattern(cont_proj, reason), "must be a uct if pattern!"); - IfNode* iff = cont_proj->in(0)->as_If(); - - ProjNode *uncommon_proj = iff->proj_out(1 - cont_proj->_con); - Node *rgn = uncommon_proj->unique_ctrl_out(); - assert(rgn->is_Region() || rgn->is_Call(), "must be a region or call uct"); - - if (!rgn->is_Region()) { // create a region to guard the call - assert(rgn->is_Call(), "must be call uct"); - CallNode* call = rgn->as_Call(); - IdealLoopTree* loop = get_loop(call); - rgn = new (C, 1) RegionNode(1); - rgn->add_req(uncommon_proj); - register_control(rgn, loop, uncommon_proj); - _igvn.hash_delete(call); - call->set_req(0, rgn); - // When called from beautify_loops() idom is not constructed yet. - if (_idom != NULL) { - set_idom(call, rgn, dom_depth(rgn)); - } - } - - Node* entry = iff->in(0); - if (new_entry != NULL) { - // Clonning the predicate to new location. - entry = new_entry; - } - // Create new_iff - IdealLoopTree* lp = get_loop(entry); - IfNode *new_iff = new (C, 2) IfNode(entry, NULL, iff->_prob, iff->_fcnt); - register_control(new_iff, lp, entry); - Node *if_cont = new (C, 1) IfTrueNode(new_iff); - Node *if_uct = new (C, 1) IfFalseNode(new_iff); - if (cont_proj->is_IfFalse()) { - // Swap - Node* tmp = if_uct; if_uct = if_cont; if_cont = tmp; - } - register_control(if_cont, lp, new_iff); - register_control(if_uct, get_loop(rgn), new_iff); - - // if_uct to rgn - _igvn.hash_delete(rgn); - rgn->add_req(if_uct); - // When called from beautify_loops() idom is not constructed yet. - if (_idom != NULL) { - Node* ridom = idom(rgn); - Node* nrdom = dom_lca(ridom, new_iff); - set_idom(rgn, nrdom, dom_depth(rgn)); - } - // rgn must have no phis - assert(!rgn->as_Region()->has_phi(), "region must have no phis"); - - if (new_entry == NULL) { - // Attach if_cont to iff - _igvn.hash_delete(iff); - iff->set_req(0, if_cont); - if (_idom != NULL) { - set_idom(iff, if_cont, dom_depth(iff)); - } - } - return if_cont->as_Proj(); -} - -//--------------------------find_predicate_insertion_point------------------- -// Find a good location to insert a predicate -ProjNode* PhaseIdealLoop::find_predicate_insertion_point(Node* start_c, Deoptimization::DeoptReason reason) { - if (start_c == NULL || !start_c->is_Proj()) - return NULL; - if (is_uncommon_trap_if_pattern(start_c->as_Proj(), reason)) { - return start_c->as_Proj(); - } - return NULL; -} - -//--------------------------find_predicate------------------------------------ -// Find a predicate -Node* PhaseIdealLoop::find_predicate(Node* entry) { - Node* predicate = NULL; - if (UseLoopPredicate) { - predicate = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); - if (predicate != NULL) { // right pattern that can be used by loop predication - assert(entry->in(0)->in(1)->in(1)->Opcode()==Op_Opaque1, "must be"); - return entry; - } - } - return NULL; -} - -//------------------------------Invariance----------------------------------- -// Helper class for loop_predication_impl to compute invariance on the fly and -// clone invariants. -class Invariance : public StackObj { - VectorSet _visited, _invariant; - Node_Stack _stack; - VectorSet _clone_visited; - Node_List _old_new; // map of old to new (clone) - IdealLoopTree* _lpt; - PhaseIdealLoop* _phase; - - // Helper function to set up the invariance for invariance computation - // If n is a known invariant, set up directly. Otherwise, look up the - // the possibility to push n onto the stack for further processing. - void visit(Node* use, Node* n) { - if (_lpt->is_invariant(n)) { // known invariant - _invariant.set(n->_idx); - } else if (!n->is_CFG()) { - Node *n_ctrl = _phase->ctrl_or_self(n); - Node *u_ctrl = _phase->ctrl_or_self(use); // self if use is a CFG - if (_phase->is_dominator(n_ctrl, u_ctrl)) { - _stack.push(n, n->in(0) == NULL ? 1 : 0); - } - } - } - - // Compute invariance for "the_node" and (possibly) all its inputs recursively - // on the fly - void compute_invariance(Node* n) { - assert(_visited.test(n->_idx), "must be"); - visit(n, n); - while (_stack.is_nonempty()) { - Node* n = _stack.node(); - uint idx = _stack.index(); - if (idx == n->req()) { // all inputs are processed - _stack.pop(); - // n is invariant if it's inputs are all invariant - bool all_inputs_invariant = true; - for (uint i = 0; i < n->req(); i++) { - Node* in = n->in(i); - if (in == NULL) continue; - assert(_visited.test(in->_idx), "must have visited input"); - if (!_invariant.test(in->_idx)) { // bad guy - all_inputs_invariant = false; - break; - } - } - if (all_inputs_invariant) { - _invariant.set(n->_idx); // I am a invariant too - } - } else { // process next input - _stack.set_index(idx + 1); - Node* m = n->in(idx); - if (m != NULL && !_visited.test_set(m->_idx)) { - visit(n, m); - } - } - } - } - - // Helper function to set up _old_new map for clone_nodes. - // If n is a known invariant, set up directly ("clone" of n == n). - // Otherwise, push n onto the stack for real cloning. - void clone_visit(Node* n) { - assert(_invariant.test(n->_idx), "must be invariant"); - if (_lpt->is_invariant(n)) { // known invariant - _old_new.map(n->_idx, n); - } else{ // to be cloned - assert (!n->is_CFG(), "should not see CFG here"); - _stack.push(n, n->in(0) == NULL ? 1 : 0); - } - } - - // Clone "n" and (possibly) all its inputs recursively - void clone_nodes(Node* n, Node* ctrl) { - clone_visit(n); - while (_stack.is_nonempty()) { - Node* n = _stack.node(); - uint idx = _stack.index(); - if (idx == n->req()) { // all inputs processed, clone n! - _stack.pop(); - // clone invariant node - Node* n_cl = n->clone(); - _old_new.map(n->_idx, n_cl); - _phase->register_new_node(n_cl, ctrl); - for (uint i = 0; i < n->req(); i++) { - Node* in = n_cl->in(i); - if (in == NULL) continue; - n_cl->set_req(i, _old_new[in->_idx]); - } - } else { // process next input - _stack.set_index(idx + 1); - Node* m = n->in(idx); - if (m != NULL && !_clone_visited.test_set(m->_idx)) { - clone_visit(m); // visit the input - } - } - } - } - - public: - Invariance(Arena* area, IdealLoopTree* lpt) : - _lpt(lpt), _phase(lpt->_phase), - _visited(area), _invariant(area), _stack(area, 10 /* guess */), - _clone_visited(area), _old_new(area) - {} - - // Map old to n for invariance computation and clone - void map_ctrl(Node* old, Node* n) { - assert(old->is_CFG() && n->is_CFG(), "must be"); - _old_new.map(old->_idx, n); // "clone" of old is n - _invariant.set(old->_idx); // old is invariant - _clone_visited.set(old->_idx); - } - - // Driver function to compute invariance - bool is_invariant(Node* n) { - if (!_visited.test_set(n->_idx)) - compute_invariance(n); - return (_invariant.test(n->_idx) != 0); - } - - // Driver function to clone invariant - Node* clone(Node* n, Node* ctrl) { - assert(ctrl->is_CFG(), "must be"); - assert(_invariant.test(n->_idx), "must be an invariant"); - if (!_clone_visited.test(n->_idx)) - clone_nodes(n, ctrl); - return _old_new[n->_idx]; - } -}; - -//------------------------------is_range_check_if ----------------------------------- -// Returns true if the predicate of iff is in "scale*iv + offset u< load_range(ptr)" format -// Note: this function is particularly designed for loop predication. We require load_range -// and offset to be loop invariant computed on the fly by "invar" -bool IdealLoopTree::is_range_check_if(IfNode *iff, PhaseIdealLoop *phase, Invariance& invar) const { - if (!is_loop_exit(iff)) { - return false; - } - if (!iff->in(1)->is_Bool()) { - return false; - } - const BoolNode *bol = iff->in(1)->as_Bool(); - if (bol->_test._test != BoolTest::lt) { - return false; - } - if (!bol->in(1)->is_Cmp()) { - return false; - } - const CmpNode *cmp = bol->in(1)->as_Cmp(); - if (cmp->Opcode() != Op_CmpU ) { - return false; - } - Node* range = cmp->in(2); - if (range->Opcode() != Op_LoadRange) { - const TypeInt* tint = phase->_igvn.type(range)->isa_int(); - if (!OptimizeFill || tint == NULL || tint->empty() || tint->_lo < 0) { - // Allow predication on positive values that aren't LoadRanges. - // This allows optimization of loops where the length of the - // array is a known value and doesn't need to be loaded back - // from the array. - return false; - } - } - if (!invar.is_invariant(range)) { - return false; - } - Node *iv = _head->as_CountedLoop()->phi(); - int scale = 0; - Node *offset = NULL; - if (!phase->is_scaled_iv_plus_offset(cmp->in(1), iv, &scale, &offset)) { - return false; - } - if(offset && !invar.is_invariant(offset)) { // offset must be invariant - return false; - } - return true; -} - -//------------------------------rc_predicate----------------------------------- -// Create a range check predicate -// -// for (i = init; i < limit; i += stride) { -// a[scale*i+offset] -// } -// -// Compute max(scale*i + offset) for init <= i < limit and build the predicate -// as "max(scale*i + offset) u< a.length". -// -// There are two cases for max(scale*i + offset): -// (1) stride*scale > 0 -// max(scale*i + offset) = scale*(limit-stride) + offset -// (2) stride*scale < 0 -// max(scale*i + offset) = scale*init + offset -BoolNode* PhaseIdealLoop::rc_predicate(Node* ctrl, - int scale, Node* offset, - Node* init, Node* limit, Node* stride, - Node* range, bool upper) { - DEBUG_ONLY(ttyLocker ttyl); - if (TraceLoopPredicate) tty->print("rc_predicate "); - - Node* max_idx_expr = init; - int stride_con = stride->get_int(); - if ((stride_con > 0) == (scale > 0) == upper) { - max_idx_expr = new (C, 3) SubINode(limit, stride); - register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) tty->print("(limit - stride) "); - } else { - if (TraceLoopPredicate) tty->print("init "); - } - - if (scale != 1) { - ConNode* con_scale = _igvn.intcon(scale); - max_idx_expr = new (C, 3) MulINode(max_idx_expr, con_scale); - register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) tty->print("* %d ", scale); - } - - if (offset && (!offset->is_Con() || offset->get_int() != 0)){ - max_idx_expr = new (C, 3) AddINode(max_idx_expr, offset); - register_new_node(max_idx_expr, ctrl); - if (TraceLoopPredicate) - if (offset->is_Con()) tty->print("+ %d ", offset->get_int()); - else tty->print("+ offset "); - } - - CmpUNode* cmp = new (C, 3) CmpUNode(max_idx_expr, range); - register_new_node(cmp, ctrl); - BoolNode* bol = new (C, 2) BoolNode(cmp, BoolTest::lt); - register_new_node(bol, ctrl); - - if (TraceLoopPredicate) tty->print_cr("_head->is_Loop()) { - // Could be a simple region when irreducible loops are present. - return false; - } - - if (loop->_head->unique_ctrl_out()->Opcode() == Op_NeverBranch) { - // do nothing for infinite loops - return false; - } - - CountedLoopNode *cl = NULL; - if (loop->_head->is_CountedLoop()) { - cl = loop->_head->as_CountedLoop(); - // do nothing for iteration-splitted loops - if (!cl->is_normal_loop()) return false; - } - - LoopNode *lpn = loop->_head->as_Loop(); - Node* entry = lpn->in(LoopNode::EntryControl); - - ProjNode *predicate_proj = find_predicate_insertion_point(entry, Deoptimization::Reason_predicate); - if (!predicate_proj) { -#ifndef PRODUCT - if (TraceLoopPredicate) { - tty->print("missing predicate:"); - loop->dump_head(); - lpn->dump(1); - } -#endif - return false; - } - ConNode* zero = _igvn.intcon(0); - set_ctrl(zero, C->root()); - - ResourceArea *area = Thread::current()->resource_area(); - Invariance invar(area, loop); - - // Create list of if-projs such that a newer proj dominates all older - // projs in the list, and they all dominate loop->tail() - Node_List if_proj_list(area); - LoopNode *head = loop->_head->as_Loop(); - Node *current_proj = loop->tail(); //start from tail - while ( current_proj != head ) { - if (loop == get_loop(current_proj) && // still in the loop ? - current_proj->is_Proj() && // is a projection ? - current_proj->in(0)->Opcode() == Op_If) { // is a if projection ? - if_proj_list.push(current_proj); - } - current_proj = idom(current_proj); - } - - bool hoisted = false; // true if at least one proj is promoted - while (if_proj_list.size() > 0) { - // Following are changed to nonnull when a predicate can be hoisted - ProjNode* new_predicate_proj = NULL; - - ProjNode* proj = if_proj_list.pop()->as_Proj(); - IfNode* iff = proj->in(0)->as_If(); - - if (!is_uncommon_trap_if_pattern(proj, Deoptimization::Reason_none)) { - if (loop->is_loop_exit(iff)) { - // stop processing the remaining projs in the list because the execution of them - // depends on the condition of "iff" (iff->in(1)). - break; - } else { - // Both arms are inside the loop. There are two cases: - // (1) there is one backward branch. In this case, any remaining proj - // in the if_proj list post-dominates "iff". So, the condition of "iff" - // does not determine the execution the remining projs directly, and we - // can safely continue. - // (2) both arms are forwarded, i.e. a diamond shape. In this case, "proj" - // does not dominate loop->tail(), so it can not be in the if_proj list. - continue; - } - } - - Node* test = iff->in(1); - if (!test->is_Bool()){ //Conv2B, ... - continue; - } - BoolNode* bol = test->as_Bool(); - if (invar.is_invariant(bol)) { - // Invariant test - new_predicate_proj = create_new_if_for_predicate(predicate_proj, NULL, - Deoptimization::Reason_predicate); - Node* ctrl = new_predicate_proj->in(0)->as_If()->in(0); - BoolNode* new_predicate_bol = invar.clone(bol, ctrl)->as_Bool(); - - // Negate test if necessary - bool negated = false; - if (proj->_con != predicate_proj->_con) { - new_predicate_bol = new (C, 2) BoolNode(new_predicate_bol->in(1), new_predicate_bol->_test.negate()); - register_new_node(new_predicate_bol, ctrl); - negated = true; - } - IfNode* new_predicate_iff = new_predicate_proj->in(0)->as_If(); - _igvn.hash_delete(new_predicate_iff); - new_predicate_iff->set_req(1, new_predicate_bol); -#ifndef PRODUCT - if (TraceLoopPredicate) { - tty->print("Predicate invariant if%s: %d ", negated ? " negated" : "", new_predicate_iff->_idx); - loop->dump_head(); - } else if (TraceLoopOpts) { - tty->print("Predicate IC "); - loop->dump_head(); - } -#endif - } else if (cl != NULL && loop->is_range_check_if(iff, this, invar)) { - assert(proj->_con == predicate_proj->_con, "must match"); - - // Range check for counted loops - const Node* cmp = bol->in(1)->as_Cmp(); - Node* idx = cmp->in(1); - assert(!invar.is_invariant(idx), "index is variant"); - assert(cmp->in(2)->Opcode() == Op_LoadRange || OptimizeFill, "must be"); - Node* rng = cmp->in(2); - assert(invar.is_invariant(rng), "range must be invariant"); - int scale = 1; - Node* offset = zero; - bool ok = is_scaled_iv_plus_offset(idx, cl->phi(), &scale, &offset); - assert(ok, "must be index expression"); - - Node* init = cl->init_trip(); - Node* limit = cl->limit(); - Node* stride = cl->stride(); - - // Build if's for the upper and lower bound tests. The - // lower_bound test will dominate the upper bound test and all - // cloned or created nodes will use the lower bound test as - // their declared control. - ProjNode* lower_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate); - ProjNode* upper_bound_proj = create_new_if_for_predicate(predicate_proj, NULL, Deoptimization::Reason_predicate); - assert(upper_bound_proj->in(0)->as_If()->in(0) == lower_bound_proj, "should dominate"); - Node *ctrl = lower_bound_proj->in(0)->as_If()->in(0); - - // Perform cloning to keep Invariance state correct since the - // late schedule will place invariant things in the loop. - rng = invar.clone(rng, ctrl); - if (offset && offset != zero) { - assert(invar.is_invariant(offset), "offset must be loop invariant"); - offset = invar.clone(offset, ctrl); - } - - // Test the lower bound - Node* lower_bound_bol = rc_predicate(ctrl, scale, offset, init, limit, stride, rng, false); - IfNode* lower_bound_iff = lower_bound_proj->in(0)->as_If(); - _igvn.hash_delete(lower_bound_iff); - lower_bound_iff->set_req(1, lower_bound_bol); - if (TraceLoopPredicate) tty->print_cr("lower bound check if: %d", lower_bound_iff->_idx); - - // Test the upper bound - Node* upper_bound_bol = rc_predicate(ctrl, scale, offset, init, limit, stride, rng, true); - IfNode* upper_bound_iff = upper_bound_proj->in(0)->as_If(); - _igvn.hash_delete(upper_bound_iff); - upper_bound_iff->set_req(1, upper_bound_bol); - if (TraceLoopPredicate) tty->print_cr("upper bound check if: %d", lower_bound_iff->_idx); - - // Fall through into rest of the clean up code which will move - // any dependent nodes onto the upper bound test. - new_predicate_proj = upper_bound_proj; - -#ifndef PRODUCT - if (TraceLoopOpts && !TraceLoopPredicate) { - tty->print("Predicate RC "); - loop->dump_head(); - } -#endif - } else { - // Loop variant check (for example, range check in non-counted loop) - // with uncommon trap. - continue; - } - assert(new_predicate_proj != NULL, "sanity"); - // Success - attach condition (new_predicate_bol) to predicate if - invar.map_ctrl(proj, new_predicate_proj); // so that invariance test can be appropriate - - // Eliminate the old If in the loop body - dominated_by( new_predicate_proj, iff, proj->_con != new_predicate_proj->_con ); - - hoisted = true; - C->set_major_progress(); - } // end while - -#ifndef PRODUCT - // report that the loop predication has been actually performed - // for this loop - if (TraceLoopPredicate && hoisted) { - tty->print("Loop Predication Performed:"); - loop->dump_head(); - } -#endif - - return hoisted; -} - -//------------------------------loop_predication-------------------------------- -// driver routine for loop predication optimization -bool IdealLoopTree::loop_predication( PhaseIdealLoop *phase) { - bool hoisted = false; - // Recursively promote predicates - if ( _child ) { - hoisted = _child->loop_predication( phase); - } - - // self - if (!_irreducible && !tail()->is_top()) { - hoisted |= phase->loop_predication_impl(this); - } - - if ( _next ) { //sibling - hoisted |= _next->loop_predication( phase); - } - - return hoisted; -} - +//============================================================================= // Process all the loops in the loop tree and replace any fill // patterns with an intrisc version. bool PhaseIdealLoop::do_intrinsify_fill() { @@ -2625,9 +2206,12 @@ bool PhaseIdealLoop::match_fill_loop(IdealLoopTree* lpt, Node*& store, Node*& st if (value != head->phi()) { msg = "unhandled shift in address"; } else { - found_index = true; - shift = n; - assert(type2aelembytes(store->as_Mem()->memory_type(), true) == 1 << shift->in(2)->get_int(), "scale should match"); + if (type2aelembytes(store->as_Mem()->memory_type(), true) != (1 << n->in(2)->get_int())) { + msg = "scale doesn't match"; + } else { + found_index = true; + shift = n; + } } } else if (n->Opcode() == Op_ConvI2L && conv == NULL) { if (n->in(1) == head->phi()) { @@ -2762,6 +2346,13 @@ bool PhaseIdealLoop::intrinsify_fill(IdealLoopTree* lpt) { return false; } +#ifndef PRODUCT + if (TraceLoopOpts) { + tty->print("ArrayFill "); + lpt->dump_head(); + } +#endif + // Now replace the whole loop body by a call to a fill routine that // covers the same region as the loop. Node* base = store->in(MemNode::Address)->as_AddP()->in(AddPNode::Base); diff --git a/hotspot/src/share/vm/opto/loopUnswitch.cpp b/hotspot/src/share/vm/opto/loopUnswitch.cpp index 544b845f8b0..8a103b228ef 100644 --- a/hotspot/src/share/vm/opto/loopUnswitch.cpp +++ b/hotspot/src/share/vm/opto/loopUnswitch.cpp @@ -32,15 +32,17 @@ // // orig: transformed: // if (invariant-test) then +// predicate predicate // loop loop // stmt1 stmt1 // if (invariant-test) then stmt2 // stmt2 stmt4 // else endloop // stmt3 else -// endif loop [clone] -// stmt4 stmt1 [clone] -// endloop stmt3 +// endif predicate [clone] +// stmt4 loop [clone] +// endloop stmt1 [clone] +// stmt3 // stmt4 [clone] // endloop // endif @@ -124,8 +126,15 @@ void PhaseIdealLoop::do_unswitching (IdealLoopTree *loop, Node_List &old_new) { ProjNode* proj_true = create_slow_version_of_loop(loop, old_new); - assert(proj_true->is_IfTrue() && proj_true->unique_ctrl_out() == head, "by construction"); - +#ifdef ASSERT + Node* uniqc = proj_true->unique_ctrl_out(); + Node* entry = head->in(LoopNode::EntryControl); + Node* predicate = find_predicate(entry); + if (predicate != NULL) predicate = predicate->in(0); + assert(proj_true->is_IfTrue() && + (predicate == NULL && uniqc == head || + predicate != NULL && uniqc == predicate), "by construction"); +#endif // Increment unswitch count LoopNode* head_clone = old_new[head->_idx]->as_Loop(); int nct = head->unswitch_count() + 1; @@ -227,21 +236,24 @@ ProjNode* PhaseIdealLoop::create_slow_version_of_loop(IdealLoopTree *loop, register_node(ifslow, outer_loop, iff, dom_depth(iff)); // Clone the loop body. The clone becomes the fast loop. The - // original pre-header will (illegally) have 2 control users (old & new loops). + // original pre-header will (illegally) have 3 control users + // (old & new loops & new if). clone_loop(loop, old_new, dom_depth(head), iff); assert(old_new[head->_idx]->is_Loop(), "" ); // Fast (true) control + Node* iffast_pred = clone_loop_predicates(entry, iffast); _igvn.hash_delete(head); - head->set_req(LoopNode::EntryControl, iffast); - set_idom(head, iffast, dom_depth(head)); + head->set_req(LoopNode::EntryControl, iffast_pred); + set_idom(head, iffast_pred, dom_depth(head)); _igvn._worklist.push(head); // Slow (false) control + Node* ifslow_pred = move_loop_predicates(entry, ifslow); LoopNode* slow_head = old_new[head->_idx]->as_Loop(); _igvn.hash_delete(slow_head); - slow_head->set_req(LoopNode::EntryControl, ifslow); - set_idom(slow_head, ifslow, dom_depth(slow_head)); + slow_head->set_req(LoopNode::EntryControl, ifslow_pred); + set_idom(slow_head, ifslow_pred, dom_depth(slow_head)); _igvn._worklist.push(slow_head); recompute_dom_depth(); diff --git a/hotspot/src/share/vm/opto/loopnode.cpp b/hotspot/src/share/vm/opto/loopnode.cpp index 894a105e841..cd694871233 100644 --- a/hotspot/src/share/vm/opto/loopnode.cpp +++ b/hotspot/src/share/vm/opto/loopnode.cpp @@ -341,7 +341,12 @@ bool PhaseIdealLoop::is_counted_loop( Node *x, IdealLoopTree *loop ) { // assert(x->Opcode() == Op_Loop, "regular loops only"); C->print_method("Before CountedLoop", 3); - +#ifndef PRODUCT + if (TraceLoopOpts) { + tty->print("Counted "); + loop->dump_head(); + } +#endif // If compare points to incr, we are ok. Otherwise the compare // can directly point to the phi; in this case adjust the compare so that // it points to the incr by adjusting the limit. @@ -864,8 +869,10 @@ void IdealLoopTree::split_outer_loop( PhaseIdealLoop *phase ) { Node *outer = new (phase->C, 3) LoopNode( ctl, _head->in(outer_idx) ); outer = igvn.register_new_node_with_optimizer(outer, _head); phase->set_created_loop_node(); + + Node* pred = phase->clone_loop_predicates(ctl, outer); // Outermost loop falls into '_head' loop - _head->set_req(LoopNode::EntryControl, outer); + _head->set_req(LoopNode::EntryControl, pred); _head->del_req(outer_idx); // Split all the Phis up between '_head' loop and 'outer' loop. for (DUIterator_Fast jmax, j = _head->fast_outs(jmax); j < jmax; j++) { @@ -1103,12 +1110,13 @@ bool IdealLoopTree::beautify_loops( PhaseIdealLoop *phase ) { // backedges into a private merge point and use the merge point as // the one true backedge. if( _head->req() > 3 ) { - // Merge the many backedges into a single backedge. + // Merge the many backedges into a single backedge but leave + // the hottest backedge as separate edge for the following peel. merge_many_backedges( phase ); result = true; } - // If I am a shared header (multiple backedges), peel off myself loop. + // If I have one hot backedge, peel off myself loop. // I better be the outermost loop. if( _head->req() > 3 ) { split_outer_loop( phase ); @@ -1433,15 +1441,30 @@ void IdealLoopTree::dump_head( ) const { tty->print("Loop: N%d/N%d ",_head->_idx,_tail->_idx); if (_irreducible) tty->print(" IRREDUCIBLE"); if (UseLoopPredicate) { - Node* entry = _head->in(LoopNode::EntryControl); - if (entry != NULL && entry->is_Proj() && - PhaseIdealLoop::is_uncommon_trap_if_pattern(entry->as_Proj(), Deoptimization::Reason_predicate)) { + Node* entry = PhaseIdealLoop::find_predicate_insertion_point(_head->in(LoopNode::EntryControl), + Deoptimization::Reason_predicate); + if (entry != NULL) { tty->print(" predicated"); } } if (_head->is_CountedLoop()) { CountedLoopNode *cl = _head->as_CountedLoop(); tty->print(" counted"); + + Node* init_n = cl->init_trip(); + if (init_n != NULL && init_n->is_Con()) + tty->print(" [%d,", cl->init_trip()->get_int()); + else + tty->print(" [int,"); + Node* limit_n = cl->limit(); + if (limit_n != NULL && limit_n->is_Con()) + tty->print("%d),", cl->limit()->get_int()); + else + tty->print("int),"); + int stride_con = cl->stride_con(); + if (stride_con > 0) tty->print("+"); + tty->print("%d", stride_con); + if (cl->is_pre_loop ()) tty->print(" pre" ); if (cl->is_main_loop()) tty->print(" main"); if (cl->is_post_loop()) tty->print(" post"); @@ -1541,7 +1564,7 @@ void PhaseIdealLoop::eliminate_useless_predicates() { //----------------------------build_and_optimize------------------------------- // Create a PhaseLoop. Build the ideal Loop tree. Map each Ideal Node to // its corresponding LoopNode. If 'optimize' is true, do some loop cleanups. -void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool do_loop_pred) { +void PhaseIdealLoop::build_and_optimize(bool do_split_ifs) { ResourceMark rm; int old_progress = C->major_progress(); @@ -1573,6 +1596,13 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool do_loop_pred) { // Do not need a safepoint at the top level _ltree_root->_has_sfpt = 1; + // Initialize Dominators. + // Checked in clone_loop_predicate() during beautify_loops(). + _idom_size = 0; + _idom = NULL; + _dom_depth = NULL; + _dom_stk = NULL; + // Empty pre-order array allocate_preorders(); @@ -1698,8 +1728,9 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool do_loop_pred) { return; } - // some parser-inserted loop predicates could never be used by loop - // predication. Eliminate them before loop optimization + // Some parser-inserted loop predicates could never be used by loop + // predication or they were moved away from loop during some optimizations. + // For example, peeling. Eliminate them before next loop optimizations. if (UseLoopPredicate) { eliminate_useless_predicates(); } @@ -1750,7 +1781,7 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool do_loop_pred) { } // Perform loop predication before iteration splitting - if (do_loop_pred && C->has_loops() && !C->major_progress()) { + if (C->has_loops() && !C->major_progress() && (C->predicate_count() > 0)) { _ltree_root->_child->loop_predication(this); } @@ -1793,8 +1824,20 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool do_loop_pred) { C->set_major_progress(); } - // Convert scalar to superword operations + // Keep loop predicates and perform optimizations with them + // until no more loop optimizations could be done. + // After that switch predicates off and do more loop optimizations. + if (!C->major_progress() && (C->predicate_count() > 0)) { + C->cleanup_loop_predicates(_igvn); +#ifndef PRODUCT + if (TraceLoopOpts) { + tty->print_cr("PredicatesOff"); + } +#endif + C->set_major_progress(); + } + // Convert scalar to superword operations at the end of all loop opts. if (UseSuperWord && C->has_loops() && !C->major_progress()) { // SuperWord transform SuperWord sw(this); diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp index 9edcdf2922a..2b6ea369a67 100644 --- a/hotspot/src/share/vm/opto/loopnode.hpp +++ b/hotspot/src/share/vm/opto/loopnode.hpp @@ -57,7 +57,12 @@ class LoopNode : public RegionNode { protected: short _loop_flags; // Names for flag bitfields - enum { pre_post_main=0, inner_loop=8, partial_peel_loop=16, partial_peel_failed=32 }; + enum { Normal=0, Pre=1, Main=2, Post=3, PreMainPostFlagsMask=3, + MainHasNoPreLoop=4, + HasExactTripCount=8, + InnerLoop=16, + PartialPeelLoop=32, + PartialPeelFailed=64 }; char _unswitch_count; enum { _unswitch_max=3 }; @@ -65,13 +70,13 @@ public: // Names for edge indices enum { Self=0, EntryControl, LoopBackControl }; - int is_inner_loop() const { return _loop_flags & inner_loop; } - void set_inner_loop() { _loop_flags |= inner_loop; } + int is_inner_loop() const { return _loop_flags & InnerLoop; } + void set_inner_loop() { _loop_flags |= InnerLoop; } - int is_partial_peel_loop() const { return _loop_flags & partial_peel_loop; } - void set_partial_peel_loop() { _loop_flags |= partial_peel_loop; } - int partial_peel_has_failed() const { return _loop_flags & partial_peel_failed; } - void mark_partial_peel_failed() { _loop_flags |= partial_peel_failed; } + int is_partial_peel_loop() const { return _loop_flags & PartialPeelLoop; } + void set_partial_peel_loop() { _loop_flags |= PartialPeelLoop; } + int partial_peel_has_failed() const { return _loop_flags & PartialPeelFailed; } + void mark_partial_peel_failed() { _loop_flags |= PartialPeelFailed; } int unswitch_max() { return _unswitch_max; } int unswitch_count() { return _unswitch_count; } @@ -137,8 +142,8 @@ class CountedLoopNode : public LoopNode { // the Main CountedLoop. Used to assert that we understand the graph shape. node_idx_t _main_idx; - // Known trip count calculated by policy_maximally_unroll - int _trip_count; + // Known trip count calculated by compute_exact_trip_count() + uint _trip_count; // Expected trip count from profile data float _profile_trip_cnt; @@ -152,7 +157,7 @@ class CountedLoopNode : public LoopNode { public: CountedLoopNode( Node *entry, Node *backedge ) - : LoopNode(entry, backedge), _trip_count(max_jint), + : LoopNode(entry, backedge), _main_idx(0), _trip_count(max_juint), _profile_trip_cnt(COUNT_UNKNOWN), _unrolled_count_log2(0), _node_count_before_unroll(0) { init_class_id(Class_CountedLoop); @@ -194,13 +199,12 @@ public: // A 'main' loop that is ONLY unrolled or peeled, never RCE'd or // Aligned, may be missing it's pre-loop. - enum { Normal=0, Pre=1, Main=2, Post=3, PrePostFlagsMask=3, Main_Has_No_Pre_Loop=4 }; - int is_normal_loop() const { return (_loop_flags&PrePostFlagsMask) == Normal; } - int is_pre_loop () const { return (_loop_flags&PrePostFlagsMask) == Pre; } - int is_main_loop () const { return (_loop_flags&PrePostFlagsMask) == Main; } - int is_post_loop () const { return (_loop_flags&PrePostFlagsMask) == Post; } - int is_main_no_pre_loop() const { return _loop_flags & Main_Has_No_Pre_Loop; } - void set_main_no_pre_loop() { _loop_flags |= Main_Has_No_Pre_Loop; } + int is_normal_loop() const { return (_loop_flags&PreMainPostFlagsMask) == Normal; } + int is_pre_loop () const { return (_loop_flags&PreMainPostFlagsMask) == Pre; } + int is_main_loop () const { return (_loop_flags&PreMainPostFlagsMask) == Main; } + int is_post_loop () const { return (_loop_flags&PreMainPostFlagsMask) == Post; } + int is_main_no_pre_loop() const { return _loop_flags & MainHasNoPreLoop; } + void set_main_no_pre_loop() { _loop_flags |= MainHasNoPreLoop; } int main_idx() const { return _main_idx; } @@ -208,10 +212,19 @@ public: void set_pre_loop (CountedLoopNode *main) { assert(is_normal_loop(),""); _loop_flags |= Pre ; _main_idx = main->_idx; } void set_main_loop ( ) { assert(is_normal_loop(),""); _loop_flags |= Main; } void set_post_loop (CountedLoopNode *main) { assert(is_normal_loop(),""); _loop_flags |= Post; _main_idx = main->_idx; } - void set_normal_loop( ) { _loop_flags &= ~PrePostFlagsMask; } + void set_normal_loop( ) { _loop_flags &= ~PreMainPostFlagsMask; } - void set_trip_count(int tc) { _trip_count = tc; } - int trip_count() { return _trip_count; } + void set_trip_count(uint tc) { _trip_count = tc; } + uint trip_count() { return _trip_count; } + + bool has_exact_trip_count() const { return (_loop_flags & HasExactTripCount) != 0; } + void set_exact_trip_count(uint tc) { + _trip_count = tc; + _loop_flags |= HasExactTripCount; + } + void set_nonexact_trip_count() { + _loop_flags &= ~HasExactTripCount; + } void set_profile_trip_cnt(float ptc) { _profile_trip_cnt = ptc; } float profile_trip_cnt() { return _profile_trip_cnt; } @@ -384,6 +397,9 @@ public: // Micro-benchmark spamming. Remove empty loops. bool policy_do_remove_empty_loop( PhaseIdealLoop *phase ); + // Convert one iteration loop into normal code. + bool policy_do_one_iteration_loop( PhaseIdealLoop *phase ); + // Return TRUE or FALSE if the loop should be peeled or not. Peel if we can // make some loop-invariant test (usually a null-check) happen before the // loop. @@ -412,6 +428,9 @@ public: // Return TRUE if "iff" is a range check. bool is_range_check_if(IfNode *iff, PhaseIdealLoop *phase, Invariance& invar) const; + // Compute loop exact trip count if possible + void compute_exact_trip_count( PhaseIdealLoop *phase ); + // Compute loop trip count from profile data void compute_profile_trip_cnt( PhaseIdealLoop *phase ); @@ -706,11 +725,11 @@ private: _dom_lca_tags(arena()), // Thread::resource_area _verify_me(NULL), _verify_only(true) { - build_and_optimize(false, false); + build_and_optimize(false); } // build the loop tree and perform any requested optimizations - void build_and_optimize(bool do_split_if, bool do_loop_pred); + void build_and_optimize(bool do_split_if); public: // Dominators for the sea of nodes @@ -721,13 +740,13 @@ public: Node *dom_lca_internal( Node *n1, Node *n2 ) const; // Compute the Ideal Node to Loop mapping - PhaseIdealLoop( PhaseIterGVN &igvn, bool do_split_ifs, bool do_loop_pred) : + PhaseIdealLoop( PhaseIterGVN &igvn, bool do_split_ifs) : PhaseTransform(Ideal_Loop), _igvn(igvn), _dom_lca_tags(arena()), // Thread::resource_area _verify_me(NULL), _verify_only(false) { - build_and_optimize(do_split_ifs, do_loop_pred); + build_and_optimize(do_split_ifs); } // Verify that verify_me made the same decisions as a fresh run. @@ -737,7 +756,7 @@ public: _dom_lca_tags(arena()), // Thread::resource_area _verify_me(verify_me), _verify_only(false) { - build_and_optimize(false, false); + build_and_optimize(false); } // Build and verify the loop tree without modifying the graph. This @@ -830,7 +849,26 @@ public: Deoptimization::DeoptReason reason); void register_control(Node* n, IdealLoopTree *loop, Node* pred); - // Find a good location to insert a predicate + // Clone loop predicates to cloned loops (peeled, unswitched) + static ProjNode* clone_predicate(ProjNode* predicate_proj, Node* new_entry, + Deoptimization::DeoptReason reason, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn); + static ProjNode* move_predicate(ProjNode* predicate_proj, Node* new_entry, + Deoptimization::DeoptReason reason, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn); + static Node* clone_loop_predicates(Node* old_entry, Node* new_entry, + bool move_predicates, + PhaseIdealLoop* loop_phase, + PhaseIterGVN* igvn); + Node* clone_loop_predicates(Node* old_entry, Node* new_entry); + Node* move_loop_predicates(Node* old_entry, Node* new_entry); + + void eliminate_loop_predicates(Node* entry); + static Node* skip_loop_predicates(Node* entry); + + // Find a good location to insert a predicate static ProjNode* find_predicate_insertion_point(Node* start_c, Deoptimization::DeoptReason reason); // Find a predicate static Node* find_predicate(Node* entry); diff --git a/hotspot/src/share/vm/opto/loopopts.cpp b/hotspot/src/share/vm/opto/loopopts.cpp index 831c6cb6e42..1be37420607 100644 --- a/hotspot/src/share/vm/opto/loopopts.cpp +++ b/hotspot/src/share/vm/opto/loopopts.cpp @@ -2139,9 +2139,12 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p // // orig // -// stmt1 -// | -// v +// stmt1 +// | +// v +// loop predicate +// | +// v // loop<----+ // | | // stmt2 | @@ -2172,6 +2175,9 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p // after clone loop // // stmt1 +// | +// v +// loop predicate // / \ // clone / \ orig // / \ @@ -2210,12 +2216,15 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p // after partial peel // // stmt1 +// | +// v +// loop predicate // / // clone / orig // / TOP // / \ // v v -// TOP->region region----+ +// TOP->loop loop----+ // | | | // stmt2 stmt2 | // | | | @@ -2253,13 +2262,17 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p // stmt1 // | // v +// stmt2 clone +// | +// v // ........> ifA clone // : / | // dom / | // : v v // : false true // : | | -// : | stmt2 clone +// : | v +// : | loop predicate // : | | // : | v // : | newloop<-----+ @@ -2289,6 +2302,7 @@ bool PhaseIdealLoop::is_valid_clone_loop_form( IdealLoopTree *loop, Node_List& p // bool PhaseIdealLoop::partial_peel( IdealLoopTree *loop, Node_List &old_new ) { + assert(!loop->_head->is_CountedLoop(), "Non-counted loop only"); if (!loop->_head->is_Loop()) { return false; } @@ -2316,6 +2330,7 @@ bool PhaseIdealLoop::partial_peel( IdealLoopTree *loop, Node_List &old_new ) { } } + Node* entry = head->in(LoopNode::EntryControl); int dd = dom_depth(head); // Step 1: find cut point @@ -2612,6 +2627,8 @@ bool PhaseIdealLoop::partial_peel( IdealLoopTree *loop, Node_List &old_new ) { // Backedge of the surviving new_head (the clone) is original last_peel _igvn.hash_delete(new_head_clone); + Node* new_entry = move_loop_predicates(entry, new_head_clone->in(LoopNode::EntryControl)); + new_head_clone->set_req(LoopNode::EntryControl, new_entry); new_head_clone->set_req(LoopNode::LoopBackControl, last_peel); _igvn._worklist.push(new_head_clone); diff --git a/hotspot/src/share/vm/opto/memnode.cpp b/hotspot/src/share/vm/opto/memnode.cpp index d5d53132a3a..7ba8df53eba 100644 --- a/hotspot/src/share/vm/opto/memnode.cpp +++ b/hotspot/src/share/vm/opto/memnode.cpp @@ -2159,9 +2159,12 @@ Node *StoreNode::Ideal(PhaseGVN *phase, bool can_reshape) { Node* mem = in(MemNode::Memory); Node* address = in(MemNode::Address); - // Back-to-back stores to same address? Fold em up. - // Generally unsafe if I have intervening uses... - if (mem->is_Store() && phase->eqv_uncast(mem->in(MemNode::Address), address)) { + // Back-to-back stores to same address? Fold em up. Generally + // unsafe if I have intervening uses... Also disallowed for StoreCM + // since they must follow each StoreP operation. Redundant StoreCMs + // are eliminated just before matching in final_graph_reshape. + if (mem->is_Store() && phase->eqv_uncast(mem->in(MemNode::Address), address) && + mem->Opcode() != Op_StoreCM) { // Looking at a dead closed cycle of memory? assert(mem != mem->in(MemNode::Memory), "dead loop in StoreNode::Ideal"); diff --git a/hotspot/src/share/vm/opto/output.cpp b/hotspot/src/share/vm/opto/output.cpp index 1205cc2639d..2c185d5b33b 100644 --- a/hotspot/src/share/vm/opto/output.cpp +++ b/hotspot/src/share/vm/opto/output.cpp @@ -1354,15 +1354,20 @@ void Compile::Fill_buffer() { // Check that oop-store precedes the card-mark else if( mach->ideal_Opcode() == Op_StoreCM ) { uint storeCM_idx = j; - Node *oop_store = mach->in(mach->_cnt); // First precedence edge - assert( oop_store != NULL, "storeCM expects a precedence edge"); - uint i4; - for( i4 = 0; i4 < last_inst; ++i4 ) { - if( b->_nodes[i4] == oop_store ) break; + int count = 0; + for (uint prec = mach->req(); prec < mach->len(); prec++) { + Node *oop_store = mach->in(prec); // Precedence edge + if (oop_store == NULL) continue; + count++; + uint i4; + for( i4 = 0; i4 < last_inst; ++i4 ) { + if( b->_nodes[i4] == oop_store ) break; + } + // Note: This test can provide a false failure if other precedence + // edges have been added to the storeCMNode. + assert( i4 == last_inst || i4 < storeCM_idx, "CM card-mark executes before oop-store"); } - // Note: This test can provide a false failure if other precedence - // edges have been added to the storeCMNode. - assert( i4 == last_inst || i4 < storeCM_idx, "CM card-mark executes before oop-store"); + assert(count > 0, "storeCM expects at least one precedence edge"); } #endif diff --git a/hotspot/src/share/vm/opto/parse2.cpp b/hotspot/src/share/vm/opto/parse2.cpp index 808a2bdeb3a..26684eaede8 100644 --- a/hotspot/src/share/vm/opto/parse2.cpp +++ b/hotspot/src/share/vm/opto/parse2.cpp @@ -795,8 +795,9 @@ float Parse::dynamic_branch_prediction(float &cnt) { taken = method()->scale_count(taken); not_taken = method()->scale_count(not_taken); - // Give up if too few counts to be meaningful - if (taken + not_taken < 40) { + // Give up if too few (or too many, in which case the sum will overflow) counts to be meaningful. + // We also check that individual counters are positive first, overwise the sum can become positive. + if (taken < 0 || not_taken < 0 || taken + not_taken < 40) { if (C->log() != NULL) { C->log()->elem("branch target_bci='%d' taken='%d' not_taken='%d'", iter().get_dest(), taken, not_taken); } @@ -804,13 +805,13 @@ float Parse::dynamic_branch_prediction(float &cnt) { } // Compute frequency that we arrive here - int sum = taken + not_taken; + float sum = taken + not_taken; // Adjust, if this block is a cloned private block but the // Jump counts are shared. Taken the private counts for // just this path instead of the shared counts. if( block()->count() > 0 ) sum = block()->count(); - cnt = (float)sum / (float)FreqCountInvocations; + cnt = sum / FreqCountInvocations; // Pin probability to sane limits float prob; diff --git a/hotspot/src/share/vm/opto/phaseX.hpp b/hotspot/src/share/vm/opto/phaseX.hpp index 7f1060c05cd..4d19708ede8 100644 --- a/hotspot/src/share/vm/opto/phaseX.hpp +++ b/hotspot/src/share/vm/opto/phaseX.hpp @@ -471,6 +471,13 @@ public: _delay_transform = delay; } + // Clone loop predicates. Defined in loopTransform.cpp. + Node* clone_loop_predicates(Node* old_entry, Node* new_entry); + Node* move_loop_predicates(Node* old_entry, Node* new_entry); + // Create a new if below new_entry for the predicate to be cloned + ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, + Deoptimization::DeoptReason reason); + #ifndef PRODUCT protected: // Sub-quadratic implementation of VerifyIterativeGVN. diff --git a/hotspot/src/share/vm/opto/split_if.cpp b/hotspot/src/share/vm/opto/split_if.cpp index 91792368f04..dba6ed1f29a 100644 --- a/hotspot/src/share/vm/opto/split_if.cpp +++ b/hotspot/src/share/vm/opto/split_if.cpp @@ -399,6 +399,9 @@ void PhaseIdealLoop::do_split_if( Node *iff ) { #ifndef PRODUCT if( PrintOpto && VerifyLoopOptimizations ) tty->print_cr("Split-if"); + if (TraceLoopOpts) { + tty->print_cr("SplitIf"); + } #endif C->set_major_progress(); Node *region = iff->in(0); diff --git a/hotspot/src/share/vm/opto/superword.cpp b/hotspot/src/share/vm/opto/superword.cpp index 1230ebe51fc..6e1be24ddfe 100644 --- a/hotspot/src/share/vm/opto/superword.cpp +++ b/hotspot/src/share/vm/opto/superword.cpp @@ -1132,6 +1132,13 @@ void SuperWord::co_locate_pack(Node_List* pk) { void SuperWord::output() { if (_packset.length() == 0) return; +#ifndef PRODUCT + if (TraceLoopOpts) { + tty->print("SuperWord "); + lpt()->dump_head(); + } +#endif + // MUST ENSURE main loop's initial value is properly aligned: // (iv_initial_value + min_iv_offset) % vector_width_in_bytes() == 0 diff --git a/hotspot/src/share/vm/opto/vectornode.hpp b/hotspot/src/share/vm/opto/vectornode.hpp index b4915ddfdda..4d28703c885 100644 --- a/hotspot/src/share/vm/opto/vectornode.hpp +++ b/hotspot/src/share/vm/opto/vectornode.hpp @@ -32,6 +32,7 @@ //------------------------------VectorNode-------------------------------------- // Vector Operation class VectorNode : public Node { + virtual uint size_of() const { return sizeof(*this); } protected: uint _length; // vector length virtual BasicType elt_basic_type() const = 0; // Vector element basic type diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp index d77c7ce9e24..56fa2e167c3 100644 --- a/hotspot/src/share/vm/prims/jni.cpp +++ b/hotspot/src/share/vm/prims/jni.cpp @@ -29,6 +29,9 @@ #include "classfile/systemDictionary.hpp" #include "classfile/vmSymbols.hpp" #include "interpreter/linkResolver.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif // SERIALGC #include "memory/allocation.inline.hpp" #include "memory/gcLocker.inline.hpp" #include "memory/oopFactory.hpp" @@ -1724,6 +1727,26 @@ JNI_ENTRY(jobject, jni_GetObjectField(JNIEnv *env, jobject obj, jfieldID fieldID o = JvmtiExport::jni_GetField_probe(thread, obj, o, k, fieldID, false); } jobject ret = JNIHandles::make_local(env, o->obj_field(offset)); +#ifndef SERIALGC + // If G1 is enabled and we are accessing the value of the referent + // field in a reference object then we need to register a non-null + // referent with the SATB barrier. + if (UseG1GC) { + bool needs_barrier = false; + + if (ret != NULL && + offset == java_lang_ref_Reference::referent_offset && + instanceKlass::cast(k)->reference_type() != REF_NONE) { + assert(instanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity"); + needs_barrier = true; + } + + if (needs_barrier) { + oop referent = JNIHandles::resolve(ret); + G1SATBCardTableModRefBS::enqueue(referent); + } + } +#endif // SERIALGC DTRACE_PROBE1(hotspot_jni, GetObjectField__return, ret); return ret; JNI_END diff --git a/hotspot/src/share/vm/prims/jvm.h b/hotspot/src/share/vm/prims/jvm.h index 07097af3cc5..f37d83342f8 100644 --- a/hotspot/src/share/vm/prims/jvm.h +++ b/hotspot/src/share/vm/prims/jvm.h @@ -1062,7 +1062,7 @@ enum { JVM_CONSTANT_NameAndType, JVM_CONSTANT_MethodHandle = 15, // JSR 292 JVM_CONSTANT_MethodType = 16, // JSR 292 - JVM_CONSTANT_InvokeDynamicTrans = 17, // JSR 292, only occurs in old class files + //JVM_CONSTANT_(unused) = 17, // JSR 292 early drafts only JVM_CONSTANT_InvokeDynamic = 18, // JSR 292 JVM_CONSTANT_ExternalMax = 18 // Last tag found in classfiles }; diff --git a/hotspot/src/share/vm/prims/jvmtiEnv.cpp b/hotspot/src/share/vm/prims/jvmtiEnv.cpp index a6b0f1f4c80..61a8a2319ae 100644 --- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp +++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp @@ -525,7 +525,7 @@ JvmtiEnv::AddToSystemClassLoaderSearch(const char* segment) { ObjectLocker ol(loader, THREAD); // need the path as java.lang.String - Handle path = java_lang_String::create_from_str(segment, THREAD); + Handle path = java_lang_String::create_from_platform_dependent_str(segment, THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return JVMTI_ERROR_INTERNAL; diff --git a/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp b/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp index cca51ef2bfd..cd18199aa69 100644 --- a/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp +++ b/hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp @@ -319,8 +319,11 @@ void JvmtiManageCapabilities::update() { bool enter_all_methods = interp_events || avail.can_generate_breakpoint_events; - UseFastEmptyMethods = !enter_all_methods; - UseFastAccessorMethods = !enter_all_methods; + if (enter_all_methods) { + // Disable these when tracking the bytecodes + UseFastEmptyMethods = false; + UseFastAccessorMethods = false; + } if (avail.can_generate_breakpoint_events) { RewriteFrequentPairs = false; diff --git a/hotspot/src/share/vm/prims/methodHandleWalk.cpp b/hotspot/src/share/vm/prims/methodHandleWalk.cpp index 915cf35995c..3570d2db403 100644 --- a/hotspot/src/share/vm/prims/methodHandleWalk.cpp +++ b/hotspot/src/share/vm/prims/methodHandleWalk.cpp @@ -959,12 +959,6 @@ MethodHandleCompiler::make_invoke(methodOop m, vmIntrinsics::ID iid, if (m == NULL) { // Get the intrinsic methodOop. m = vmIntrinsics::method_for(iid); - if (m == NULL && iid == vmIntrinsics::_checkSpreadArgument && AllowTransitionalJSR292) { - m = vmIntrinsics::method_for(vmIntrinsics::_checkSpreadArgument_TRANS); - if (m == NULL) - // sun.dyn.MethodHandleImpl not found, look for java.dyn.MethodHandleNatives: - m = vmIntrinsics::method_for(vmIntrinsics::_checkSpreadArgument_TRANS2); - } if (m == NULL) { ArgToken zero; lose(vmIntrinsics::name_at(iid), CHECK_(zero)); diff --git a/hotspot/src/share/vm/prims/methodHandleWalk.hpp b/hotspot/src/share/vm/prims/methodHandleWalk.hpp index cc4eed30f73..0136d9e3241 100644 --- a/hotspot/src/share/vm/prims/methodHandleWalk.hpp +++ b/hotspot/src/share/vm/prims/methodHandleWalk.hpp @@ -343,6 +343,7 @@ private: int cpool_symbol_put(int tag, Symbol* con) { if (con == NULL) return 0; ConstantValue* cv = new ConstantValue(tag, con); + con->increment_refcount(); return _constants.append(cv); } diff --git a/hotspot/src/share/vm/prims/methodHandles.cpp b/hotspot/src/share/vm/prims/methodHandles.cpp index 2aae1f7f3ec..eb0ba3df1f0 100644 --- a/hotspot/src/share/vm/prims/methodHandles.cpp +++ b/hotspot/src/share/vm/prims/methodHandles.cpp @@ -928,6 +928,7 @@ static const char* always_null_names[] = { }; static bool is_always_null_type(klassOop klass) { + if (klass == NULL) return false; // safety if (!Klass::cast(klass)->oop_is_instance()) return false; instanceKlass* ik = instanceKlass::cast(klass); // Must be on the boot class path: @@ -944,6 +945,8 @@ static bool is_always_null_type(klassOop klass) { } bool MethodHandles::class_cast_needed(klassOop src, klassOop dst) { + if (dst == NULL) return true; + if (src == NULL) return (dst != SystemDictionary::Object_klass()); if (src == dst || dst == SystemDictionary::Object_klass()) return false; // quickest checks Klass* srck = Klass::cast(src); @@ -1026,10 +1029,15 @@ void MethodHandles::verify_method_signature(methodHandle m, int first_ptype_pos, KlassHandle insert_ptype, TRAPS) { + Handle mhi_type; + if (m->is_method_handle_invoke()) { + // use this more exact typing instead of the symbolic signature: + mhi_type = Handle(THREAD, m->method_handle_type()); + } objArrayHandle ptypes(THREAD, java_lang_invoke_MethodType::ptypes(mtype())); int pnum = first_ptype_pos; int pmax = ptypes->length(); - int mnum = 0; // method argument + int anum = 0; // method argument const char* err = NULL; ResourceMark rm(THREAD); for (SignatureStream ss(m->signature()); !ss.is_done(); ss.next()) { @@ -1048,47 +1056,70 @@ void MethodHandles::verify_method_signature(methodHandle m, else ptype_oop = insert_ptype->java_mirror(); pnum += 1; - mnum += 1; + anum += 1; } - klassOop pklass = NULL; - BasicType ptype = T_OBJECT; - if (ptype_oop != NULL) - ptype = java_lang_Class::as_BasicType(ptype_oop, &pklass); - else - // null does not match any non-reference; use Object to report the error - pklass = SystemDictionary::Object_klass(); - klassOop mklass = NULL; - BasicType mtype = ss.type(); - if (mtype == T_ARRAY) mtype = T_OBJECT; // fold all refs to T_OBJECT - if (mtype == T_OBJECT) { - if (ptype_oop == NULL) { + KlassHandle pklass; + BasicType ptype = T_OBJECT; + bool have_ptype = false; + // missing ptype_oop does not match any non-reference; use Object to report the error + pklass = SystemDictionaryHandles::Object_klass(); + if (ptype_oop != NULL) { + have_ptype = true; + klassOop pklass_oop = NULL; + ptype = java_lang_Class::as_BasicType(ptype_oop, &pklass_oop); + pklass = KlassHandle(THREAD, pklass_oop); + } + ptype_oop = NULL; //done with this + KlassHandle aklass; + BasicType atype = ss.type(); + if (atype == T_ARRAY) atype = T_OBJECT; // fold all refs to T_OBJECT + if (atype == T_OBJECT) { + if (!have_ptype) { // null matches any reference continue; } - KlassHandle pklass_handle(THREAD, pklass); pklass = NULL; - // If we fail to resolve types at this point, we will throw an error. - Symbol* name = ss.as_symbol(CHECK); - instanceKlass* mk = instanceKlass::cast(m->method_holder()); - Handle loader(THREAD, mk->class_loader()); - Handle domain(THREAD, mk->protection_domain()); - mklass = SystemDictionary::resolve_or_null(name, loader, domain, CHECK); - pklass = pklass_handle(); - if (mklass == NULL && pklass != NULL && - Klass::cast(pklass)->name() == name && - m->is_method_handle_invoke()) { - // Assume a match. We can't really decode the signature of MH.invoke*. - continue; + if (mhi_type.is_null()) { + // If we fail to resolve types at this point, we will usually throw an error. + TempNewSymbol name = ss.as_symbol_or_null(); + if (name != NULL) { + instanceKlass* mk = instanceKlass::cast(m->method_holder()); + Handle loader(THREAD, mk->class_loader()); + Handle domain(THREAD, mk->protection_domain()); + klassOop aklass_oop = SystemDictionary::resolve_or_null(name, loader, domain, CHECK); + if (aklass_oop != NULL) + aklass = KlassHandle(THREAD, aklass_oop); + } + } else { + // for method handle invokers we don't look at the name in the signature + oop atype_oop; + if (ss.at_return_type()) + atype_oop = java_lang_invoke_MethodType::rtype(mhi_type()); + else + atype_oop = java_lang_invoke_MethodType::ptype(mhi_type(), anum-1); + klassOop aklass_oop = NULL; + atype = java_lang_Class::as_BasicType(atype_oop, &aklass_oop); + aklass = KlassHandle(THREAD, aklass_oop); } } if (!ss.at_return_type()) { - err = check_argument_type_change(ptype, pklass, mtype, mklass, mnum); + err = check_argument_type_change(ptype, pklass(), atype, aklass(), anum); } else { - err = check_return_type_change(mtype, mklass, ptype, pklass); // note reversal! + err = check_return_type_change(atype, aklass(), ptype, pklass()); // note reversal! } if (err != NULL) break; } if (err != NULL) { +#ifndef PRODUCT + if (PrintMiscellaneous && (Verbose || WizardMode)) { + tty->print("*** verify_method_signature failed: "); + java_lang_invoke_MethodType::print_signature(mtype(), tty); + tty->cr(); + tty->print_cr(" first_ptype_pos = %d, insert_ptype = "UINTX_FORMAT, first_ptype_pos, insert_ptype()); + tty->print(" Failing method: "); + m->print(); + } +#endif //PRODUCT THROW_MSG(vmSymbols::java_lang_InternalError(), err); } } @@ -1288,10 +1319,12 @@ const char* MethodHandles::check_argument_type_change(BasicType src_type, // format, format, format const char* src_name = type2name(src_type); const char* dst_name = type2name(dst_type); - if (src_type == T_OBJECT) src_name = Klass::cast(src_klass)->external_name(); - if (dst_type == T_OBJECT) dst_name = Klass::cast(dst_klass)->external_name(); if (src_name == NULL) src_name = "unknown type"; if (dst_name == NULL) dst_name = "unknown type"; + if (src_type == T_OBJECT) + src_name = (src_klass != NULL) ? Klass::cast(src_klass)->external_name() : "an unresolved class"; + if (dst_type == T_OBJECT) + dst_name = (dst_klass != NULL) ? Klass::cast(dst_klass)->external_name() : "an unresolved class"; size_t msglen = strlen(err) + strlen(src_name) + strlen(dst_name) + (argnum < 10 ? 1 : 11); char* msg = NEW_RESOURCE_ARRAY(char, msglen + 1); @@ -2488,74 +2521,21 @@ JVM_ENTRY(jint, MHN_getMembers(JNIEnv *env, jobject igcls, } JVM_END -JVM_ENTRY(void, MHN_registerBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh, jobject bsm_jh)) { - instanceKlassHandle ik = MethodHandles::resolve_instance_klass(caller_jh, THREAD); - if (!AllowTransitionalJSR292) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "registerBootstrapMethod is only supported in JSR 292 EDR"); - } - ik->link_class(CHECK); - if (!java_lang_invoke_MethodHandle::is_instance(JNIHandles::resolve(bsm_jh))) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "method handle"); - } - const char* err = NULL; - if (ik->is_initialized() || ik->is_in_error_state()) { - err = "too late: class is already initialized"; - } else { - ObjectLocker ol(ik, THREAD); // note: this should be a recursive lock - if (ik->is_not_initialized() || - (ik->is_being_initialized() && ik->is_reentrant_initialization(THREAD))) { - if (ik->bootstrap_method() != NULL) { - err = "class is already equipped with a bootstrap method"; - } else { - ik->set_bootstrap_method(JNIHandles::resolve_non_null(bsm_jh)); - err = NULL; - } - } else { - err = "class is already initialized"; - if (ik->is_being_initialized()) - err = "class is already being initialized in a different thread"; - } - } - if (err != NULL) { - THROW_MSG(vmSymbols::java_lang_IllegalStateException(), err); - } -} -JVM_END - -JVM_ENTRY(jobject, MHN_getBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh)) { - if (!AllowTransitionalJSR292) - THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(), "getBootstrap: transitional only"); - instanceKlassHandle ik = MethodHandles::resolve_instance_klass(caller_jh, THREAD); - return JNIHandles::make_local(THREAD, ik->bootstrap_method()); -} -JVM_END - -JVM_ENTRY(void, MHN_setCallSiteTarget(JNIEnv *env, jobject igcls, jobject site_jh, jobject target_jh)) { - if (!AllowTransitionalJSR292) - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "setCallSite: transitional only"); -} -JVM_END - /// JVM_RegisterMethodHandleMethods #define LANG "Ljava/lang/" -#define JLINV "Ljava/lang/invoke/" /* standard package */ -#define JDYN "Ljava/dyn/" /* alternative package to JLINV if AllowTransitionalJSR292 */ -#define IDYN "Lsun/dyn/" /* alternative package to JDYN if AllowTransitionalJSR292 */ -// FIXME: After AllowTransitionalJSR292 is removed, replace JDYN and IDYN by JLINV. +#define JLINV "Ljava/lang/invoke/" #define OBJ LANG"Object;" #define CLS LANG"Class;" #define STRG LANG"String;" -#define CST JDYN"CallSite;" -#define MT JDYN"MethodType;" -#define MH JDYN"MethodHandle;" -#define MEM IDYN"MemberName;" -#define AMH IDYN"AdapterMethodHandle;" -#define BMH IDYN"BoundMethodHandle;" -#define DMH IDYN"DirectMethodHandle;" +#define MT JLINV"MethodType;" +#define MH JLINV"MethodHandle;" +#define MEM JLINV"MemberName;" +#define AMH JLINV"AdapterMethodHandle;" +#define BMH JLINV"BoundMethodHandle;" +#define DMH JLINV"DirectMethodHandle;" #define CC (char*) /*cast a literal from (const char*)*/ #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f) @@ -2579,39 +2559,6 @@ static JNINativeMethod methods[] = { {CC"getMembers", CC"("CLS""STRG""STRG"I"CLS"I["MEM")I", FN_PTR(MHN_getMembers)} }; -// FIXME: Remove methods2 after AllowTransitionalJSR292 is removed. -static JNINativeMethod methods2[] = { - {CC"registerBootstrap", CC"("CLS MH")V", FN_PTR(MHN_registerBootstrap)}, - {CC"getBootstrap", CC"("CLS")"MH, FN_PTR(MHN_getBootstrap)}, - {CC"setCallSiteTarget", CC"("CST MH")V", FN_PTR(MHN_setCallSiteTarget)} -}; - -static void hack_signatures(JNINativeMethod* methods, jint num_methods, const char* from_sig, const char* to_sig) { - for (int i = 0; i < num_methods; i++) { - const char* sig = methods[i].signature; - if (!strstr(sig, from_sig)) continue; - size_t buflen = strlen(sig) + 100; - char* buf = NEW_C_HEAP_ARRAY(char, buflen); - char* bufp = buf; - const char* sigp = sig; - size_t from_len = strlen(from_sig), to_len = strlen(to_sig); - while (*sigp != '\0') { - assert(bufp < buf + buflen - to_len - 1, "oob"); - if (strncmp(sigp, from_sig, from_len) != 0) { - *bufp++ = *sigp++; - } else { - strcpy(bufp, to_sig); - bufp += to_len; - sigp += from_len; - } - } - *bufp = '\0'; - methods[i].signature = buf; // replace with new signature - if (TraceMethodHandles) - tty->print_cr("MethodHandleNatives: %s: change signature %s => %s", methods[i].name, sig, buf); - } -} - // This one function is exported, used by NativeLookup. JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class)) { @@ -2622,92 +2569,41 @@ JVM_ENTRY(void, JVM_RegisterMethodHandleMethods(JNIEnv *env, jclass MHN_class)) return; // bind nothing } - if (SystemDictionary::MethodHandleNatives_klass() != NULL && - SystemDictionary::MethodHandleNatives_klass() != java_lang_Class::as_klassOop(JNIHandles::resolve(MHN_class))) { - warning("multiple versions of MethodHandleNatives in boot classpath; consider using -XX:+PreferTransitionalJSR292"); - THROW_MSG(vmSymbols::java_lang_InternalError(), "multiple versions of MethodHandleNatives in boot classpath; consider using -XX:+PreferTransitionalJSR292"); - } - bool enable_MH = true; - // Loop control. FIXME: Replace by dead reckoning after AllowTransitionalJSR292 is removed. - bool registered_natives = false; - bool try_plain = true, try_JDYN = true, try_IDYN = true; - for (;;) { + { ThreadToNativeFromVM ttnfv(thread); - if (try_plain) { try_plain = false; } - else if (try_JDYN) { try_JDYN = false; hack_signatures(methods, sizeof(methods)/sizeof(JNINativeMethod), IDYN, JDYN); } - else if (try_IDYN) { try_IDYN = false; hack_signatures(methods, sizeof(methods)/sizeof(JNINativeMethod), JDYN, JLINV); } - else { break; } int status = env->RegisterNatives(MHN_class, methods, sizeof(methods)/sizeof(JNINativeMethod)); if (env->ExceptionOccurred()) { + MethodHandles::set_enabled(false); + warning("JSR 292 method handle code is mismatched to this JVM. Disabling support."); + enable_MH = false; env->ExceptionClear(); - // and try again... - } else { - registered_natives = true; - break; } } - if (!registered_natives) { - MethodHandles::set_enabled(false); - warning("JSR 292 method handle code is mismatched to this JVM. Disabling support."); - enable_MH = false; - } if (enable_MH) { - bool found_raise_exception = false; KlassHandle MHN_klass = SystemDictionaryHandles::MethodHandleNatives_klass(); - KlassHandle MHI_klass = SystemDictionaryHandles::MethodHandleImpl_klass(); - // Loop control. FIXME: Replace by dead reckoning after AllowTransitionalJSR292 is removed. - bool try_MHN = true, try_MHI = AllowTransitionalJSR292; - for (;;) { - KlassHandle try_klass; - if (try_MHN) { try_MHN = false; try_klass = MHN_klass; } - else if (try_MHI) { try_MHI = false; try_klass = MHI_klass; } - else { break; } - if (try_klass.is_null()) continue; + if (MHN_klass.not_null()) { TempNewSymbol raiseException_name = SymbolTable::new_symbol("raiseException", CHECK); TempNewSymbol raiseException_sig = SymbolTable::new_symbol("(ILjava/lang/Object;Ljava/lang/Object;)V", CHECK); - methodOop raiseException_method = instanceKlass::cast(try_klass->as_klassOop()) + methodOop raiseException_method = instanceKlass::cast(MHN_klass->as_klassOop()) ->find_method(raiseException_name, raiseException_sig); if (raiseException_method != NULL && raiseException_method->is_static()) { MethodHandles::set_raise_exception_method(raiseException_method); - found_raise_exception = true; - break; + } else { + warning("JSR 292 method handle code is mismatched to this JVM. Disabling support."); + enable_MH = false; } - } - if (!found_raise_exception) { - warning("JSR 292 method handle code is mismatched to this JVM. Disabling support."); + } else { enable_MH = false; } } if (enable_MH) { - if (AllowTransitionalJSR292) { - // We need to link the MethodHandleImpl klass before we generate - // the method handle adapters as the _raise_exception adapter uses - // one of its methods (and its c2i-adapter). - klassOop k = SystemDictionary::MethodHandleImpl_klass(); - if (k != NULL) { - instanceKlass* ik = instanceKlass::cast(k); - ik->link_class(CHECK); - } - } - MethodHandles::generate_adapters(); MethodHandles::set_enabled(true); } - - if (AllowTransitionalJSR292) { - ThreadToNativeFromVM ttnfv(thread); - - int status = env->RegisterNatives(MHN_class, methods2, sizeof(methods2)/sizeof(JNINativeMethod)); - if (env->ExceptionOccurred()) { - // Don't do this, since it's too late: - // MethodHandles::set_enabled(false) - env->ExceptionClear(); - } - } } JVM_END diff --git a/hotspot/src/share/vm/prims/nativeLookup.cpp b/hotspot/src/share/vm/prims/nativeLookup.cpp index f05061bd0c0..af625937e63 100644 --- a/hotspot/src/share/vm/prims/nativeLookup.cpp +++ b/hotspot/src/share/vm/prims/nativeLookup.cpp @@ -117,8 +117,6 @@ static JNINativeMethod lookup_special_native_methods[] = { { CC"Java_sun_misc_Unsafe_registerNatives", NULL, FN_PTR(JVM_RegisterUnsafeMethods) }, { CC"Java_java_lang_invoke_MethodHandleNatives_registerNatives", NULL, FN_PTR(JVM_RegisterMethodHandleMethods) }, - { CC"Java_sun_dyn_MethodHandleNatives_registerNatives", NULL, FN_PTR(JVM_RegisterMethodHandleMethods) }, // AllowTransitionalJSR292 - { CC"Java_java_dyn_MethodHandleNatives_registerNatives", NULL, FN_PTR(JVM_RegisterMethodHandleMethods) }, // AllowTransitionalJSR292 { CC"Java_sun_misc_Perf_registerNatives", NULL, FN_PTR(JVM_RegisterPerfMethods) } }; diff --git a/hotspot/src/share/vm/prims/unsafe.cpp b/hotspot/src/share/vm/prims/unsafe.cpp index 5458bf70e54..e1a21f030fc 100644 --- a/hotspot/src/share/vm/prims/unsafe.cpp +++ b/hotspot/src/share/vm/prims/unsafe.cpp @@ -24,6 +24,9 @@ #include "precompiled.hpp" #include "classfile/vmSymbols.hpp" +#ifndef SERIALGC +#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" +#endif // SERIALGC #include "memory/allocation.inline.hpp" #include "prims/jni.h" #include "prims/jvm.h" @@ -193,7 +196,32 @@ UNSAFE_ENTRY(jobject, Unsafe_GetObject140(JNIEnv *env, jobject unsafe, jobject o UnsafeWrapper("Unsafe_GetObject"); if (obj == NULL) THROW_0(vmSymbols::java_lang_NullPointerException()); GET_OOP_FIELD(obj, offset, v) - return JNIHandles::make_local(env, v); + jobject ret = JNIHandles::make_local(env, v); +#ifndef SERIALGC + // We could be accessing the referent field in a reference + // object. If G1 is enabled then we need to register a non-null + // referent with the SATB barrier. + if (UseG1GC) { + bool needs_barrier = false; + + if (ret != NULL) { + if (offset == java_lang_ref_Reference::referent_offset) { + oop o = JNIHandles::resolve_non_null(obj); + klassOop k = o->klass(); + if (instanceKlass::cast(k)->reference_type() != REF_NONE) { + assert(instanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity"); + needs_barrier = true; + } + } + } + + if (needs_barrier) { + oop referent = JNIHandles::resolve(ret); + G1SATBCardTableModRefBS::enqueue(referent); + } + } +#endif // SERIALGC + return ret; UNSAFE_END UNSAFE_ENTRY(void, Unsafe_SetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint offset, jobject x_h)) @@ -226,7 +254,32 @@ UNSAFE_END UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) UnsafeWrapper("Unsafe_GetObject"); GET_OOP_FIELD(obj, offset, v) - return JNIHandles::make_local(env, v); + jobject ret = JNIHandles::make_local(env, v); +#ifndef SERIALGC + // We could be accessing the referent field in a reference + // object. If G1 is enabled then we need to register non-null + // referent with the SATB barrier. + if (UseG1GC) { + bool needs_barrier = false; + + if (ret != NULL) { + if (offset == java_lang_ref_Reference::referent_offset && obj != NULL) { + oop o = JNIHandles::resolve(obj); + klassOop k = o->klass(); + if (instanceKlass::cast(k)->reference_type() != REF_NONE) { + assert(instanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity"); + needs_barrier = true; + } + } + } + + if (needs_barrier) { + oop referent = JNIHandles::resolve(ret); + G1SATBCardTableModRefBS::enqueue(referent); + } + } +#endif // SERIALGC + return ret; UNSAFE_END UNSAFE_ENTRY(void, Unsafe_SetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h)) diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 550559e0659..f14672034d3 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -59,7 +59,8 @@ #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp" #endif -#define DEFAULT_VENDOR_URL_BUG "http://java.sun.com/webapps/bugreport/crash.jsp" +// Note: This is a special bug reporting site for the JVM +#define DEFAULT_VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/crash.jsp" #define DEFAULT_JAVA_LAUNCHER "generic" char** Arguments::_jvm_flags_array = NULL; @@ -243,6 +244,13 @@ static ObsoleteFlag obsolete_jvm_flags[] = { { "MaxLiveObjectEvacuationRatio", JDK_Version::jdk_update(6,24), JDK_Version::jdk(8) }, { "ForceSharedSpaces", JDK_Version::jdk_update(6,25), JDK_Version::jdk(8) }, + { "UseParallelOldGCCompacting", + JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, + { "UseParallelDensePrefixUpdate", + JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, + { "UseParallelOldGCDensePrefix", + JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, + { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { NULL, JDK_Version(0), JDK_Version(0) } }; @@ -799,26 +807,22 @@ bool Arguments::process_argument(const char* arg, JDK_Version since = JDK_Version(); - if (parse_argument(arg, origin)) { - // do nothing - } else if (is_newly_obsolete(arg, &since)) { - enum { bufsize = 256 }; - char buffer[bufsize]; - since.to_string(buffer, bufsize); - jio_fprintf(defaultStream::error_stream(), - "Warning: The flag %s has been EOL'd as of %s and will" - " be ignored\n", arg, buffer); - } else { - if (!ignore_unrecognized) { - jio_fprintf(defaultStream::error_stream(), - "Unrecognized VM option '%s'\n", arg); - // allow for commandline "commenting out" options like -XX:#+Verbose - if (strlen(arg) == 0 || arg[0] != '#') { - return false; - } - } + if (parse_argument(arg, origin) || ignore_unrecognized) { + return true; } - return true; + + const char * const argname = *arg == '+' || *arg == '-' ? arg + 1 : arg; + if (is_newly_obsolete(arg, &since)) { + char version[256]; + since.to_string(version, sizeof(version)); + warning("ignoring option %s; support was removed in %s", argname, version); + return true; + } + + jio_fprintf(defaultStream::error_stream(), + "Unrecognized VM option '%s'\n", argname); + // allow for commandline "commenting out" options like -XX:#+Verbose + return arg[0] == '#'; } bool Arguments::process_settings_file(const char* file_name, bool should_exist, jboolean ignore_unrecognized) { @@ -962,6 +966,16 @@ void Arguments::set_mode_flags(Mode mode) { UseCompiler = true; UseLoopCounter = true; +#ifndef ZERO + // Turn these off for mixed and comp. Leave them on for Zero. + if (FLAG_IS_DEFAULT(UseFastAccessorMethods)) { + UseFastAccessorMethods = mode == _int; + } + if (FLAG_IS_DEFAULT(UseFastEmptyMethods)) { + UseFastEmptyMethods = mode == _int; + } +#endif + // Default values may be platform/compiler dependent - // use the saved values ClipInlining = Arguments::_ClipInlining; diff --git a/hotspot/src/share/vm/runtime/globals.cpp b/hotspot/src/share/vm/runtime/globals.cpp index e0f99c300a2..efce31ac0fb 100644 --- a/hotspot/src/share/vm/runtime/globals.cpp +++ b/hotspot/src/share/vm/runtime/globals.cpp @@ -63,6 +63,12 @@ bool Flag::is_unlocker() const { bool Flag::is_unlocked() const { if (strcmp(kind, "{diagnostic}") == 0) { + if (strcmp(name, "EnableInvokeDynamic") == 0 && UnlockExperimentalVMOptions && !UnlockDiagnosticVMOptions) { + // transitional logic to allow tests to run until they are changed + static int warned; + if (++warned == 1) warning("Use -XX:+UnlockDiagnosticVMOptions before EnableInvokeDynamic flag"); + return true; + } return UnlockDiagnosticVMOptions; } else if (strcmp(kind, "{experimental}") == 0 || strcmp(kind, "{C2 experimental}") == 0) { diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 32bd45794bc..c16f8866056 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -1355,13 +1355,6 @@ class CommandLineFlags { product(bool, UseParallelOldGC, false, \ "Use the Parallel Old garbage collector") \ \ - product(bool, UseParallelOldGCCompacting, true, \ - "In the Parallel Old garbage collector use parallel compaction") \ - \ - product(bool, UseParallelDensePrefixUpdate, true, \ - "In the Parallel Old garbage collector use parallel dense" \ - " prefix update") \ - \ product(uintx, HeapMaximumCompactionInterval, 20, \ "How often should we maximally compact the heap (not allowing " \ "any dead space)") \ @@ -1381,9 +1374,6 @@ class CommandLineFlags { "The standard deviation used by the par compact dead wood" \ "limiter (a number between 0-100).") \ \ - product(bool, UseParallelOldGCDensePrefix, true, \ - "Use a dense prefix with the Parallel Old garbage collector") \ - \ product(uintx, ParallelGCThreads, 0, \ "Number of parallel threads parallel gc will use") \ \ @@ -3718,13 +3708,7 @@ class CommandLineFlags { experimental(bool, TrustFinalNonStaticFields, false, \ "trust final non-static declarations for constant folding") \ \ - experimental(bool, AllowTransitionalJSR292, true, \ - "recognize pre-PFD formats of invokedynamic") \ - \ - experimental(bool, PreferTransitionalJSR292, false, \ - "prefer pre-PFD APIs on boot class path, if they exist") \ - \ - experimental(bool, AllowInvokeForInvokeGeneric, false, \ + experimental(bool, AllowInvokeGeneric, true, \ "accept MethodHandle.invoke and MethodHandle.invokeGeneric " \ "as equivalent methods") \ \ diff --git a/hotspot/src/share/vm/runtime/os.cpp b/hotspot/src/share/vm/runtime/os.cpp index cf949071bc9..0f84de3d1a2 100644 --- a/hotspot/src/share/vm/runtime/os.cpp +++ b/hotspot/src/share/vm/runtime/os.cpp @@ -1291,3 +1291,41 @@ bool os::is_server_class_machine() { } return result; } + +// Read file line by line, if line is longer than bsize, +// skip rest of line. +int os::get_line_chars(int fd, char* buf, const size_t bsize){ + size_t sz, i = 0; + + // read until EOF, EOL or buf is full + while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-1) && buf[i] != '\n') { + ++i; + } + + if (buf[i] == '\n') { + // EOL reached so ignore EOL character and return + + buf[i] = 0; + return (int) i; + } + + buf[i+1] = 0; + + if (sz != 1) { + // EOF reached. if we read chars before EOF return them and + // return EOF on next call otherwise return EOF + + return (i == 0) ? -1 : (int) i; + } + + // line is longer than size of buf, skip to EOL + int ch; + while (read(fd, &ch, 1) == 1 && ch != '\n') { + // Do nothing + } + + // return initial part of line that fits in buf. + // If we reached EOF, it will be returned on next call. + + return (int) i; +} diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp index b9b9d0c05ae..13a266ea8fa 100644 --- a/hotspot/src/share/vm/runtime/os.hpp +++ b/hotspot/src/share/vm/runtime/os.hpp @@ -658,6 +658,10 @@ class os: AllStatic { // Hook for os specific jvm options that we don't want to abort on seeing static bool obsolete_option(const JavaVMOption *option); + // Read file line by line. If line is longer than bsize, + // rest of line is skipped. Returns number of bytes read or -1 on EOF + static int get_line_chars(int fd, char *buf, const size_t bsize); + // Platform dependent stuff #ifdef TARGET_OS_FAMILY_linux # include "os_linux.hpp" diff --git a/hotspot/src/share/vm/runtime/sharedRuntime.cpp b/hotspot/src/share/vm/runtime/sharedRuntime.cpp index 8e8e2eb812e..820678701f4 100644 --- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp @@ -1700,9 +1700,11 @@ char* SharedRuntime::generate_wrong_method_type_message(JavaThread* thread, message = generate_class_cast_message(objName, targetKlass->external_name()); } else { // %%% need to get the MethodType string, without messing around too much + const char* desc = NULL; // Get a signature from the invoke instruction const char* mhName = "method handle"; const char* targetType = "the required signature"; + int targetArity = -1, mhArity = -1; vframeStream vfst(thread, true); if (!vfst.at_end()) { Bytecode_invoke call(vfst.method(), vfst.bci()); @@ -1716,20 +1718,35 @@ char* SharedRuntime::generate_wrong_method_type_message(JavaThread* thread, && target->is_method_handle_invoke() && required == target->method_handle_type()) { targetType = target->signature()->as_C_string(); + targetArity = ArgumentCount(target->signature()).size(); } } - klassOop kignore; int fignore; - methodOop actual_method = MethodHandles::decode_method(actual, - kignore, fignore); + klassOop kignore; int dmf_flags = 0; + methodOop actual_method = MethodHandles::decode_method(actual, kignore, dmf_flags); + if ((dmf_flags & ~(MethodHandles::_dmf_has_receiver | + MethodHandles::_dmf_does_dispatch | + MethodHandles::_dmf_from_interface)) != 0) + actual_method = NULL; // MH does extra binds, drops, etc. + bool has_receiver = ((dmf_flags & MethodHandles::_dmf_has_receiver) != 0); if (actual_method != NULL) { - if (methodOopDesc::is_method_handle_invoke_name(actual_method->name())) - mhName = "$"; + mhName = actual_method->signature()->as_C_string(); + mhArity = ArgumentCount(actual_method->signature()).size(); + if (!actual_method->is_static()) mhArity += 1; + } else if (java_lang_invoke_MethodHandle::is_instance(actual)) { + oopDesc* mhType = java_lang_invoke_MethodHandle::type(actual); + mhArity = java_lang_invoke_MethodType::ptype_count(mhType); + stringStream st; + java_lang_invoke_MethodType::print_signature(mhType, &st); + mhName = st.as_string(); + } + if (targetArity != -1 && targetArity != mhArity) { + if (has_receiver && targetArity == mhArity-1) + desc = " cannot be called without a receiver argument as "; else - mhName = actual_method->signature()->as_C_string(); - if (mhName[0] == '$') - mhName = actual_method->signature()->as_C_string(); + desc = " cannot be called with a different arity as "; } message = generate_class_cast_message(mhName, targetType, + desc != NULL ? desc : " cannot be called as "); } if (TraceMethodHandles) { diff --git a/hotspot/src/share/vm/runtime/stubRoutines.cpp b/hotspot/src/share/vm/runtime/stubRoutines.cpp index 69aee24e022..6511ce31f37 100644 --- a/hotspot/src/share/vm/runtime/stubRoutines.cpp +++ b/hotspot/src/share/vm/runtime/stubRoutines.cpp @@ -433,3 +433,77 @@ address StubRoutines::select_fill_function(BasicType t, bool aligned, const char #undef RETURN_STUB } + +// constants for computing the copy function +enum { + COPYFUNC_UNALIGNED = 0, + COPYFUNC_ALIGNED = 1, // src, dest aligned to HeapWordSize + COPYFUNC_CONJOINT = 0, + COPYFUNC_DISJOINT = 2 // src != dest, or transfer can descend +}; + +// Note: The condition "disjoint" applies also for overlapping copies +// where an descending copy is permitted (i.e., dest_offset <= src_offset). +address +StubRoutines::select_arraycopy_function(BasicType t, bool aligned, bool disjoint, const char* &name, bool dest_uninitialized) { + int selector = + (aligned ? COPYFUNC_ALIGNED : COPYFUNC_UNALIGNED) + + (disjoint ? COPYFUNC_DISJOINT : COPYFUNC_CONJOINT); + +#define RETURN_STUB(xxx_arraycopy) { \ + name = #xxx_arraycopy; \ + return StubRoutines::xxx_arraycopy(); } + +#define RETURN_STUB_PARM(xxx_arraycopy, parm) { \ + name = #xxx_arraycopy; \ + return StubRoutines::xxx_arraycopy(parm); } + + switch (t) { + case T_BYTE: + case T_BOOLEAN: + switch (selector) { + case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jbyte_arraycopy); + case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jbyte_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jbyte_disjoint_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jbyte_disjoint_arraycopy); + } + case T_CHAR: + case T_SHORT: + switch (selector) { + case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jshort_arraycopy); + case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jshort_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jshort_disjoint_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jshort_disjoint_arraycopy); + } + case T_INT: + case T_FLOAT: + switch (selector) { + case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jint_arraycopy); + case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jint_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jint_disjoint_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jint_disjoint_arraycopy); + } + case T_DOUBLE: + case T_LONG: + switch (selector) { + case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jlong_arraycopy); + case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jlong_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB(jlong_disjoint_arraycopy); + case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB(arrayof_jlong_disjoint_arraycopy); + } + case T_ARRAY: + case T_OBJECT: + switch (selector) { + case COPYFUNC_CONJOINT | COPYFUNC_UNALIGNED: RETURN_STUB_PARM(oop_arraycopy, dest_uninitialized); + case COPYFUNC_CONJOINT | COPYFUNC_ALIGNED: RETURN_STUB_PARM(arrayof_oop_arraycopy, dest_uninitialized); + case COPYFUNC_DISJOINT | COPYFUNC_UNALIGNED: RETURN_STUB_PARM(oop_disjoint_arraycopy, dest_uninitialized); + case COPYFUNC_DISJOINT | COPYFUNC_ALIGNED: RETURN_STUB_PARM(arrayof_oop_disjoint_arraycopy, dest_uninitialized); + } + default: + ShouldNotReachHere(); + return NULL; + } + +#undef RETURN_STUB +#undef RETURN_STUB_PARM +} diff --git a/hotspot/src/share/vm/runtime/stubRoutines.hpp b/hotspot/src/share/vm/runtime/stubRoutines.hpp index 4f3a770eb92..b62727d8294 100644 --- a/hotspot/src/share/vm/runtime/stubRoutines.hpp +++ b/hotspot/src/share/vm/runtime/stubRoutines.hpp @@ -282,6 +282,8 @@ class StubRoutines: AllStatic { static address addr_fpu_subnormal_bias2() { return (address)&_fpu_subnormal_bias2; } + static address select_arraycopy_function(BasicType t, bool aligned, bool disjoint, const char* &name, bool dest_uninitialized); + static address jbyte_arraycopy() { return _jbyte_arraycopy; } static address jshort_arraycopy() { return _jshort_arraycopy; } static address jint_arraycopy() { return _jint_arraycopy; } diff --git a/hotspot/src/share/vm/runtime/sweeper.cpp b/hotspot/src/share/vm/runtime/sweeper.cpp index 535e337f378..0d980526a38 100644 --- a/hotspot/src/share/vm/runtime/sweeper.cpp +++ b/hotspot/src/share/vm/runtime/sweeper.cpp @@ -418,6 +418,11 @@ void NMethodSweeper::speculative_disconnect_nmethods(bool is_full) { // state of the code cache if it's requested. void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) { if (PrintMethodFlushing) { + stringStream s; + // Dump code cache state into a buffer before locking the tty, + // because log_state() will use locks causing lock conflicts. + CodeCache::log_state(&s); + ttyLocker ttyl; tty->print("### sweeper: %s ", msg); if (format != NULL) { @@ -426,10 +431,15 @@ void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) { tty->vprint(format, ap); va_end(ap); } - CodeCache::log_state(tty); tty->cr(); + tty->print_cr(s.as_string()); } if (LogCompilation && (xtty != NULL)) { + stringStream s; + // Dump code cache state into a buffer before locking the tty, + // because log_state() will use locks causing lock conflicts. + CodeCache::log_state(&s); + ttyLocker ttyl; xtty->begin_elem("sweeper state='%s' traversals='" INTX_FORMAT "' ", msg, (intx)traversal_count()); if (format != NULL) { @@ -438,7 +448,7 @@ void NMethodSweeper::log_sweep(const char* msg, const char* format, ...) { xtty->vprint(format, ap); va_end(ap); } - CodeCache::log_state(xtty); + xtty->print(s.as_string()); xtty->stamp(); xtty->end_elem(); } diff --git a/hotspot/src/share/vm/shark/llvmHeaders.hpp b/hotspot/src/share/vm/shark/llvmHeaders.hpp index f7a9c90f7e9..ab05e027274 100644 --- a/hotspot/src/share/vm/shark/llvmHeaders.hpp +++ b/hotspot/src/share/vm/shark/llvmHeaders.hpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright 2008, 2009, 2010 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * @@ -46,7 +46,11 @@ #include #endif #include +#if SHARK_LLVM_VERSION >= 29 +#include +#else #include +#endif #include #include #include @@ -55,8 +59,12 @@ #include #include #include +#if SHARK_LLVM_VERSION >= 29 +#include +#else #include #endif +#endif #include diff --git a/hotspot/src/share/vm/shark/sharkCompiler.cpp b/hotspot/src/share/vm/shark/sharkCompiler.cpp index 97ec78c49a8..53851770fc7 100644 --- a/hotspot/src/share/vm/shark/sharkCompiler.cpp +++ b/hotspot/src/share/vm/shark/sharkCompiler.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -218,6 +218,7 @@ void SharkCompiler::compile_method(ciEnv* env, nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm, methodHandle target, + int compile_id, BasicType* arg_types, BasicType return_type) { assert(is_initialized(), "should be"); @@ -241,6 +242,7 @@ nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm, // Return the nmethod for installation in the VM return nmethod::new_native_nmethod(target, + compile_id, masm->code(), 0, 0, diff --git a/hotspot/src/share/vm/shark/sharkCompiler.hpp b/hotspot/src/share/vm/shark/sharkCompiler.hpp index d6ddd3d6004..828a783a80d 100644 --- a/hotspot/src/share/vm/shark/sharkCompiler.hpp +++ b/hotspot/src/share/vm/shark/sharkCompiler.hpp @@ -1,6 +1,6 @@ /* * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -60,6 +60,7 @@ class SharkCompiler : public AbstractCompiler { // Generate a wrapper for a native (JNI) method nmethod* generate_native_wrapper(MacroAssembler* masm, methodHandle target, + int compile_id, BasicType* arg_types, BasicType return_type); @@ -113,7 +114,8 @@ class SharkCompiler : public AbstractCompiler { // Global access public: static SharkCompiler* compiler() { - AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple); + AbstractCompiler *compiler = + CompileBroker::compiler(CompLevel_full_optimization); assert(compiler->is_shark() && compiler->is_initialized(), "should be"); return (SharkCompiler *) compiler; } diff --git a/hotspot/src/share/vm/utilities/constantTag.cpp b/hotspot/src/share/vm/utilities/constantTag.cpp index 0d2744666c4..49e374e89eb 100644 --- a/hotspot/src/share/vm/utilities/constantTag.cpp +++ b/hotspot/src/share/vm/utilities/constantTag.cpp @@ -93,8 +93,6 @@ const char* constantTag::internal_name() const { return "MethodType"; case JVM_CONSTANT_InvokeDynamic : return "InvokeDynamic"; - case JVM_CONSTANT_InvokeDynamicTrans : - return "InvokeDynamic/transitional"; case JVM_CONSTANT_Object : return "Object"; case JVM_CONSTANT_Utf8 : diff --git a/hotspot/src/share/vm/utilities/constantTag.hpp b/hotspot/src/share/vm/utilities/constantTag.hpp index 43f5a8218b1..bbd02462e21 100644 --- a/hotspot/src/share/vm/utilities/constantTag.hpp +++ b/hotspot/src/share/vm/utilities/constantTag.hpp @@ -86,8 +86,7 @@ class constantTag VALUE_OBJ_CLASS_SPEC { bool is_method_type() const { return _tag == JVM_CONSTANT_MethodType; } bool is_method_handle() const { return _tag == JVM_CONSTANT_MethodHandle; } - bool is_invoke_dynamic() const { return (_tag == JVM_CONSTANT_InvokeDynamic || - _tag == JVM_CONSTANT_InvokeDynamicTrans); } + bool is_invoke_dynamic() const { return _tag == JVM_CONSTANT_InvokeDynamic; } bool is_loadable_constant() const { return ((_tag >= JVM_CONSTANT_Integer && _tag <= JVM_CONSTANT_String) || diff --git a/hotspot/src/share/vm/utilities/globalDefinitions.hpp b/hotspot/src/share/vm/utilities/globalDefinitions.hpp index a742d221486..8607a3e03e8 100644 --- a/hotspot/src/share/vm/utilities/globalDefinitions.hpp +++ b/hotspot/src/share/vm/utilities/globalDefinitions.hpp @@ -746,9 +746,9 @@ enum CompLevel { CompLevel_simple = 1, // C1 CompLevel_limited_profile = 2, // C1, invocation & backedge counters CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo - CompLevel_full_optimization = 4, // C2 + CompLevel_full_optimization = 4, // C2 or Shark -#if defined(COMPILER2) +#if defined(COMPILER2) || defined(SHARK) CompLevel_highest_tier = CompLevel_full_optimization, // pure C2 and tiered #elif defined(COMPILER1) CompLevel_highest_tier = CompLevel_simple, // pure C1 @@ -760,7 +760,7 @@ enum CompLevel { CompLevel_initial_compile = CompLevel_full_profile // tiered #elif defined(COMPILER1) CompLevel_initial_compile = CompLevel_simple // pure C1 -#elif defined(COMPILER2) +#elif defined(COMPILER2) || defined(SHARK) CompLevel_initial_compile = CompLevel_full_optimization // pure C2 #else CompLevel_initial_compile = CompLevel_none diff --git a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp index 4ba099ace3b..ac7fdf878f0 100644 --- a/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp +++ b/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp @@ -77,7 +77,9 @@ # endif #ifdef LINUX +#ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS +#endif // __STDC_LIMIT_MACROS #include #include #include diff --git a/hotspot/test/compiler/6795161/Test.java b/hotspot/test/compiler/6795161/Test.java index af93086ddf8..f9e8ad88d7d 100644 --- a/hotspot/test/compiler/6795161/Test.java +++ b/hotspot/test/compiler/6795161/Test.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 @@ -26,7 +26,7 @@ * @test * @bug 6795161 * @summary Escape analysis leads to data corruption - * @run main/othervm -server -Xcomp -XX:CompileOnly=Test -XX:+DoEscapeAnalysis Test + * @run main/othervm -server -XX:+IgnoreUnrecognizedVMOptions -Xcomp -XX:CompileOnly=Test -XX:+DoEscapeAnalysis Test */ class Test_Class_1 { diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 323e12f017a..b8136de0b51 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -112,3 +112,5 @@ d56b326ae0544fc16c3e0d0285876f3c82054db2 jdk7-b134 4aa9916693dc1078580c1865e6f2584046851e5a jdk7-b135 1759daa85d33800bd578853f9531f9de73f70fc7 jdk7-b136 1d87f7460cde7f8f30af668490f82b52b879bfd8 jdk7-b137 +be3758943770a0a3dd4be6a1cb4063507c4d7062 jdk7-b138 +28c7c0ed2444607829ba11ad827f8d52197a2830 jdk7-b139 diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 1d2a6156168..0ef77285c96 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -112,3 +112,5 @@ ba1fac1c2083196422a12130db174334179a4d44 jdk7-b130 d5fc61f18043765705ef22b57a68c924ab2f1a5b jdk7-b135 c81d289c9a532d6e94af3c09d856a2a20529040f jdk7-b136 ccea3282991ce8b678e188cf32a8239f76ff3bfa jdk7-b137 +cc956c8a8255583535597e9a63db23c510e9a063 jdk7-b138 +c025078c8362076503bb83b8e4da14ba7b347940 jdk7-b139 diff --git a/jaxws/jaxws.properties b/jaxws/jaxws.properties index 007295f880f..cfae88e1bc1 100644 --- a/jaxws/jaxws.properties +++ b/jaxws/jaxws.properties @@ -25,8 +25,8 @@ drops.master.copy.base=${drops.dir} -jaxws_src.bundle.name=jdk7-jaxws2_2_2-2010_12_14.zip -jaxws_src.bundle.md5.checksum=fee9ac72fabc96719eefc66ecaff4bc3 +jaxws_src.bundle.name=jdk7-jaxws2_2_4-b01-2011_04_08.zip +jaxws_src.bundle.md5.checksum=9f35dd731c99ddb62db650aaf20e5bf4 jaxws_src.master.bundle.dir=${drops.master.copy.base} jaxws_src.master.bundle.url.base=http://download.java.net/glassfish/components/jax-ws/openjdk/jdk7 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/.hgtags b/jdk/.hgtags index d83c29f1bed..c3032b54af6 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -113,3 +113,4 @@ d8ced728159fbb2caa8b6adb477fd8efdbbdf179 jdk7-b135 aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136 29296ea6529a418037ccce95903249665ef31c11 jdk7-b137 60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138 +d80954a89b49fda47c0c5cace65a17f5a758b8bd jdk7-b139 diff --git a/jdk/make/com/sun/java/pack/Makefile b/jdk/make/com/sun/java/pack/Makefile index b9b79648bb3..f0841521fb9 100644 --- a/jdk/make/com/sun/java/pack/Makefile +++ b/jdk/make/com/sun/java/pack/Makefile @@ -56,10 +56,6 @@ build: unpacker vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR) - - - - ifeq ($(STANDALONE),true) ZIPOBJDIR = $(OUTPUTDIR)/tmp/sun/java.util.zip/zip/$(OBJDIRNAME) @@ -131,8 +127,9 @@ prop: pack200-tool: $(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) +# ignore mapfile for non-product binary unpacker: - $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG= + $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_DBG= ifeq ($(PLATFORM), windows) IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER) @@ -147,8 +144,14 @@ winres:: $(ECHO) "Resource files not required for Unix" endif +# Mapfile-vers.gmk, does not copy over the mapfile-vers-unpack200, when +# the make utiliy is re-invoked, as in this case. In order to workaround +# this special case, the mapfile required for the unpack200 command, is +# explicitly copied over to the expected location. $(UNPACK_EXE): $(UNPACK_EXE_FILES_o) updatefiles winres $(prep-target) + $(RM) $(TEMPDIR)/mapfile-vers + $(CP) mapfile-vers-unpack200 $(TEMPDIR)/mapfile-vers $(LINKER) $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX) ifdef MT $(MT) /manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest /outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1 diff --git a/jdk/make/com/sun/java/pack/mapfile-vers-unpack200 b/jdk/make/com/sun/java/pack/mapfile-vers-unpack200 new file mode 100644 index 00000000000..8a659d3f985 --- /dev/null +++ b/jdk/make/com/sun/java/pack/mapfile-vers-unpack200 @@ -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. 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. +# + +# Define library interface. + +SUNWprivate_1.1 { + local: + *; +}; 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/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/Mapfile-vers.gmk b/jdk/make/common/Mapfile-vers.gmk index e4e151f3214..15c8ccd519a 100644 --- a/jdk/make/common/Mapfile-vers.gmk +++ b/jdk/make/common/Mapfile-vers.gmk @@ -52,8 +52,8 @@ ifeq ($(VARIANT), OPT) endif # If we are re-ordering functions in this solaris library, we need to make - # sure that -xF is added to the compile lines. This option is critical and - # enables the functions to be reordered. + # sure that -xF is added to the compile lines. This option is critical and + # enables the functions to be reordered. ifdef FILES_reorder CFLAGS_OPT += -xF CXXFLAGS_OPT += -xF @@ -76,7 +76,6 @@ endif endif # PLATFORM - ifeq ($(PLATFORM), linux) ifeq ($(VARIANT), OPT) diff --git a/jdk/make/common/Program.gmk b/jdk/make/common/Program.gmk index 23f704e46a7..9fdde6d9745 100644 --- a/jdk/make/common/Program.gmk +++ b/jdk/make/common/Program.gmk @@ -55,6 +55,11 @@ 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 + include $(JDK_TOPDIR)/make/common/Rules.gmk ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE 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..fbb9f0d55f4 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) @@ -885,12 +892,18 @@ else ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db) DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null) +# Java DB image. Move the Java DB demo directory into the JDK's demo +# dir and in the process, rename it to db. Also remove index.html, +# since it presumes docs are co-located. Also remove register.html (no +# longer relevant). initial-image-jdk-db: $(DB_ZIP_LIST) $(MKDIR) -p $(JDK_IMAGE_DIR)/db for d in $(DB_ZIP_LIST); do \ ($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \ done - + $(RM) -rf $(DEMODIR)/db + $(MV) $(JDK_IMAGE_DIR)/db/demo $(DEMODIR)/db + $(RM) $(JDK_IMAGE_DIR)/db/index.html $(JDK_IMAGE_DIR)/db/register.html endif # Standard jdk image @@ -1111,6 +1124,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) @@ -1118,6 +1135,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) @@ -1128,6 +1146,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/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/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 cc723658203..87a3ec3b266 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -218,11 +218,7 @@ ifdef OPENJDK else LAUNCHER_NAME = java PRODUCT_NAME = Java(TM) - ifeq ($(J4B), true) - PRODUCT_SUFFIX = SE Runtime Environment for Business - else - PRODUCT_SUFFIX = SE Runtime Environment - endif + PRODUCT_SUFFIX = SE Runtime Environment JDK_RC_PLATFORM_NAME = Platform SE COMPANY_NAME = Oracle Corporation endif @@ -616,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 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 diff --git a/jdk/make/docs/Makefile b/jdk/make/docs/Makefile index ee8eb03b7a9..567f796bbce 100644 --- a/jdk/make/docs/Makefile +++ b/jdk/make/docs/Makefile @@ -53,7 +53,7 @@ DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION)) # Url to Java Language Spec -JLS3_URL = http://java.sun.com/docs/books/jls/ +#JLS3_URL = http://java.sun.com/docs/books/jls/ # Common Java trademark line JAVA_TRADEMARK_LINE = Java is a trademark or registered trademark of \ @@ -293,8 +293,8 @@ COREAPI_HEADER = \ Java$(TRADEMARK) Platform
Standard Ed. $(JDK_MINOR_VERSION)
# Java language specification cite -TAG_JLS3 = jls3:a:See \ -The Java Language Specification, Third Edition: +TAG_JLS = jls:a:See \ +The Java™ Language Specification: # Overview file for core apis COREAPI_OVERVIEW = $(SHARE_SRC)/classes/overview-core.html @@ -329,7 +329,7 @@ $(COREAPI_OPTIONS_FILE): $(COREAPI_OVERVIEW) $(call OptionPair,-tag,specdefault:X) ; \ $(call OptionPair,-tag,Note:X) ; \ $(call OptionPair,-tag,ToDo:X) ; \ - $(call OptionPair,-tag,$(TAG_JLS3)) ; \ + $(call OptionPair,-tag,$(TAG_JLS)) ; \ $(call OptionOnly,-splitIndex) ; \ $(call OptionPair,-overview,$(COREAPI_OVERVIEW)) ; \ $(call OptionPair,-doctitle,$(COREAPI_DOCTITLE)) ; \ @@ -1081,6 +1081,7 @@ $(TREEAPI_OPTIONS_FILE): $(call OptionPair,-doctitle,$(TREEAPI_DOCTITLE)) ; \ $(call OptionPair,-windowtitle,$(TREEAPI_WINDOWTITLE) $(DRAFT_WINTITLE));\ $(call OptionPair,-header,$(TREEAPI_HEADER)$(DRAFT_HEADER)) ; \ + $(call OptionPair,-tag,$(TAG_JLS)) ; \ $(call OptionPair,-bottom,$(TREEAPI_BOTTOM)$(DRAFT_BOTTOM)) ; \ $(call OptionTrip,-group,$(TREEAPI_GROUPNAME),$(TREEAPI_REGEXP)); \ $(call OptionTrip,-linkoffline,$(TREEAPI2COREAPI),$(COREAPI_DOCSDIR)/); \ diff --git a/jdk/make/java/main/java/Makefile b/jdk/make/java/main/java/Makefile index 2a40bdf9fdd..1766880712c 100644 --- a/jdk/make/java/main/java/Makefile +++ b/jdk/make/java/main/java/Makefile @@ -61,5 +61,4 @@ OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' ifeq ($(PLATFORM), solaris) LDFLAGS += -R$(OPENWIN_LIB) -LDFLAGS += -M mapfile-$(ARCH) endif diff --git a/jdk/make/java/main/java/mapfile-amd64 b/jdk/make/java/main/java/mapfile-amd64 index 8ca4394733e..760fcc1a90a 100644 --- a/jdk/make/java/main/java/mapfile-amd64 +++ b/jdk/make/java/main/java/mapfile-amd64 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 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 @@ -27,7 +27,7 @@ # interested in declaring a version, simply scoping the file is sufficient. # -{ +SUNWprivate_1.1 { global: main; # Provides basic adb symbol offsets environ; # Public symbols and required by Java run time diff --git a/jdk/make/java/main/java/mapfile-i586 b/jdk/make/java/main/java/mapfile-i586 index 116bbfbb46a..48061dd8e90 100644 --- a/jdk/make/java/main/java/mapfile-i586 +++ b/jdk/make/java/main/java/mapfile-i586 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 2005, 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 @@ -27,7 +27,7 @@ # interested in declaring a version, simply scoping the file is sufficient. # -{ +SUNWprivate_1.1 { global: main; # Provides basic adb symbol offsets environ; # Public symbols and required by Java run time diff --git a/jdk/make/java/main/java/mapfile-sparc b/jdk/make/java/main/java/mapfile-sparc index de0ec8b7ac6..ef7eaf9b7b2 100644 --- a/jdk/make/java/main/java/mapfile-sparc +++ b/jdk/make/java/main/java/mapfile-sparc @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 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 @@ -26,7 +26,7 @@ # interested in declaring a version, simply scoping the file is sufficient. # -{ +SUNWprivate_1.1 { global: main; # Provides basic adb symbol offsets environ; # Public symbols and required by Java run time diff --git a/jdk/make/java/main/java/mapfile-sparcv9 b/jdk/make/java/main/java/mapfile-sparcv9 index 4e50bb5d097..5ecdf6fbcf3 100644 --- a/jdk/make/java/main/java/mapfile-sparcv9 +++ b/jdk/make/java/main/java/mapfile-sparcv9 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004, 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 @@ -28,7 +28,7 @@ # interested in declaring a version, simply scoping the file is sufficient. # -{ +SUNWprivate_1.1 { global: main; # Provides basic adb symbol offsets environ; # Public symbols and required by Java run time diff --git a/jdk/make/javax/crypto/Defs-jce.gmk b/jdk/make/javax/crypto/Defs-jce.gmk index bd5cec9d4eb..7aecdc0a754 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." @@ -58,7 +60,7 @@ endef SIGNING_KEY_DIR = /security/ws/JCE-signing/src SIGNING_KEYSTORE = $(SIGNING_KEY_DIR)/KeyStore.jks SIGNING_PASSPHRASE = $(SIGNING_KEY_DIR)/passphrase.txt -SIGNING_ALIAS = jce_rsa +SIGNING_ALIAS = oracle_jce_rsa # # Defines for signing the various jar files. diff --git a/jdk/make/jpda/jdwp/jdwp.spec b/jdk/make/jpda/jdwp/jdwp.spec index 0a3fd9faf97..86bce315226 100644 --- a/jdk/make/jpda/jdwp/jdwp.spec +++ b/jdk/make/jpda/jdwp/jdwp.spec @@ -519,9 +519,8 @@ JDWP "Java(tm) Debug Wire Protocol" "Both the JNI signature and the generic signature are " "returned for each class. " "Generic signatures are described in the signature attribute " - "section in the " - " - "Java Virtual Machine Specification, 3rd Edition. " + "section in " + "The Java™ Virtual Machine Specification. " "Since JDWP version 1.5." (Out ) @@ -623,8 +622,8 @@ JDWP "Java(tm) Debug Wire Protocol" (referenceType refType "The reference type ID.") ) (Reply - (int modBits "Modifier bits as defined in the " - "VM Specification") + (int modBits "Modifier bits as defined in Chapter 4 of " + "The Java™ Virtual Machine Specification") ) (ErrorSet (Error INVALID_CLASS "refType is not the ID of a reference " @@ -651,8 +650,8 @@ JDWP "Java(tm) Debug Wire Protocol" (int modBits "The modifier bit flags (also known as access flags) " "which provide additional information on the " "field declaration. Individual flag values are " - "defined in the " - "VM Specification." + "defined in Chapter 4 of " + "The Java™ Virtual Machine Specification. " "In addition, The 0xf0000000 bit identifies " "the field as synthetic, if the synthetic attribute " "capability is available.") @@ -686,8 +685,8 @@ JDWP "Java(tm) Debug Wire Protocol" (int modBits "The modifier bit flags (also known as access flags) " "which provide additional information on the " "method declaration. Individual flag values are " - "defined in the " - "VM Specification." + "defined in Chapter 4 of " + "The Java™ Virtual Machine Specification. " "In addition, The 0xf0000000 bit identifies " "the method as synthetic, if the synthetic attribute " "capability is available.") @@ -773,8 +772,8 @@ JDWP "Java(tm) Debug Wire Protocol" (Command Status=9 "Returns the current status of the reference type. The status " "indicates the extent to which the reference type has been " - "initialized, as described in the " - "VM specification. " + "initialized, as described in section 2.1.6 of " + "The Java™ Virtual Machine Specification. " "If the class is linked the PREPARED and VERIFIED bits in the returned status bits " "will be set. If the class is initialized the INITIALIZED bit in the returned " "status bits will be set. If an error occured during initialization then the " @@ -852,9 +851,8 @@ JDWP "Java(tm) Debug Wire Protocol" "Returns the JNI signature of a reference type along with the " "generic signature if there is one. " "Generic signatures are described in the signature attribute " - "section in the " - " - "Java Virtual Machine Specification, 3rd Edition. " + "section in " + "The Java™ Virtual Machine Specification. " "Since JDWP version 1.5." "

(Out @@ -882,9 +880,8 @@ JDWP "Java(tm) Debug Wire Protocol" "by the compiler. " "Fields are returned in the order they occur in the class file. " "Generic signatures are described in the signature attribute " - "section in the " - " - "Java Virtual Machine Specification, 3rd Edition. " + "section in " + "The Java™ Virtual Machine Specification. " "Since JDWP version 1.5." (Out (referenceType refType "The reference type ID.") @@ -900,8 +897,8 @@ JDWP "Java(tm) Debug Wire Protocol" (int modBits "The modifier bit flags (also known as access flags) " "which provide additional information on the " "field declaration. Individual flag values are " - "defined in the " - "VM Specification." + "defined in Chapter 4 of " + "The Java™ Virtual Machine Specification. " "In addition, The 0xf0000000 bit identifies " "the field as synthetic, if the synthetic attribute " "capability is available.") @@ -925,9 +922,8 @@ JDWP "Java(tm) Debug Wire Protocol" "if present, and any synthetic methods created by the compiler. " "Methods are returned in the order they occur in the class file. " "Generic signatures are described in the signature attribute " - "section in the " - " - "Java Virtual Machine Specification, 3rd Edition. " + "section in " + "The Java™ Virtual Machine Specification. " "Since JDWP version 1.5." (Out (referenceType refType "The reference type ID.") @@ -943,8 +939,8 @@ JDWP "Java(tm) Debug Wire Protocol" (int modBits "The modifier bit flags (also known as access flags) " "which provide additional information on the " "method declaration. Individual flag values are " - "defined in the " - "VM Specification." + "defined in Chapter 4 of " + "The Java™ Virtual Machine Specification. " "In addition, The 0xf0000000 bit identifies " "the method as synthetic, if the synthetic attribute " "capability is available.") @@ -1006,8 +1002,8 @@ JDWP "Java(tm) Debug Wire Protocol" ) (Command ConstantPool=18 "Return the raw bytes of the constant pool in the format of the " - "constant_pool item of the Class File Format in the " - "Java Virtual Machine Specification. " + "constant_pool item of the Class File Format in " + "The Java™ Virtual Machine Specification. " "

Since JDWP version 1.6. Requires canGetConstantPool capability - see " "CapabilitiesNew."" (Out @@ -1016,7 +1012,8 @@ JDWP "Java(tm) Debug Wire Protocol" (Reply (int count "Total number of constant pool entries plus one. This " "corresponds to the constant_pool_count item of the " - "Class File Format in the Java Virtual Machine Specification. ") + "Class File Format in " + "The Java™ Virtual Machine Specification. ") (Repeat bytes (byte cpbytes "Raw bytes of constant pool") ) @@ -1324,7 +1321,8 @@ JDWP "Java(tm) Debug Wire Protocol" ) ) (Command Bytecodes=3 - "Retrieve the method's bytecodes as defined in the JVM Specification." + "Retrieve the method's bytecodes as defined in " + "The Java™ Virtual Machine Specification. " "Requires canGetBytecodes capability - see " "CapabilitiesNew." (Out @@ -1379,9 +1377,8 @@ JDWP "Java(tm) Debug Wire Protocol" "instance methods, the \"this\" reference is included in the " "table. Also, synthetic variables may be present. " "Generic signatures are described in the signature attribute " - "section in the " - " - "Java Virtual Machine Specification, 3rd Edition. " + "section in " + "The Java™ Virtual Machine Specification. " "Since JDWP version 1.5." (Out (referenceType refType "The class.") @@ -1970,8 +1967,9 @@ JDWP "Java(tm) Debug Wire Protocol" "

" "The method which will return early is referred to as the " "called method. The called method is the current method (as " - "defined by the Frames section in the Java Virtual Machine " - "Specification) for the specified thread at the time this command " + "defined by the Frames section in " + "The Java™ Virtual Machine Specification) " + "for the specified thread at the time this command " "is received. " "

" "The specified thread must be suspended. " diff --git a/jdk/make/mksample/Makefile b/jdk/make/mksample/Makefile index 8528e92328b..bdc770b4f7a 100644 --- a/jdk/make/mksample/Makefile +++ b/jdk/make/mksample/Makefile @@ -1,5 +1,5 @@ # -# 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 @@ -38,7 +38,7 @@ else endif SUBDIRS = -SUBDIRS_misc = nio scripting nbproject +SUBDIRS_misc = nio scripting nbproject forkjoin SUBDIRS_enterprise = $(WEBSERVICES_SUBDIR) SUBDIRS_management = jmx diff --git a/jdk/make/mksample/forkjoin/Makefile b/jdk/make/mksample/forkjoin/Makefile new file mode 100644 index 00000000000..b9f557a9d1a --- /dev/null +++ b/jdk/make/mksample/forkjoin/Makefile @@ -0,0 +1,41 @@ +# +# 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. +# + +# +# Makefile for building all the samples under the forkjoin subdirectory. +# + +BUILDDIR = ../.. +PRODUCT = java +include $(BUILDDIR)/common/Defs.gmk + +SUBDIRS = mergesort +include $(BUILDDIR)/common/Subdirs.gmk + +all build clean clobber:: + $(SUBDIRS-loop) + +clobber clean :: + $(RM) -r $(SAMPLEDIR)/forkjoin diff --git a/jdk/make/mksample/forkjoin/mergesort/Makefile b/jdk/make/mksample/forkjoin/mergesort/Makefile new file mode 100644 index 00000000000..e611d76e5ce --- /dev/null +++ b/jdk/make/mksample/forkjoin/mergesort/Makefile @@ -0,0 +1,51 @@ +# +# 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. +# + +# +# Makefile for the forkjoin/mergesort sample code +# + +BUILDDIR = ../../.. + +PRODUCT = java + +include $(BUILDDIR)/common/Defs.gmk + +SAMPLE_SRC_DIR = $(SHARE_SRC)/sample/forkjoin/mergesort +SAMPLE_DST_DIR = $(SAMPLEDIR)/forkjoin/mergesort + +SAMPLE_FILES = \ + $(SAMPLE_DST_DIR)/MergeDemo.java \ + $(SAMPLE_DST_DIR)/MergeSort.java + +all build: $(SAMPLE_FILES) + +$(SAMPLE_DST_DIR)/%: $(SAMPLE_SRC_DIR)/% + $(install-file) + +clean clobber: + $(RM) -r $(SAMPLE_DST_DIR) + +.PHONY: all build clean clobber diff --git a/jdk/make/mksample/nio/Makefile b/jdk/make/mksample/nio/Makefile index 7c7736b0bcf..291230909e1 100644 --- a/jdk/make/mksample/nio/Makefile +++ b/jdk/make/mksample/nio/Makefile @@ -1,5 +1,5 @@ # -# 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 @@ -31,7 +31,7 @@ BUILDDIR = ../.. PRODUCT = java include $(BUILDDIR)/common/Defs.gmk -SUBDIRS = file multicast server +SUBDIRS = chatserver file multicast server include $(BUILDDIR)/common/Subdirs.gmk all build clean clobber:: diff --git a/jdk/make/mksample/nio/chatserver/Makefile b/jdk/make/mksample/nio/chatserver/Makefile new file mode 100644 index 00000000000..c2a243090b8 --- /dev/null +++ b/jdk/make/mksample/nio/chatserver/Makefile @@ -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. 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. +# + +# +# Makefile for the nio/chatserver sample code +# + +BUILDDIR = ../../.. + +PRODUCT = java + +include $(BUILDDIR)/common/Defs.gmk + +SAMPLE_SRC_DIR = $(SHARE_SRC)/sample/nio/chatserver +SAMPLE_DST_DIR = $(SAMPLEDIR)/nio/chatserver + +SAMPLE_FILES = \ + $(SAMPLE_DST_DIR)/ChatServer.java \ + $(SAMPLE_DST_DIR)/Client.java \ + $(SAMPLE_DST_DIR)/ClientReader.java \ + $(SAMPLE_DST_DIR)/DataReader.java \ + $(SAMPLE_DST_DIR)/MessageReader.java \ + $(SAMPLE_DST_DIR)/NameReader.java \ + $(SAMPLE_DST_DIR)/README.txt + +all build: $(SAMPLE_FILES) + +$(SAMPLE_DST_DIR)/%: $(SAMPLE_SRC_DIR)/% + $(install-file) + +clean clobber: + $(RM) -r $(SAMPLE_DST_DIR) + +.PHONY: all build clean clobber diff --git a/jdk/make/sun/Makefile b/jdk/make/sun/Makefile index 6e0830cd117..4c19f4ecbc0 100644 --- a/jdk/make/sun/Makefile +++ b/jdk/make/sun/Makefile @@ -83,6 +83,11 @@ SUBDIRS_desktop = audio $(RENDER_SUBDIR) image \ SUBDIRS_management = management SUBDIRS_misc = $(ORG_SUBDIR) rmi $(JDBC_SUBDIR) tracing SUBDIRS_tools = native2ascii serialver tools jconsole + +ifndef OPENJDK + SUBDIRS += usagetracker +endif + include $(BUILDDIR)/common/Subdirs.gmk all build clean clobber:: 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 diff --git a/jdk/make/sun/usagetracker/Makefile b/jdk/make/sun/usagetracker/Makefile new file mode 100644 index 00000000000..ccb66182e46 --- /dev/null +++ b/jdk/make/sun/usagetracker/Makefile @@ -0,0 +1,40 @@ +# +# 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. +# + +BUILDDIR = ../.. +PACKAGE = sun.usagetracker +PRODUCT = sun +include $(BUILDDIR)/common/Defs.gmk + +# +# Files +# +AUTO_FILES_JAVA_DIRS = sun/usagetracker + +# +# Rules +# +include $(BUILDDIR)/common/Classes.gmk + 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@@ 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 @ +\f4¡Öapt ÆþÌç¡×\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 㯠+¥µ¡¼¥Ð¡¼Â¦¤Ç²Äǽ¤Ê¥â¥Ç¥ë¤Ï 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 +\f2¡ÖJava °Å¹æ²½¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ÍÑ¥×¥í¥Ð¥¤¥À¤Î¼ÂÁõÊýË¡¡×\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 +\f2¡ÖKeyTool 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 ¥Õ¥¡¥¤¥ëÆâ¤Ë¥¨¥ó¥È¥ê¤ò»ý¤Ä³Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ÆÉ¤ß¹þ¤ßÃæ¤Ë¥Õ¥¡¥¤¥ë¤Î¥À¥¤¥¸¥§¥¹¥È¤ò·×»»¤·¡¢·ë²Ì¤ò¥Þ¥Ë¥Õ¥§¥¹¥È¥»¥¯¥·¥ç¥óÆâ¤Î³ºÅö¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥À¥¤¥¸¥§¥¹¥È¤ÈÈæ³Ó¤·¤Þ¤¹¡£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 +\f2¡ÖAppendix A ¡×\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢JAR ¥Õ¥¡¥¤¥ë¤Î½ð̾¤Ë»ÈÍѤ¹¤ëÈëÌ©¸°¤È¸ß´¹À­¤Î¤¢¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ÈëÌ©¸°¤Î¥¿¥¤¥×¤Ë±þ¤¸¤Æ SHA1withDSA¡¢SHA256withRSA¡¢SHA256withECDSA ¤Î¤¤¤º¤ì¤«¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£»ØÄꤵ¤ì¤¿¥¢¥ë¥´¥ê¥º¥à¤Î¼ÂÁõ¤òÄ󶡤¹¤ë¥×¥í¥Ð¥¤¥À¤¬ÀÅŪ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥æ¡¼¥¶¡¼¤¬¤½¤Î¤è¤¦¤Ê¥×¥í¥Ð¥¤¥À¤ò \f2\-providerClass\fP ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤¬¼ºÇÔ¤·¤Þ¤¹¡£ +.TP 3 +\-digestalg algorithm +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¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢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 @ +\f2¡ÖJava ¥Á¥å¡¼¥È¥ê¥¢¥ë¡×\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.html¡ÖSecurity¡×\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 @ +\f2¡ÖJVMTI ¥¨¡¼¥¸¥§¥ó¥È¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×\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 @ +\f2¡ÖJVMTI ¥¨¡¼¥¸¥§¥ó¥È¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×\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 ¥Õ¥¡¥¤¥ë¤Î¥Þ¥Ë¥Õ¥§¥¹¥È¤Ë\f3¡ÖMain\-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_13¡¢1.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 ¤Ï¡¢SIGHUP¡¢SIGINT¡¢¤ª¤è¤Ó 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 ¤ò»ÈÍѤ¹¤ë¤È¡¢SIGINT¡¢SIGTERM¡¢SIGHUP¡¢¤ª¤è¤Ó 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 @ +\f2¡ÖJava ³ÈÄ¥µ¡Ç½¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡×\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 @ +\f2¡ÖHotSpot 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 引数を格ç´ã™ã‚‹å ´åˆã¯ã€æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã—ã¾ã™ã€‚ +\f2¡Öargfile¡×¤È¤¤¤¦Ì¾Á°¤Î°ú¿ô¥Õ¥¡¥¤¥ë¤Ë\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 @ +\f2¡ÖThe 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 @ +\f2¡ÖJava ³ÈÄ¥µ¡Ç½¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡×\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 @ +\f2¡ÖIdentifiers¡×\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 @ +\f2¡ÖIdentifiers¡×\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 ¥É¥­¥å¥á¥ó¥È¤òÀ¸À®¤·¤Þ¤¹¡£É¸½à¥É¥Ã¥¯¥ì¥Ã¥È¤ò½¤Àµ¤Þ¤¿¤Ï¥µ¥Ö¥¯¥é¥¹²½¤¹¤ë¤³¤È¤ä¡¢HTML¡¢XML¡¢MIF¡¢RTF ¤Ê¤É¤Î¹¥¤ß¤Î½ÐÎÏ·Á¼°¤òÀ¸À®¤¹¤ëÆÈ¼«¤Î¥É¥Ã¥¯¥ì¥Ã¥È¤òµ­½Ò¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¥É¥Ã¥¯¥ì¥Ã¥È¤È¤½¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î¹àÌܤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ .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 Gosling¡¢Bill Joy¡¢Guy 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 \- MIF¡¢FrameMaker¡¢PDF ¤Î½ñ¼°¤Ç 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¡¢\f2¡Ödoc ¥³¥á¥ó¥È¡×\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 ¥³¥Þ¥ó¥É¤ËÅϤµ¤ì¡¢¥¢¥¯¥»¥¹½¤¾þ»Ò (public¡¢protected¡¢package\-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 @ +\f2¡ÖIdentifiers¡×\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)¡£Ä¾Îó²½²Äǽ¤«¤Ä³°Éô²½²Äǽ¤Ê¥¯¥é¥¹¤Ë´Ø¤¹¤ë¾ðÊóÍѤǤ¹¡£¤³¤ì¤é¤Î³Æ¥¯¥é¥¹¤Ë¤Ï¡¢Ä¾Îó²½¥Õ¥£¡¼¥ë¥É¤ª¤è¤Ó¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ëÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¾ðÊó¤Ï¡¢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 @ +\f2¡ÖProposed 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 +¤³¤Î¥¿¥°¤¬É¬ÍפÊÍýͳ¤Ï¡¢À¸À®¥É¥­¥å¥á¥ó¥È¤¬¡¢¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤ÈƱ¤¸¿¼¤µ¤ò»ý¤Ä³¬Áع½Â¤¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤«¤é¤Ç¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ .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 @ +\f2¡ÖSun ¤Î»ÅÍÍ¡×\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 ã®ã‚¯ãƒ©ã‚¹ã¨ãƒ¡ãƒ³ãƒãƒ¼ã ã‘を表示ã—ã¾ã™ã€‚ +package¡¢protected¡¢¤ª¤è¤Ó 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 ¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¥á¥ê¥Ã¥È¤è¤ê¤â¡¢¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¤¿¤á¤ËɬÍפȤʤ롢¸ß´¹À­¤Î¤Ê¤¤¥½¡¼¥¹¤ÎÊѹ¹¤ÎÊý¤¬Ééô¤¬Â礭¤«¤Ã¤¿¤¿¤á¤Ç¤¹¡£¤³¤Î·ï¤Ç³§ÍͤË;ʬ¤Î¼ê´Ö¤ò¤ª¤«¤±¤·¡¢º®Íð¤ò¾·¤¤¤¿¤³¤È¤ò¤ªÏͤӤ¤¤¿¤·¤Þ¤¹¡£ .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 ¥Ð¥¤¥È¤Î¥á¥â¥ê¡¼¤ò¥·¥¹¥Æ¥à¤Ç³ÎÊݤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢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 ã®ä¸­ã§å¼•用符を使ã†å ´åˆã¯ã€å¼•用符をエスケープã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ +³Æ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎºÇ²¼Éô¤ËÇÛÃÖ¤¹¤ë¥Æ¥­¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥Æ¥­¥¹¥È¤Ï¡¢²¼Éô¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤è¤ê²¼¤Î¡¢¥Ú¡¼¥¸¤ÎºÇ²¼Éô¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ \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 ¤ÈÁêÂÐ URL¡¢¡Öhttp:¡×¥Ù¡¼¥¹¤È¡Ö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 ¤Ä¤Î°ú¿ô¤ËÊÌ¡¹¤Î¥Ñ¥¹¤ò»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó\fP¡£2 ¤Ä¤Î°ú¿ô¤¬Æ±°ì¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ \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 -出力ã®å„ãƒšãƒ¼ã‚¸ã®æœ€ä¸Šéƒ¨ã¨æœ€ä¸‹éƒ¨ã«ã‚るナビゲーションãƒãƒ¼ã‹ã‚‰ [ヘルプ] リンクをçœç•¥ã—ã¾ã™ã€‚ +½ÐÎϤγƥڡ¼¥¸¤ÎºÇ¾åÉô¤ÈºÇ²¼Éô¤Ë¤¢¤ë¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤«¤é¡Ö¥Ø¥ë¥×¡×¥ê¥ó¥¯¤ò¾Êά¤·¤Þ¤¹¡£ .LP .TP 3 \-nonavbar -生æˆã•ã‚Œã‚‹ãƒšãƒ¼ã‚¸ã®æœ€ä¸Šéƒ¨ã¨æœ€ä¸‹éƒ¨ã«è¡¨ç¤ºã•れるナビゲーションãƒãƒ¼ã€ãƒ˜ãƒƒãƒ€ãƒ¼ã€ãŠã‚ˆã³ãƒ•ッターを生æˆã—ãªã„よã†ã«ã—ã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€bottom オプションã«ã¯å½±éŸ¿ã‚’与ãˆã¾ã›ã‚“。\f2\-nonavbar\fP オプションã¯ã€å°åˆ·ã™ã‚‹ãŸã‚ã ã‘ã«ãƒ•ァイルを PostScript ã¾ãŸã¯ PDF ã«å¤‰æ›ã™ã‚‹å ´åˆãªã©ã€å†…容ã ã‘ãŒé‡è¦ã§ã€ãƒŠãƒ“ゲーションã®å¿…è¦ãŒãªã„å ´åˆã«ä¾¿åˆ©ã§ã™ã€‚ +À¸À®¤µ¤ì¤ë¥Ú¡¼¥¸¤ÎºÇ¾åÉô¤ÈºÇ²¼Éô¤Ëɽ¼¨¤µ¤ì¤ë¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¡¢¥Ø¥Ã¥À¡¼¡¢¤ª¤è¤Ó¥Õ¥Ã¥¿¡¼¤òÀ¸À®¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢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 ¤Ï¼¡¤Î¥­¡¼¥ï¡¼¥É¤Ç³«»Ï¤·¤Þ¤¹¡£ .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 ¤È¤¤¤¦Ì¾Á°¤Î¤è¤¦¤Ë¡¢¥É¥Ã¥È (.) ¤ò¶èÀڤ국¹æ¤È¤¹¤ë̾Á°¤ò»È¤¤¤Þ¤¹\fP¡£Oracle ¤Ï¡¢º£¸å¤â̾Á°¤Ë¥É¥Ã¥È¤ò´Þ¤Þ¤Ê¤¤É¸½à¥¿¥°¤òºîÀ®¤·¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤¬ºîÀ®¤·¤¿¥¿¥°¤Ï¡¢Oracle ¤¬Ä󶡤¹¤ëƱ¤¸Ì¾Á°¤Î¥¿¥°¤Îưºî¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ \f2@todo\fP ¤È¤¤¤¦Ì¾Á°¤Î¥¿¥°¤Þ¤¿¤Ï¥¿¥°¥ì¥Ã¥È¤ò¥æ¡¼¥¶¡¼¤¬ºîÀ®¤·¤¿¾ì¹ç¡¢Oracle ¤¬¤½¤Î¸åƱ¤¸Ì¾Á°¤Îɸ½à¥¿¥°¤òºîÀ®¤·¤¿¤È¤·¤Æ¤â¡¢¤½¤Îưºî¤Ï¾ï¤Ë¥æ¡¼¥¶¡¼¤¬ÄêµÁ¤·¤¿Æ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ .LP -\f3注釈 vs. Javadoc ã‚¿ã‚°\fP \- 一般ã«ã€è¿½åŠ ã™ã‚‹å¿…è¦ã®ã‚るマークアップãŒã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã«å½±éŸ¿ã‚’与ãˆãŸã‚Šãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’生æˆã—ãŸã‚Šã™ã‚‹ãŸã‚ã®ã‚‚ã®ã§ã‚ã‚‹å ´åˆã€ãã®ãƒžãƒ¼ã‚¯ã‚¢ãƒƒãƒ—㯠javadoc ã‚¿ã‚°ã«ã™ã¹ãã§ã™ã€‚ ãれ以外ã®å ´åˆã¯æ³¨é‡ˆã«ã™ã¹ãã§ã™ã€‚ +\f3Ãí¼á vs. Javadoc ¥¿¥°\fP \- °ìÈ̤ˡ¢Äɲ乤ëɬÍפΤ¢¤ë¥Þ¡¼¥¯¥¢¥Ã¥×¤¬¡¢¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤¿¤ê¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤òÀ¸À®¤·¤¿¤ê¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î¥Þ¡¼¥¯¥¢¥Ã¥×¤Ï javadoc ¥¿¥°¤Ë¤¹¤Ù¤­¤Ç¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏÃí¼á¤Ë¤¹¤Ù¤­¤Ç¤¹¡£ .na -\f2「Comparing Annotations and Javadoc Tagsã€\fP @ +\f2¡ÖComparing 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 +¥½¡¼¥¹Æâ¤Ç³Æ¥¿¥Ö¤¬³ÍÆÀ¤¹¤ë¶õÇò¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ .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 ·Á¼°¤Î¥É¥­¥å¥á¥ó¥È¤¬À¸À®¤µ¤ì¤Þ¤¹\fP¡£Javadoc ¥Ä¡¼¥ë¤Ï¡¢ \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 @ +\f2¡ÖJavadoc 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 ã®ã‚¯ãƒ©ã‚¹ã¨ãƒ¡ãƒ³ãƒãƒ¼ã ã‘を表示ã—ã¾ã™ã€‚ã“れã¯ãƒ‡ãƒ•ォルトã®è¨­å®šã§ã™ã€‚ +package¡¢protected¡¢¤ª¤è¤Ó 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 @ +\f2¡ÖJava 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 @ +\f2¡ÖJava 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 ¤Î¥×¥í¥»¥¹ ID¡£Java VM ¤Ï¡¢jconsole ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ ID ¤ÈƱ¤¸¥æ¡¼¥¶¡¼ ID ¤ò»ÈÍѤ·¤Æ¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ .na -\f2「JMX 監視ãŠã‚ˆã³ç®¡ç†ã€\fP @ +\f2¡ÖJMX ´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 @ +\f2¡ÖJMX ´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 @ +\f2¡ÖJava ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 (i¡¢j¡¢¤ª¤è¤Ó 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 ã§ã™ã€‚ +¥ª¥Ö¥¸¥§¥¯¥È³ä¤êÅö¤Æ¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯¤ÎÄÉÀפò̵¸ú¤Ë¤·¤Þ¤¹¡£¥Ò¡¼¥×¥À¥ó¥×Æâ¤Ç³ä¤êÅö¤Æ¥µ¥¤¥È¾ðÊ󤬻ÈÍѤǤ­¤Ê¤¤¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤ò 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 ¤¬¼Â¹ÔÂоݤȤʤ륹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢arg1¡¢arg2¡¢¤ª¤è¤Ó 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 +\f2¡ÖJava 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)¡¢keyEncipherment¡¢dataEncipherment¡¢keyAgreement¡¢keyCertSign¡¢cRLSign¡¢encipherOnly¡¢decipherOnly ¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£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¡¢ serverAuth¡¢clientAuth¡¢codeSigning¡¢emailProtection¡¢ timeStamping¡¢OCSPSigning¡¢¤Þ¤¿¤ÏǤ°Õ¤Î 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 ¤Ë¤Ï¡¢EMAIL¡¢URI¡¢DNS¡¢IP¡¢¤Þ¤¿¤Ï 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\-9¡¢a\-f¡¢A\-F) °Ê³°¤Îʸ»ú¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢ \f2¡Ö01:02:03:04¡×\fP ¤È \f2¡Ö01020304¡×¤ÎξÊý¤È¤â\fP Ʊ°ì¤ÎÃͤȤ·¤Æ¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤¹¡£Ãͤ¬¤Ê¤¤¾ì¹ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ÎÃÍ¥Õ¥£¡¼¥ë¥É¤Ï¶õ¤Ë¤Ê¤ê¤Þ¤¹¡£ +.LP +.LP +\f2\-gencert\fP ¤Ç¤Î¤ß»ÈÍѤ¹¤ë¡Öhonored¡×¤È¤¤¤¦ÆÃÊ̤Ê̾Á°¤Ï¡¢¾ÚÌÀ½ñÍ×µá¤Ë´Þ¤Þ¤ì¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤òÍ¥À褹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£¤³¤Î̾Á°¤ÎÃͤϡ¢ \f2¡Öall¡×\fP (Í׵ᤵ¤ì¤ë¤¹¤Ù¤Æ¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬Í¥À褵¤ì¤ë)¡¢ \f2¡Öname{:[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 を使用ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ +¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢ca¡¢ca1¡¢ca2¡¢¤ª¤è¤Ó 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 ¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ë¤Ï ca¡¢ca1¡¢¤ª¤è¤Ó 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 v1¡¢v2¡¢v3 ¤Î¾ÚÌÀ½ñ¡¢¤ª¤è¤Ó¡¢PKCS#7 ·Á¼°¤Î¾ÚÌÀ½ñ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë PKCS#7 ·Á¼°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£¥¤¥ó¥Ý¡¼¥È¤¹¤ë¥Ç¡¼¥¿¤Ï¡¢¥Ð¥¤¥Ê¥êÉ乿²½Êý¼°¡¢¤Þ¤¿¤Ï½ÐÎϲÄǽÉ乿²½Êý¼° (Base64 É乿²½¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î¤É¤Á¤é¤«¤ÇÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ½ÐÎϲÄǽÉ乿²½Êý¼°¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È RFC 1421 ¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÉ乿²½Êý¼°¤Î¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï¡Ö\-\-\-\-\-BEGIN¡×¤Ç»Ï¤Þ¤ëʸ»úÎó¤Ç³«»Ï¤µ¤ì¡¢¡Ö\-\-\-\-\-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 +\f2¡ÖJSSE ¥ê¥Õ¥¡¥ì¥ó¥¹¥¬¥¤¥É¡×\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 \- ³Æ¥¨¥ó¥È¥ê¤Ï¡¢Èó¾ï¤Ë½ÅÍפʰŹ沽¤Î¸°¤Î¾ðÊó¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢µö²Ä¤·¤Æ¤¤¤Ê¤¤¥¢¥¯¥»¥¹¤òËɤ°¤¿¤á¤Ë¡¢Êݸ¤ì¤¿·Á¤Ç³ÊǼ¤µ¤ì¤Þ¤¹¡£ °ìÈ̤ˡ¢¤³¤Î¼ï¤Î¥¨¥ó¥È¥ê¤È¤·¤Æ³ÊǼ¤µ¤ì¤ë¸°¤Ï¡¢ÈëÌ©¸°¤«¡¢Âбþ¤¹¤ë¸ø³«¸°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òȼ¤¦Èó¸ø³«¸°¤Ç¤¹¡£\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 @ +\f2¡ÖJava(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 ã§æŒ‡å®šå¯èƒ½ãªä»»æ„ã®å ´æ‰€ã‹ã‚‰ã‚­ãƒ¼ã‚¹ãƒˆã‚¢ã‚’読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ +¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢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 +³Æ¥Ä¡¼¥ë¤Ï¡¢ \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 ¤Ç¤Ï¡¢v1¡¢v2¡¢¤ª¤è¤Ó 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 ã¯ã€ã©ã‚Œã‚‚åŒã˜ã‚‚ã®ã¨ã—ã¦æ‰±ã‚れã¾ã™ã€‚ +¥­¡¼¥ï¡¼¥É¤Îû½Ì·Á¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢CN¡¢cn¡¢¤ª¤è¤Ó 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 +\f2¡ÖJava 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 @ +\f2¡ÖJava ÇÛÈ÷¥¬¥¤¥É \- 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 @ +\f2¡ÖDefault 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 @ +\f2¡ÖPolicy Tool Users' Guide¡×\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html .br .na -\f2「Security Permissionsã€\fP @ +\f2¡ÖSecurity Permissions¡×\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html .br .na -\f2「Security Overviewã€\fP @ +\f2¡ÖSecurity 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 Specification¡¢CORBA 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 @ +\f2¡ÖJava 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#classpath¡¢java(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 ¤Ç³«»Ï¤·¤Þ¤¹¡£\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 ã®ãƒãƒ¼ãƒŸãƒ³ã‚°ã‚µãƒ¼ãƒ“スプロセスãŒåœæ­¢ã—ã€å†èµ·å‹•ã•れるã¨å¤±ã‚れã¾ã™ã€‚ +¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤Ï̾Á°¶õ´Ö¤Ë̾Á°¤Ç³ÊǼ¤µ¤ì¡¢¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤È̾Á°¤Î¥Ú¥¢¤Ï¡¢¤½¤ì¤¾¤ì¡Ö¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¡×¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ï¡Ö¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¡×¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤Ï¤½¤ì¼«ÂΤ¬¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸ÊÔÀ®µ¡Ç½¤ò»ý¤Á¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ï¡Ö½é´ü¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¡×¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£Ì¾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ¡¢½é´ü¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤ÏÍ£°ì¤Î»ý³Ū¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¹¡£¤½¤ì°Ê³°¤Î¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢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 @ +\f2¡ÖRMI\-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 @ +\f2¡ÖJava 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 @ +\f2¡ÖJava ÇÛÈ÷¥¬¥¤¥É \- 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 ã®å„å½¢å¼ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚ +³°Éô¥¨¥ó¥Æ¥£¥Æ¥£¡¼»²¾È¤ò²ò·è¤¹¤ë¤¿¤á¤Î¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£TR9401¡¢XCatalog¡¢OASIS 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ã®ã‚µãƒ³ãƒ—ルアプリケーションを調ã¹ã¦ãã ã•ã„。 +³°Éô¥¨¥ó¥Æ¥£¥Æ¥£¡¼»²¾È¤ò²ò·è¤¹¤ë¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£TR9401¡¢XCatalog¡¢¤ª¤è¤Ó 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/share/bin/jli_util.h b/jdk/src/share/bin/jli_util.h index 40afaa21069..7601e93be31 100644 --- a/jdk/src/share/bin/jli_util.h +++ b/jdk/src/share/bin/jli_util.h @@ -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 @@ -35,7 +35,6 @@ char *JLI_StringDup(const char *s1); void JLI_MemFree(void *ptr); int JLI_StrCCmp(const char *s1, const char* s2); - #define JLI_StrLen(p1) strlen((p1)) #define JLI_StrChr(p1, p2) strchr((p1), (p2)) #define JLI_StrRChr(p1, p2) strrchr((p1), (p2)) @@ -48,6 +47,7 @@ int JLI_StrCCmp(const char *s1, const char* s2); #define JLI_StrSpn(p1, p2) strspn((p1), (p2)) #define JLI_StrCSpn(p1, p2) strcspn((p1), (p2)) #define JLI_StrPBrk(p1, p2) strpbrk((p1), (p2)) +#define JLI_StrTok(p1, p2) strtok((p1), (p2)) /* On Windows lseek() is in io.h rather than the location dictated by POSIX. */ #ifdef _WIN32 diff --git a/jdk/src/share/classes/com/sun/beans/TypeResolver.java b/jdk/src/share/classes/com/sun/beans/TypeResolver.java index 6196b22f2a1..8660213a050 100644 --- a/jdk/src/share/classes/com/sun/beans/TypeResolver.java +++ b/jdk/src/share/classes/com/sun/beans/TypeResolver.java @@ -175,8 +175,8 @@ public final class TypeResolver { /** * Converts the given {@code type} to the corresponding class. * This method implements the concept of type erasure, - * that is described in <a href="http://jscstage.sfbay.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.6">section 4.6</a> - * of Java Language Specification. + * that is described in section 4.6 of + * <cite>The Java™ Language Specification</cite>. * * @param type the array of types to convert * @return a corresponding class 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/java/util/jar/pack/package.html b/jdk/src/share/classes/com/sun/java/util/jar/pack/package.html index 084e0df7e10..bf3fa743028 100644 --- a/jdk/src/share/classes/com/sun/java/util/jar/pack/package.html +++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/package.html @@ -88,8 +88,8 @@ Jar File Specification :<a href="http://java.sun.com/j2se/1.3/docs/guide/jar/jar http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html</a></li> <li> -Java Virtual Machine Specification : <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html"> -http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html</a></li> +Class File Specification: Chapter 4 of +<em>The Java™ Virtual Machine Specification</em> <li> Hypertext Transfer Protocol -- HTTP/1.1 : <a href="http://www.ietf.org/rfc/rfc2616.txt"> diff --git a/jdk/src/share/classes/com/sun/jdi/Accessible.java b/jdk/src/share/classes/com/sun/jdi/Accessible.java index 85d2b89397c..55b3b45a398 100644 --- a/jdk/src/share/classes/com/sun/jdi/Accessible.java +++ b/jdk/src/share/classes/com/sun/jdi/Accessible.java @@ -42,12 +42,9 @@ public interface Accessible { * Returns the Java<sup><font size=-2>TM</font></sup> * programming language modifiers, encoded in an integer. * <p> - * The modifier encodings are defined in the - * <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine - * Specification</a>, in the <code>access_flag</code> tables for - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75734">classes</a>, - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88358">fields</a>, and - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75568">methods</a>. + * The modifier encodings are defined in + * <cite>The Java™ Virtual Machine Specification</cite> + * in the <code>access_flag</code> tables for classes(section 4.1), fields(section 4.5), and methods(section 4.6). */ public int modifiers(); diff --git a/jdk/src/share/classes/com/sun/jdi/ArrayType.java b/jdk/src/share/classes/com/sun/jdi/ArrayType.java index 8cf86f46a8e..6e3c3f6f95f 100644 --- a/jdk/src/share/classes/com/sun/jdi/ArrayType.java +++ b/jdk/src/share/classes/com/sun/jdi/ArrayType.java @@ -77,11 +77,9 @@ public interface ArrayType extends ReferenceType { * as specified in the array declaration. * <P> * Note: The component type of a array will always be - * created or loaded before the array - see the - * <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>, section - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#79473">5.3.3 - * Creating Array Classes</a>. + * created or loaded before the array - see + * <cite>The Java™ Virtual Machine Specification</cite>, + * section 5.3.3 - Creating Array Classes. * However, although the component type will be loaded it may * not yet be prepared, in which case the type will be returned * but attempts to perform some operations on the returned type diff --git a/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java b/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java index e0cdedd3e63..cccf7c315f5 100644 --- a/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java +++ b/jdk/src/share/classes/com/sun/jdi/ClassLoaderReference.java @@ -71,11 +71,9 @@ public interface ClassLoaderReference extends ObjectReference { * <p> * No ordering of the returned list is guaranteed. * <p> - * See the revised - * <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a> section - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ConstantPool.doc.html#72007">5.3 - * Creation and Loading</a> + * See + * <cite>The Java™ Virtual Machine Specification</cite>, + * section 5.3 - Creation and Loading * for more information on the initiating classloader. * <p> * Note that unlike {@link #definedClasses()} diff --git a/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java b/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java index f669a15f1de..b139b3f065b 100644 --- a/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java +++ b/jdk/src/share/classes/com/sun/jdi/ClassNotLoadedException.java @@ -60,9 +60,9 @@ package com.sun.jdi; * is visible to the class loader of enclosing class. (That is, the * class loader of the enclosing class must be an <i>initiating</i> class * loader for the class in question.) - * See the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a> for - * more details. + * See + * <cite>The Java™ Virtual Machine Specification</cite> + * for more details. * * @author Gordon Hirsch * @since 1.3 diff --git a/jdk/src/share/classes/com/sun/jdi/ClassType.java b/jdk/src/share/classes/com/sun/jdi/ClassType.java index b5bc6532081..430832776b9 100644 --- a/jdk/src/share/classes/com/sun/jdi/ClassType.java +++ b/jdk/src/share/classes/com/sun/jdi/ClassType.java @@ -164,10 +164,8 @@ public interface ClassType extends ReferenceType { * component type is passed. The component type can be a primitive type. * Autoboxing is not supported. * - * See the <a href="http://java.sun.com/docs/books/jls/"> - * Java Language Specification</a>. - * section - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a> + * See Section 5.2 of + * <cite>The Java™ Language Specification</cite> * for more information on assignment compatibility. * <p> * By default, all threads in the target VM are resumed while @@ -280,10 +278,8 @@ public interface ClassType extends ReferenceType { * component type is passed. The component type can be a primitive type. * Autoboxing is not supported. * - * See the <a href="http://java.sun.com/docs/books/jls/"> - * Java Language Specification</a>. - * section - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a> + * See section 5.2 of + * <cite>The Java™ Language Specification</cite> * for more information on assignment compatibility. * <p> * By default, all threads in the target VM are resumed while diff --git a/jdk/src/share/classes/com/sun/jdi/LocalVariable.java b/jdk/src/share/classes/com/sun/jdi/LocalVariable.java index 23f0adbc080..fd0b9e4537b 100644 --- a/jdk/src/share/classes/com/sun/jdi/LocalVariable.java +++ b/jdk/src/share/classes/com/sun/jdi/LocalVariable.java @@ -102,9 +102,7 @@ public interface LocalVariable extends Mirror, Comparable<LocalVariable> { /** * Gets the generic signature for this variable if there is one. * Generic signatures are described in the - * <a href="http://java.sun.com/docs/books/vmspec"> - * "Java<sup><font size=-2>TM</font></sup> - * Virtual Machine Specification, 3rd Edition.</a> + * <cite>The Java™ Virtual Machine Specification</cite>. * * @return a string containing the generic signature, or <code>null</code> * if there is no generic signature. diff --git a/jdk/src/share/classes/com/sun/jdi/Method.java b/jdk/src/share/classes/com/sun/jdi/Method.java index a34ad479b44..ea1044f6197 100644 --- a/jdk/src/share/classes/com/sun/jdi/Method.java +++ b/jdk/src/share/classes/com/sun/jdi/Method.java @@ -164,10 +164,8 @@ public interface Method extends TypeComponent, Locatable, Comparable<Method> { /** * Determine if this method is a bridge method. Bridge - * methods are defined in the - * <a href="http://java.sun.com/docs/books/jls"> - * "Java<sup><font size=-2>TM</font></sup> - * Language Specification, 3rd Edition.</a> + * methods are defined in + * <cite>The Java™ Language Specification</cite>. * * @return <code>true</code> if the method is a bridge method, * false otherwise. diff --git a/jdk/src/share/classes/com/sun/jdi/ObjectReference.java b/jdk/src/share/classes/com/sun/jdi/ObjectReference.java index 557fc92e1bc..a184f25a132 100644 --- a/jdk/src/share/classes/com/sun/jdi/ObjectReference.java +++ b/jdk/src/share/classes/com/sun/jdi/ObjectReference.java @@ -118,10 +118,8 @@ public interface ObjectReference extends Value * enclosing class's class loader). Primitive values must be * either assignment compatible with the field type or must be * convertible to the field type without loss of information. - * See the <a href="http://java.sun.com/docs/books/jls/"> - * Java<sup><font size=-2>TM</font></sup> Language Specification</a>. - * section - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a> + * See section 5.2 of + * <cite>The Java™ Language Specification</cite> * for more information on assignment * compatibility. * @@ -182,18 +180,13 @@ public interface ObjectReference extends Value * component type is passed. The component type can be a primitive type. * Autoboxing is not supported. * - * See the <a href="http://java.sun.com/docs/books/jls/"> - * Java Language Specification</a>. - * section - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#184206">5.2</a> + * See section 5.2 of + * <cite>The Java™ Language Specification</cite> * for more information on assignment compatibility. * <p> * By default, the method is invoked using dynamic lookup as - * documented in the - * <a href="http://java.sun.com/docs/books/jls/"> - * Java Language Specification</a> - * second edition, section - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#45606">15.12.4.4</a>; + * documented in section 15.12.4.4 of + * <cite>The Java™ Language Specification</cite> * in particular, overriding based on the runtime type of the object * mirrored by this {@link ObjectReference} will occur. This * behavior can be changed by specifying the diff --git a/jdk/src/share/classes/com/sun/jdi/ReferenceType.java b/jdk/src/share/classes/com/sun/jdi/ReferenceType.java index 4baae6bb72e..65accef7861 100644 --- a/jdk/src/share/classes/com/sun/jdi/ReferenceType.java +++ b/jdk/src/share/classes/com/sun/jdi/ReferenceType.java @@ -30,9 +30,8 @@ import java.util.Map; /** * The type of an object in a target VM. ReferenceType encompasses - * classes, interfaces, and array types as defined in the - * <a href="http://java.sun.com/docs/books/jls/"> - * Java<sup><font size=-2>TM</font></sup> Language Specification</a>. + * classes, interfaces, and array types as defined in + * <cite>The Java™ Language Specification</cite>. * All ReferenceType objects belong to one of the following * subinterfaces: * {@link ClassType} for classes, @@ -98,9 +97,7 @@ public interface ReferenceType /** * Gets the generic signature for this type if there is one. * Generic signatures are described in the - * <a href="http://java.sun.com/docs/books/vmspec"> - * "Java<sup><font size=-2>TM</font></sup> - * Virtual Machine Specification, 3rd Edition.</a> + * <cite>The Java™ Virtual Machine Specification</cite>. * * @return a string containing the generic signature, or <code>null</code> * if there is no generic signature. diff --git a/jdk/src/share/classes/com/sun/jdi/TypeComponent.java b/jdk/src/share/classes/com/sun/jdi/TypeComponent.java index b1e02f5df8d..6c6e2830735 100644 --- a/jdk/src/share/classes/com/sun/jdi/TypeComponent.java +++ b/jdk/src/share/classes/com/sun/jdi/TypeComponent.java @@ -74,9 +74,7 @@ public interface TypeComponent extends Mirror, Accessible { /** * Gets the generic signature for this TypeComponent if there is one. * Generic signatures are described in the - * <a href="http://java.sun.com/docs/books/vmspec"> - * "Java<sup><font size=-2>TM</font></sup> - * Virtual Machine Specification, 3rd Edition.</a> + * <cite>The Java™ Virtual Machine Specification</cite>. * * @return a string containing the generic signature, or <code>null</code> * if there is no generic signature. diff --git a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java index cce2997202b..74ac1b2bf23 100644 --- a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +++ b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.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 @@ -111,13 +111,13 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ private String tableName; - /** * A <code>Vector</code> object containing the <code>Row</code> * objects that comprise this <code>CachedRowSetImpl</code> object. * @serial */ - private Vector rvh; + private Vector<Object> rvh; + /** * The current postion of the cursor in this <code>CachedRowSetImpl</code> * object. @@ -293,12 +293,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern /** * The Vector holding the Match Columns */ - private Vector iMatchColumns; + private Vector<Integer> iMatchColumns; /** * The Vector that will hold the Match Column names. */ - private Vector strMatchColumns; + private Vector<String> strMatchColumns; /** * Trigger that indicates whether the active SyncProvider is exposes the @@ -484,7 +484,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ private void initContainer() { - rvh = new Vector(100); + rvh = new Vector<Object>(100); cursorPos = 0; absolutePos = 0; numRows = 0; @@ -523,12 +523,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern //Instantiating the vector for MatchColumns - iMatchColumns = new Vector(10); + iMatchColumns = new Vector<Integer>(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector<String>(10); for(int j = 0; j < 10; j++) { strMatchColumns.add(j,null); } @@ -622,7 +622,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern Row currentRow; int numCols; int i; - Map map = getTypeMap(); + Map<String, Class<?>> map = getTypeMap(); Object obj; int mRows; @@ -939,14 +939,9 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ public void acceptChanges(Connection con) throws SyncProviderException{ - try{ - setConnection(con); - acceptChanges(); - } catch (SyncProviderException spe) { - throw spe; - } catch(SQLException sqle){ - throw new SyncProviderException(sqle.getMessage()); - } + setConnection(con); + acceptChanges(); + } /** @@ -1289,14 +1284,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ public Collection<?> toCollection() throws SQLException { - TreeMap tMap; - int count = 0; - Row origRow; - Vector newRow; - - int colCount = ((RowSetMetaDataImpl)this.getMetaData()).getColumnCount(); - - tMap = new TreeMap(); + TreeMap<Integer, Object> tMap = new TreeMap<>(); for (int i = 0; i<numRows; i++) { tMap.put(Integer.valueOf(i), rvh.get(i)); @@ -1325,10 +1313,8 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ public Collection<?> toCollection(int column) throws SQLException { - Vector vec; - Row origRow; int nRows = numRows; - vec = new Vector(nRows); + Vector<Object> vec = new Vector<>(nRows); // create a copy CachedRowSetImpl crsTemp; @@ -2953,7 +2939,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ public Object getObject(int columnIndex) throws SQLException { Object value; - java.util.Map map; + Map<String, Class<?>> map; // sanity check. checkIndex(columnIndex); @@ -7257,7 +7243,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern Row currentRow; int numCols; int i; - Map map = getTypeMap(); + Map<String, Class<?>> map = getTypeMap(); Object obj; int mRows; @@ -7304,11 +7290,11 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern resultSet.absolute(start -1); } if( pageSize == 0) { - rvh = new Vector(getMaxRows()); + rvh = new Vector<Object>(getMaxRows()); } else{ - rvh = new Vector(getPageSize()); + rvh = new Vector<Object>(getPageSize()); } if (data == null) { diff --git a/jdk/src/share/classes/com/sun/rowset/JdbcRowSetImpl.java b/jdk/src/share/classes/com/sun/rowset/JdbcRowSetImpl.java index fa46e55d858..f29d7d9ef2a 100644 --- a/jdk/src/share/classes/com/sun/rowset/JdbcRowSetImpl.java +++ b/jdk/src/share/classes/com/sun/rowset/JdbcRowSetImpl.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 @@ -93,12 +93,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { /** * The Vector holding the Match Columns */ - private Vector iMatchColumns; + private Vector<Integer> iMatchColumns; /** * The Vector that will hold the Match Column names. */ - private Vector strMatchColumns; + private Vector<String> strMatchColumns; protected transient JdbcRowSetResourceBundle resBundle; @@ -213,12 +213,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { //Instantiating the vector for MatchColumns - iMatchColumns = new Vector(10); + iMatchColumns = new Vector<Integer>(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector<String>(10); for(int j = 0; j < 10; j++) { strMatchColumns.add(j,null); } @@ -286,12 +286,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { //Instantiating the vector for MatchColumns - iMatchColumns = new Vector(10); + iMatchColumns = new Vector<Integer>(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector<String>(10); for(int j = 0; j < 10; j++) { strMatchColumns.add(j,null); } @@ -373,12 +373,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { //Instantiating the vector for MatchColumns - iMatchColumns = new Vector(10); + iMatchColumns = new Vector<Integer>(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector<String>(10); for(int j = 0; j < 10; j++) { strMatchColumns.add(j,null); } @@ -463,12 +463,12 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { //Instantiating the vector for MatchColumns - iMatchColumns = new Vector(10); + iMatchColumns = new Vector<Integer>(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector<String>(10); for(int j = 0; j < 10; j++) { strMatchColumns.add(j,null); } @@ -675,7 +675,7 @@ public class JdbcRowSetImpl extends BaseRowSet implements JdbcRowSet, Joinable { try { - Map aMap = getTypeMap(); + Map<String, Class<?>> aMap = getTypeMap(); if( aMap != null) { conn.setTypeMap(aMap); } diff --git a/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java b/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java index 060c82375b6..05feebc2824 100644 --- a/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.java +++ b/jdk/src/share/classes/com/sun/rowset/JoinRowSetImpl.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,8 +59,8 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { /** * A <code>Vector</code> object that contains the <code>RowSet</code> objects * that have been added to this <code>JoinRowSet</code> object. - */ - private Vector vecRowSetsInJOIN; + */ + private Vector<CachedRowSetImpl> vecRowSetsInJOIN; /** * The <code>CachedRowSet</code> object that encapsulates this @@ -78,13 +78,13 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { * for this <code>JoinRowSet</code> object. * The last join type set forms the basis of succeeding joins. */ - private Vector vecJoinType; + private Vector<Integer> vecJoinType; /** * A <code>Vector</code> object containing the names of all the tables entering * the join. */ - private Vector vecTableNames; + private Vector<String> vecTableNames; /** * An <code>int</code> that indicates the column index of the match column. @@ -121,10 +121,10 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { */ public JoinRowSetImpl() throws SQLException { - vecRowSetsInJOIN = new Vector(); + vecRowSetsInJOIN = new Vector<CachedRowSetImpl>(); crsInternal = new CachedRowSetImpl(); - vecJoinType = new Vector(); - vecTableNames = new Vector(); + vecJoinType = new Vector<Integer>(); + vecTableNames = new Vector<String>(); iMatchKey = -1; strMatchKey = null; supportedJOINs = @@ -222,7 +222,7 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { // either of the setter methods have been set. if(boolColId){ // - ArrayList indices = new ArrayList(); + ArrayList<Integer> indices = new ArrayList<>(); for(int i=0;i<cRowset.getMatchColumnNames().length;i++) { if( (strMatchKey = (cRowset.getMatchColumnNames())[i]) != null) { iMatchKey = cRowset.findColumn(strMatchKey); 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/java/awt/Dialog.java b/jdk/src/share/classes/java/awt/Dialog.java index e6ac3a8cdff..a388c70e7f5 100644 --- a/jdk/src/share/classes/java/awt/Dialog.java +++ b/jdk/src/share/classes/java/awt/Dialog.java @@ -903,7 +903,7 @@ public class Dialog extends Window { if (peer == null) { addNotify(); } - validate(); + validateUnconditionally(); if (visible) { toFront(); retval = false; diff --git a/jdk/src/share/classes/java/awt/GraphicsDevice.java b/jdk/src/share/classes/java/awt/GraphicsDevice.java index 25c6eb5d41f..f3b7cd390a6 100644 --- a/jdk/src/share/classes/java/awt/GraphicsDevice.java +++ b/jdk/src/share/classes/java/awt/GraphicsDevice.java @@ -243,8 +243,10 @@ public abstract class GraphicsDevice { * a non-client of the input method framework. * </ul> * <p> - * Simulated full-screen mode resizes - * the window to the size of the screen and positions it at (0,0). + * The simulated full-screen mode places and resizes the window to the maximum + * possible visible area of the screen. However, the native windowing system + * may modify the requested geometry-related data, so that the {@code Window} object + * is placed and sized in a way that corresponds closely to the desktop settings. * <p> * When entering full-screen mode, if the window to be used as a * full-screen window is not visible, this method will make it visible. diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java index cc0b658e7b2..58a4ddc7b4f 100644 --- a/jdk/src/share/classes/java/awt/Toolkit.java +++ b/jdk/src/share/classes/java/awt/Toolkit.java @@ -466,6 +466,10 @@ public abstract class Toolkit { */ protected void loadSystemColors(int[] systemColors) throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } + } /** @@ -500,6 +504,10 @@ public abstract class Toolkit { */ public void setDynamicLayout(boolean dynamic) throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } + } /** @@ -523,6 +531,9 @@ public abstract class Toolkit { */ protected boolean isDynamicLayoutSet() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit().isDynamicLayoutSet(); } else { @@ -558,6 +569,9 @@ public abstract class Toolkit { */ public boolean isDynamicLayoutActive() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit().isDynamicLayoutActive(); } else { @@ -601,6 +615,9 @@ public abstract class Toolkit { */ public Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit().getScreenInsets(gc); } else { @@ -1342,6 +1359,9 @@ public abstract class Toolkit { * @since 1.4 */ public Clipboard getSystemSelection() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit().getSystemSelection(); } else { @@ -1371,6 +1391,10 @@ public abstract class Toolkit { * @since JDK1.1 */ public int getMenuShortcutKeyMask() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } + return Event.CTRL_MASK; } @@ -1499,6 +1523,9 @@ public abstract class Toolkit { */ public Dimension getBestCursorSize(int preferredWidth, int preferredHeight) throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } // Override to implement custom cursor support. if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit(). @@ -1526,6 +1553,9 @@ public abstract class Toolkit { * @since 1.2 */ public int getMaximumCursorColors() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } // Override to implement custom cursor support. if (this != Toolkit.getDefaultToolkit()) { return Toolkit.getDefaultToolkit().getMaximumCursorColors(); @@ -2561,8 +2591,6 @@ public abstract class Toolkit { * initialized with {@code true}. * Changing this value after the {@code Toolkit} class initialization will have no effect. * <p> - * The current value could be queried by using the - * {@code System.getProperty("sun.awt.enableExtraMouseButtons")} method. * @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true * @return {@code true} if events from extra mouse buttons are allowed to be processed and posted; * {@code false} otherwise @@ -2572,6 +2600,9 @@ public abstract class Toolkit { * @since 1.7 */ public boolean areExtraMouseButtonsEnabled() throws HeadlessException { + if (GraphicsEnvironment.isHeadless()){ + throw new HeadlessException(); + } return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled(); } } diff --git a/jdk/src/share/classes/java/awt/Window.java b/jdk/src/share/classes/java/awt/Window.java index 1f52de3ad09..d2c97dbf8ab 100644 --- a/jdk/src/share/classes/java/awt/Window.java +++ b/jdk/src/share/classes/java/awt/Window.java @@ -870,6 +870,11 @@ public class Window extends Container implements Accessible { * are automatically enlarged if either is less than * the minimum size as specified by previous call to * {@code setMinimumSize}. + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. * * @see #getSize * @see #setBounds @@ -887,6 +892,11 @@ public class Window extends Container implements Accessible { * are automatically enlarged if either is less than * the minimum size as specified by previous call to * {@code setMinimumSize}. + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. * * @see #getSize * @see #setBounds @@ -897,6 +907,32 @@ public class Window extends Container implements Accessible { super.setSize(width, height); } + /** + * {@inheritDoc} + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. + */ + @Override + public void setLocation(int x, int y) { + super.setLocation(x, y); + } + + /** + * {@inheritDoc} + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. + */ + @Override + public void setLocation(Point p) { + super.setLocation(p); + } + /** * @deprecated As of JDK version 1.1, * replaced by <code>setBounds(int, int, int, int)</code>. @@ -3147,6 +3183,11 @@ public class Window extends Container implements Accessible { * placed at the left side of the screen. The similar placement * will occur if both top and bottom edges are out of the screen. * In that case, the window is placed at the top side of the screen. + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. * * @param c the component in relation to which the window's location * is determined @@ -3395,6 +3436,11 @@ public class Window extends Container implements Accessible { * are automatically enlarged if either is less than * the minimum size as specified by previous call to * {@code setMinimumSize}. + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. * * @see #getBounds * @see #setLocation(int, int) @@ -3424,6 +3470,11 @@ public class Window extends Container implements Accessible { * will be automatically enlarged if either is less than * the minimum size as specified by previous call to * {@code setMinimumSize}. + * <p> + * The method changes the geometry-related data. Therefore, + * the native windowing system may ignore such requests, or it may modify + * the requested data, so that the {@code Window} object is placed and sized + * in a way that corresponds closely to the desktop settings. * * @see #getBounds * @see #setLocation(int, int) diff --git a/jdk/src/share/classes/java/awt/doc-files/AWTThreadIssues.html b/jdk/src/share/classes/java/awt/doc-files/AWTThreadIssues.html index 54a0a3ca5c7..735cfdd97d6 100644 --- a/jdk/src/share/classes/java/awt/doc-files/AWTThreadIssues.html +++ b/jdk/src/share/classes/java/awt/doc-files/AWTThreadIssues.html @@ -40,10 +40,9 @@ newly added listener is only notified on subsequent key events. <a name="Autoshutdown"></a> <h2>Auto-shutdown</h2> -According to <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The -Java</i><sup><small>TM</small></sup> <i>Virtual Machine Specification, -Second edition</i></a> (see <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#19152">§2.17.9</a> -and <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#33308">§2.19</a>), +According to +<cite>The Java™ Virtual Machine Specification</cite>, +sections 2.17.9 and 2.19, the Java virtual machine (JVM) initially starts up with a single non-daemon thread, which typically calls the <code>main</code> method of some class. The virtual machine terminates all its activity and exits when @@ -183,7 +182,8 @@ non-daemon thread that blocks forever. <...> </pre> -The Java Virtual Machine Specification guarantees +<cite>The Java™ Virtual Machine Specification</cite> + guarantees that the JVM doesn't exit until this thread terminates. </body> </html> diff --git a/jdk/src/share/classes/java/io/Console.java b/jdk/src/share/classes/java/io/Console.java index 5468cdf78f0..c4987dc0934 100644 --- a/jdk/src/share/classes/java/io/Console.java +++ b/jdk/src/share/classes/java/io/Console.java @@ -148,8 +148,8 @@ public final class Console implements Flushable * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -187,8 +187,8 @@ public final class Console implements Flushable * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -220,8 +220,7 @@ public final class Console implements Flushable * string. If there are more arguments than format specifiers, the * extra arguments are ignored. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. + * <cite>The Java™ Virtual Machine Specification</cite>. * * @throws IllegalFormatException * If a format string contains an illegal syntax, a format @@ -285,8 +284,7 @@ public final class Console implements Flushable * string. If there are more arguments than format specifiers, the * extra arguments are ignored. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. + * <cite>The Java™ Virtual Machine Specification</cite>. * * @throws IllegalFormatException * If a format string contains an illegal syntax, a format diff --git a/jdk/src/share/classes/java/io/PrintStream.java b/jdk/src/share/classes/java/io/PrintStream.java index f29b5407abf..c4cd01f470f 100644 --- a/jdk/src/share/classes/java/io/PrintStream.java +++ b/jdk/src/share/classes/java/io/PrintStream.java @@ -846,8 +846,8 @@ public class PrintStream extends FilterOutputStream * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -896,8 +896,8 @@ public class PrintStream extends FilterOutputStream * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -939,8 +939,8 @@ public class PrintStream extends FilterOutputStream * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -996,8 +996,8 @@ public class PrintStream extends FilterOutputStream * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * diff --git a/jdk/src/share/classes/java/io/PrintWriter.java b/jdk/src/share/classes/java/io/PrintWriter.java index 0e9ea8f5688..102c3a29abc 100644 --- a/jdk/src/share/classes/java/io/PrintWriter.java +++ b/jdk/src/share/classes/java/io/PrintWriter.java @@ -779,8 +779,8 @@ public class PrintWriter extends Writer { * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -830,8 +830,8 @@ public class PrintWriter extends Writer { * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -874,8 +874,8 @@ public class PrintWriter extends Writer { * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -934,8 +934,8 @@ public class PrintWriter extends Writer { * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * diff --git a/jdk/src/share/classes/java/lang/AssertionError.java b/jdk/src/share/classes/java/lang/AssertionError.java index b3784f125a7..984c3e4f00b 100644 --- a/jdk/src/share/classes/java/lang/AssertionError.java +++ b/jdk/src/share/classes/java/lang/AssertionError.java @@ -34,11 +34,9 @@ package java.lang; * new AssertionError(<i>expression</i>) * </pre> * has as its detail message the <i>string conversion</i> of - * <i>expression</i> (as defined in <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"> - * <i>The Java Language Specification, Second Edition</i></a>, - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#40220"> - * Section 15.18.1.1</a>), regardless of the type of <i>expression</i>. + * <i>expression</i> (as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>), + * regardless of the type of <i>expression</i>. * * @since 1.4 */ @@ -63,8 +61,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified object, which is converted to a string as - * defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. *<p> * If the specified object is an instance of {@code Throwable}, it * becomes the <i>cause</i> of the newly constructed assertion error. @@ -81,8 +79,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>boolean</code>, which is converted to - * a string as defined in <i>The Java Language Specification, - * Second Edition</i>, Section 15.18.1.1. + * a string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ @@ -93,8 +91,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>char</code>, which is converted to a - * string as defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ @@ -105,8 +103,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>int</code>, which is converted to a - * string as defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ @@ -117,8 +115,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>long</code>, which is converted to a - * string as defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ @@ -129,8 +127,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>float</code>, which is converted to a - * string as defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ @@ -141,8 +139,8 @@ public class AssertionError extends Error { /** * Constructs an AssertionError with its detail message derived * from the specified <code>double</code>, which is converted to a - * string as defined in <i>The Java Language Specification, Second - * Edition</i>, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * <cite>The Java™ Language Specification</cite>. * * @param detailMessage value to be used in constructing detail message */ diff --git a/jdk/src/share/classes/java/lang/Byte.java b/jdk/src/share/classes/java/lang/Byte.java index e6d2543586e..2ab00f8f97d 100644 --- a/jdk/src/share/classes/java/lang/Byte.java +++ b/jdk/src/share/classes/java/lang/Byte.java @@ -251,9 +251,9 @@ public final class Byte extends Number implements Comparable<Byte> { * </blockquote> * * <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> - * are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">§3.10.1</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a>. + * are as defined in section 3.10.1 of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. * * <p>The sequence of characters following an optional * sign and/or radix specifier ("{@code 0x}", "{@code 0X}", diff --git a/jdk/src/share/classes/java/lang/Character.java b/jdk/src/share/classes/java/lang/Character.java index cc1dae863df..e52a83a84b1 100644 --- a/jdk/src/share/classes/java/lang/Character.java +++ b/jdk/src/share/classes/java/lang/Character.java @@ -4182,9 +4182,11 @@ class Character implements java.io.Serializable, Comparable<Character> { aliases.put("AVST", AVESTAN); aliases.put("BALI", BALINESE); aliases.put("BAMU", BAMUM); + aliases.put("BATK", BATAK); aliases.put("BENG", BENGALI); aliases.put("BOPO", BOPOMOFO); aliases.put("BRAI", BRAILLE); + aliases.put("BRAH", BRAHMI); aliases.put("BUGI", BUGINESE); aliases.put("BUHD", BUHID); aliases.put("CANS", CANADIAN_ABORIGINAL); @@ -4228,6 +4230,7 @@ class Character implements java.io.Serializable, Comparable<Character> { aliases.put("LISU", LISU); aliases.put("LYCI", LYCIAN); aliases.put("LYDI", LYDIAN); + aliases.put("MAND", MANDAIC); aliases.put("MLYM", MALAYALAM); aliases.put("MONG", MONGOLIAN); aliases.put("MTEI", MEETEI_MAYEK); diff --git a/jdk/src/share/classes/java/lang/Class.java b/jdk/src/share/classes/java/lang/Class.java index e8c01aceb8d..cf6c890b3fb 100644 --- a/jdk/src/share/classes/java/lang/Class.java +++ b/jdk/src/share/classes/java/lang/Class.java @@ -95,8 +95,8 @@ import sun.reflect.annotation.*; * </pre></blockquote> * * <p> It is also possible to get the {@code Class} object for a named - * type (or for void) using a class literal - * (JLS Section <A HREF="http://java.sun.com/docs/books/jls/second_edition/html/expressions.doc.html#251530">15.8.2</A>). + * type (or for void) using a class literal. See Section 15.8.2 of + * <cite>The Java™ Language Specification</cite>. * For example: * * <p> <blockquote> @@ -521,7 +521,8 @@ public final * * <p> If this class object represents a reference type that is not an * array type then the binary name of the class is returned, as specified - * by the Java Language Specification, Second Edition. + * by + * <cite>The Java™ Language Specification</cite>. * * <p> If this class object represents a primitive type or void, then the * name returned is a {@code String} equal to the Java language @@ -630,8 +631,8 @@ public final * the type variables declared by this generic declaration * @throws java.lang.reflect.GenericSignatureFormatError if the generic * signature of this generic declaration does not conform to - * the format specified in the Java Virtual Machine Specification, - * 3rd edition + * the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @since 1.5 */ public TypeVariable<Class<T>>[] getTypeParameters() { @@ -675,8 +676,8 @@ public final * returned. * * @throws java.lang.reflect.GenericSignatureFormatError if the generic - * class signature does not conform to the format specified in the - * Java Virtual Machine Specification, 3rd edition + * class signature does not conform to the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if the generic superclass * refers to a non-existent type declaration * @throws java.lang.reflect.MalformedParameterizedTypeException if the @@ -798,7 +799,8 @@ public final * * @throws java.lang.reflect.GenericSignatureFormatError * if the generic class signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if any of the generic * superinterfaces refers to a non-existent type declaration * @throws java.lang.reflect.MalformedParameterizedTypeException diff --git a/jdk/src/share/classes/java/lang/ClassLoader.java b/jdk/src/share/classes/java/lang/ClassLoader.java index 2c0c7908566..f8588f527a2 100644 --- a/jdk/src/share/classes/java/lang/ClassLoader.java +++ b/jdk/src/share/classes/java/lang/ClassLoader.java @@ -160,8 +160,8 @@ import sun.security.util.SecurityConstants; * <h4> <a name="name">Binary names</a> </h4> * * <p> Any class name provided as a {@link String} parameter to methods in - * <tt>ClassLoader</tt> must be a binary name as defined by the <a - * href="http://java.sun.com/docs/books/jls/">Java Language Specification</a>. + * <tt>ClassLoader</tt> must be a binary name as defined by + * <cite>The Java™ Language Specification</cite>. * * <p> Examples of valid class names include: * <blockquote><pre> @@ -531,9 +531,8 @@ public abstract class ClassLoader { * @param b * The bytes that make up the class data. The bytes in positions * <tt>off</tt> through <tt>off+len-1</tt> should have the format - * of a valid class file as defined by the <a - * href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>. + * of a valid class file as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. * * @param off * The start offset in <tt>b</tt> of the class data @@ -597,9 +596,8 @@ public abstract class ClassLoader { * @param b * The bytes that make up the class data. The bytes in positions * <tt>off</tt> through <tt>off+len-1</tt> should have the format - * of a valid class file as defined by the <a - * href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>. + * of a valid class file as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. * * @param off * The start offset in <tt>b</tt> of the class data @@ -748,9 +746,8 @@ public abstract class ClassLoader { * @param b * The bytes that make up the class data. The bytes in positions * <tt>off</tt> through <tt>off+len-1</tt> should have the format - * of a valid class file as defined by the <a - * href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>. + * of a valid class file as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. * * @param off * The start offset in <tt>b</tt> of the class data @@ -838,8 +835,7 @@ public abstract class ClassLoader { * The bytes that make up the class data. The bytes from positions * <tt>b.position()</tt> through <tt>b.position() + b.limit() -1 * </tt> should have the format of a valid class file as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>. + * <cite>The Java™ Virtual Machine Specification</cite>. * * @param protectionDomain * The ProtectionDomain of the class, or <tt>null</tt>. @@ -998,9 +994,8 @@ public abstract class ClassLoader { * Links the specified class. This (misleadingly named) method may be * used by a class loader to link a class. If the class <tt>c</tt> has * already been linked, then this method simply returns. Otherwise, the - * class is linked as described in the "Execution" chapter of the <a - * href="http://java.sun.com/docs/books/jls/">Java Language - * Specification</a>. + * class is linked as described in the "Execution" chapter of + * <cite>The Java™ Language Specification</cite>. * </p> * * @param c @@ -2034,8 +2029,8 @@ public abstract class ClassLoader { * The name of the package whose package default assertion status * is to be set. A <tt>null</tt> value indicates the unnamed * package that is "current" - * (<a href="http://java.sun.com/docs/books/jls/">Java Language - * Specification</a>, section 7.4.2). + * (see section 7.4.2 of + * <cite>The Java™ Language Specification</cite>.) * * @param enabled * <tt>true</tt> if classes loaded by this classloader and diff --git a/jdk/src/share/classes/java/lang/Double.java b/jdk/src/share/classes/java/lang/Double.java index 2957f0b541d..1f6c9d4ca3b 100644 --- a/jdk/src/share/classes/java/lang/Double.java +++ b/jdk/src/share/classes/java/lang/Double.java @@ -392,9 +392,10 @@ public final class Double extends Number implements Comparable<Double> { * where <i>Sign</i>, <i>FloatingPointLiteral</i>, * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and * <i>FloatTypeSuffix</i> are as defined in the lexical structure - * sections of the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>. If {@code s} does not have the form of + * sections of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. + * If {@code s} does not have the form of * a <i>FloatValue</i>, then a {@code NumberFormatException} * is thrown. Otherwise, {@code s} is regarded as * representing an exact decimal value in the usual @@ -464,8 +465,8 @@ public final class Double extends Number implements Comparable<Double> { * // Since this method allows integer-only strings as input * // in addition to strings of floating-point literals, the * // two sub-patterns below are simplifications of the grammar - * // productions from the Java Language Specification, 2nd - * // edition, section 3.10.2. + * // productions from section 3.10.2 of + * // <cite>The Java™ Language Specification</cite>. * * // Digits ._opt Digits_opt ExponentPart_opt FloatTypeSuffix_opt * "((("+Digits+"(\\.)?("+Digits+"?)("+Exp+")?)|"+ diff --git a/jdk/src/share/classes/java/lang/Enum.java b/jdk/src/share/classes/java/lang/Enum.java index caf82dbd32b..798ae3fa6f6 100644 --- a/jdk/src/share/classes/java/lang/Enum.java +++ b/jdk/src/share/classes/java/lang/Enum.java @@ -36,9 +36,8 @@ import java.io.ObjectStreamException; * * More information about enums, including descriptions of the * implicitly declared methods synthesized by the compiler, can be - * found in <i>The Java™ Language Specification, Third - * Edition</i>, <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.9">§8.9</a>. + * found in section 8.9 of + * <cite>The Java™ Language Specification</cite>. * * <p> Note that when using an enumeration type as the type of a set * or as the type of the keys in a map, specialized and efficient diff --git a/jdk/src/share/classes/java/lang/Error.java b/jdk/src/share/classes/java/lang/Error.java index e9dd5463e8d..1c5c50797f4 100644 --- a/jdk/src/share/classes/java/lang/Error.java +++ b/jdk/src/share/classes/java/lang/Error.java @@ -43,7 +43,7 @@ package java.lang; * * @author Frank Yellin * @see java.lang.ThreadDeath - * @jls3 11.2 Compile-Time Checking of Exceptions + * @jls 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Error extends Throwable { diff --git a/jdk/src/share/classes/java/lang/Exception.java b/jdk/src/share/classes/java/lang/Exception.java index 77a563d642e..944aa052369 100644 --- a/jdk/src/share/classes/java/lang/Exception.java +++ b/jdk/src/share/classes/java/lang/Exception.java @@ -39,7 +39,7 @@ package java.lang; * * @author Frank Yellin * @see java.lang.Error - * @jls3 11.2 Compile-Time Checking of Exceptions + * @jls 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Exception extends Throwable { diff --git a/jdk/src/share/classes/java/lang/Float.java b/jdk/src/share/classes/java/lang/Float.java index f725def1d0a..612888f3209 100644 --- a/jdk/src/share/classes/java/lang/Float.java +++ b/jdk/src/share/classes/java/lang/Float.java @@ -353,9 +353,10 @@ public final class Float extends Number implements Comparable<Float> { * where <i>Sign</i>, <i>FloatingPointLiteral</i>, * <i>HexNumeral</i>, <i>HexDigits</i>, <i>SignedInteger</i> and * <i>FloatTypeSuffix</i> are as defined in the lexical structure - * sections of the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>. If {@code s} does not have the form of + * sections of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. + * If {@code s} does not have the form of * a <i>FloatValue</i>, then a {@code NumberFormatException} * is thrown. Otherwise, {@code s} is regarded as * representing an exact decimal value in the usual diff --git a/jdk/src/share/classes/java/lang/Integer.java b/jdk/src/share/classes/java/lang/Integer.java index af7f1da4553..a87e4b1ab5d 100644 --- a/jdk/src/share/classes/java/lang/Integer.java +++ b/jdk/src/share/classes/java/lang/Integer.java @@ -918,9 +918,9 @@ public final class Integer extends Number implements Comparable<Integer> { * </blockquote> * * <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> - * are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">§3.10.1</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a>. + * are as defined in section 3.10.1 of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. * * <p>The sequence of characters following an optional * sign and/or radix specifier ("{@code 0x}", "{@code 0X}", diff --git a/jdk/src/share/classes/java/lang/Long.java b/jdk/src/share/classes/java/lang/Long.java index d5b80e61881..bee7da3611e 100644 --- a/jdk/src/share/classes/java/lang/Long.java +++ b/jdk/src/share/classes/java/lang/Long.java @@ -598,9 +598,9 @@ public final class Long extends Number implements Comparable<Long> { * </blockquote> * * <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> - * are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">§3.10.1</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a>. + * are as defined in section 3.10.1 of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. * * <p>The sequence of characters following an optional * sign and/or radix specifier ("{@code 0x}", "{@code 0X}", diff --git a/jdk/src/share/classes/java/lang/Math.java b/jdk/src/share/classes/java/lang/Math.java index 79efeb7e9be..5d1be0c215b 100644 --- a/jdk/src/share/classes/java/lang/Math.java +++ b/jdk/src/share/classes/java/lang/Math.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 @@ -627,11 +627,9 @@ public final class Math { } /** - * Returns the closest {@code int} to the argument. The - * result is rounded to an integer by adding 1/2, taking the - * floor of the result, and casting the result to type {@code int}. - * In other words, the result is equal to the value of the expression: - * <p>{@code (int)Math.floor(a + 0.5f)} + * Returns the closest {@code int} to the argument, with ties + * rounding up. + * * <p> * Special cases: * <ul><li>If the argument is NaN, the result is 0. @@ -649,17 +647,17 @@ public final class Math { * @see java.lang.Integer#MIN_VALUE */ public static int round(float a) { - return (int)floor(a + 0.5f); + if (a != 0x1.fffffep-2f) // greatest float value less than 0.5 + return (int)floor(a + 0.5f); + else + return 0; } /** - * Returns the closest {@code long} to the argument. The result - * is rounded to an integer by adding 1/2, taking the floor of the - * result, and casting the result to type {@code long}. In other - * words, the result is equal to the value of the expression: - * <p>{@code (long)Math.floor(a + 0.5d)} - * <p> - * Special cases: + * Returns the closest {@code long} to the argument, with ties + * rounding up. + * + * <p>Special cases: * <ul><li>If the argument is NaN, the result is 0. * <li>If the argument is negative infinity or any value less than or * equal to the value of {@code Long.MIN_VALUE}, the result is @@ -676,7 +674,10 @@ public final class Math { * @see java.lang.Long#MIN_VALUE */ public static long round(double a) { - return (long)floor(a + 0.5d); + if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5 + return (long)floor(a + 0.5d); + else + return 0; } private static Random randomNumberGenerator; diff --git a/jdk/src/share/classes/java/lang/Object.java b/jdk/src/share/classes/java/lang/Object.java index ada472a1a43..d47b0a02311 100644 --- a/jdk/src/share/classes/java/lang/Object.java +++ b/jdk/src/share/classes/java/lang/Object.java @@ -58,9 +58,8 @@ public class Object { * * @return The {@code Class} object that represents the runtime * class of this object. - * @see <a href="http://java.sun.com/docs/books/jls/">The Java - * Language Specification, Third Edition (15.8.2 Class - * Literals)</a> + * @see Class Literals, section 15.8.2 of + * <cite>The Java™ Language Specification</cite>. */ public final native Class<?> getClass(); diff --git a/jdk/src/share/classes/java/lang/Override.java b/jdk/src/share/classes/java/lang/Override.java index 2ef2850ff2f..f708105dc36 100644 --- a/jdk/src/share/classes/java/lang/Override.java +++ b/jdk/src/share/classes/java/lang/Override.java @@ -43,7 +43,7 @@ import java.lang.annotation.*; * * @author Peter von der Ahé * @author Joshua Bloch - * @jls3 9.6.1.4 Override + * @jls 9.6.1.4 Override * @since 1.5 */ @Target(ElementType.METHOD) diff --git a/jdk/src/share/classes/java/lang/Package.java b/jdk/src/share/classes/java/lang/Package.java index 9b14e9443dc..3ea8013238d 100644 --- a/jdk/src/share/classes/java/lang/Package.java +++ b/jdk/src/share/classes/java/lang/Package.java @@ -109,10 +109,9 @@ public class Package implements java.lang.reflect.AnnotatedElement { /** * Return the name of this package. * - * @return The fully-qualified name of this package as defined in the - * <em>Java Language Specification, Third Edition</em> - * <a href="http://java.sun.com/docs/books/jls/third_edition/html/names.html#6.5.3"> - * §6.5.3</a>, for example, {@code java.lang} + * @return The fully-qualified name of this package as defined in section 6.5.3 of + * <cite>The Java™ Language Specification</cite>, + * for example, {@code java.lang} */ public String getName() { return pkgName; diff --git a/jdk/src/share/classes/java/lang/RuntimeException.java b/jdk/src/share/classes/java/lang/RuntimeException.java index add5900d493..85c0729dc9f 100644 --- a/jdk/src/share/classes/java/lang/RuntimeException.java +++ b/jdk/src/share/classes/java/lang/RuntimeException.java @@ -37,7 +37,7 @@ package java.lang; * propagate outside the method or constructor boundary. * * @author Frank Yellin - * @jls3 11.2 Compile-Time Checking of Exceptions + * @jls 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class RuntimeException extends Exception { diff --git a/jdk/src/share/classes/java/lang/SafeVarargs.java b/jdk/src/share/classes/java/lang/SafeVarargs.java index 1477b50c985..b0c03a9162b 100644 --- a/jdk/src/share/classes/java/lang/SafeVarargs.java +++ b/jdk/src/share/classes/java/lang/SafeVarargs.java @@ -70,8 +70,8 @@ import java.lang.annotation.*; * * </ul> * - * @jls3 4.7 Reifiable Types - * @jls3 8.4.1 Formal Parameters + * @jls 4.7 Reifiable Types + * @jls 8.4.1 Formal Parameters */ @Documented @Retention(RetentionPolicy.RUNTIME) diff --git a/jdk/src/share/classes/java/lang/Short.java b/jdk/src/share/classes/java/lang/Short.java index 080a5f95ee3..5ff010da00e 100644 --- a/jdk/src/share/classes/java/lang/Short.java +++ b/jdk/src/share/classes/java/lang/Short.java @@ -256,9 +256,9 @@ public final class Short extends Number implements Comparable<Short> { * </blockquote> * * <i>DecimalNumeral</i>, <i>HexDigits</i>, and <i>OctalDigits</i> - * are defined in <a href="http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#48282">§3.10.1</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a>. + * are as defined in section 3.10.1 of + * <cite>The Java™ Language Specification</cite>, + * except that underscores are not accepted between digits. * * <p>The sequence of characters following an optional * sign and/or radix specifier ("{@code 0x}", "{@code 0X}", diff --git a/jdk/src/share/classes/java/lang/StrictMath.java b/jdk/src/share/classes/java/lang/StrictMath.java index 56be3c5f17a..b829a817b8d 100644 --- a/jdk/src/share/classes/java/lang/StrictMath.java +++ b/jdk/src/share/classes/java/lang/StrictMath.java @@ -1,5 +1,5 @@ /* - * 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 @@ -613,11 +613,8 @@ public final class StrictMath { public static native double pow(double a, double b); /** - * Returns the closest {@code int} to the argument. The - * result is rounded to an integer by adding 1/2, taking the - * floor of the result, and casting the result to type {@code int}. - * In other words, the result is equal to the value of the expression: - * <p>{@code (int)Math.floor(a + 0.5f)} + * Returns the closest {@code int} to the argument, with ties + * rounding up. * * <p>Special cases: * <ul><li>If the argument is NaN, the result is 0. @@ -635,15 +632,12 @@ public final class StrictMath { * @see java.lang.Integer#MIN_VALUE */ public static int round(float a) { - return (int)floor(a + 0.5f); + return Math.round(a); } /** - * Returns the closest {@code long} to the argument. The result - * is rounded to an integer by adding 1/2, taking the floor of the - * result, and casting the result to type {@code long}. In other - * words, the result is equal to the value of the expression: - * <p>{@code (long)Math.floor(a + 0.5d)} + * Returns the closest {@code long} to the argument, with ties + * rounding up. * * <p>Special cases: * <ul><li>If the argument is NaN, the result is 0. @@ -662,7 +656,7 @@ public final class StrictMath { * @see java.lang.Long#MIN_VALUE */ public static long round(double a) { - return (long)floor(a + 0.5d); + return Math.round(a); } private static Random randomNumberGenerator; diff --git a/jdk/src/share/classes/java/lang/String.java b/jdk/src/share/classes/java/lang/String.java index 7cadf9e3137..1a40916a20a 100644 --- a/jdk/src/share/classes/java/lang/String.java +++ b/jdk/src/share/classes/java/lang/String.java @@ -2819,8 +2819,8 @@ public final class String * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -2863,8 +2863,8 @@ public final class String * extra arguments are ignored. The number of arguments is * variable and may be zero. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. The behaviour on a + * <cite>The Java™ Virtual Machine Specification</cite>. + * The behaviour on a * <tt>null</tt> argument depends on the <a * href="../util/Formatter.html#syntax">conversion</a>. * @@ -3066,9 +3066,8 @@ public final class String * if and only if <code>s.equals(t)</code> is <code>true</code>. * <p> * All literal strings and string-valued constant expressions are - * interned. String literals are defined in §3.10.5 of the - * <a href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a> + * interned. String literals are defined in section 3.10.5 of the + * <cite>The Java™ Language Specification</cite>. * * @return a string that has the same contents as this string, but is * guaranteed to be from a pool of unique strings. diff --git a/jdk/src/share/classes/java/lang/Throwable.java b/jdk/src/share/classes/java/lang/Throwable.java index 2784238efa4..8468ecf0d30 100644 --- a/jdk/src/share/classes/java/lang/Throwable.java +++ b/jdk/src/share/classes/java/lang/Throwable.java @@ -108,7 +108,7 @@ import java.util.*; * @author unascribed * @author Josh Bloch (Added exception chaining and programmatic access to * stack trace in 1.4.) - * @jls3 11.2 Compile-Time Checking of Exceptions + * @jls 11.2 Compile-Time Checking of Exceptions * @since JDK1.0 */ public class Throwable implements Serializable { diff --git a/jdk/src/share/classes/java/lang/annotation/Annotation.java b/jdk/src/share/classes/java/lang/annotation/Annotation.java index 0cfd78dd69d..d7b8ddd76f7 100644 --- a/jdk/src/share/classes/java/lang/annotation/Annotation.java +++ b/jdk/src/share/classes/java/lang/annotation/Annotation.java @@ -31,9 +31,8 @@ package java.lang.annotation; * an annotation type. Also note that this interface does not itself * define an annotation type. * - * More information about annotation types can be found in <i>The - * Java™ Language Specification, Third Edition</i>, <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.6">§9.6</a>. + * More information about annotation types can be found in section 9.6 of + * <cite>The Java™ Language Specification</cite>. * * @author Josh Bloch * @since 1.5 diff --git a/jdk/src/share/classes/java/lang/instrument/ClassFileTransformer.java b/jdk/src/share/classes/java/lang/instrument/ClassFileTransformer.java index ca0ab77e0db..6bc16ecf913 100644 --- a/jdk/src/share/classes/java/lang/instrument/ClassFileTransformer.java +++ b/jdk/src/share/classes/java/lang/instrument/ClassFileTransformer.java @@ -36,9 +36,9 @@ import java.security.ProtectionDomain; * to transform class files. * The transformation occurs before the class is defined by the JVM. * <P> - * Note the term <i>class file</i> is used as defined in the chapter - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#80959">The class File Format</a> - * of <i>The Java Virtual Machine Specification</i>, to mean a sequence + * Note the term <i>class file</i> is used as defined in section 3.1 of + * <cite>The Java™ Virtual Machine Specification</cite>, + * to mean a sequence * of bytes in class file format, whether or not they reside in a file. * * @see java.lang.instrument.Instrumentation diff --git a/jdk/src/share/classes/java/lang/instrument/Instrumentation.java b/jdk/src/share/classes/java/lang/instrument/Instrumentation.java index e8ef27a9658..510b4bde63c 100644 --- a/jdk/src/share/classes/java/lang/instrument/Instrumentation.java +++ b/jdk/src/share/classes/java/lang/instrument/Instrumentation.java @@ -434,8 +434,9 @@ public interface Instrumentation { * avoiding these types of issues, is to use a unique package name for the * instrumentation classes. * - * <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine - * Specification</a> specifies that a subsequent attempt to resolve a symbolic + * <p> + * <cite>The Java™ Virtual Machine Specification</cite> + * specifies that a subsequent attempt to resolve a symbolic * reference that the Java virtual machine has previously unsuccessfully attempted * to resolve always fails with the same error that was thrown as a result of the * initial resolution attempt. Consequently, if the JAR file contains an entry @@ -487,8 +488,9 @@ public interface Instrumentation { * getName()} method on the <code>jarfile</code> and this is provided as the * parameter to the <code>appendToClassPathForInstrumentation</code> method. * - * <p> The <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine - * Specification</a> specifies that a subsequent attempt to resolve a symbolic + * <p> + * <cite>The Java™ Virtual Machine Specification</cite> + * specifies that a subsequent attempt to resolve a symbolic * reference that the Java virtual machine has previously unsuccessfully attempted * to resolve always fails with the same error that was thrown as a result of the * initial resolution attempt. Consequently, if the JAR file contains an entry diff --git a/jdk/src/share/classes/java/lang/invoke/package-info.java b/jdk/src/share/classes/java/lang/invoke/package-info.java index 0eac856d218..b6a1992dca8 100644 --- a/jdk/src/share/classes/java/lang/invoke/package-info.java +++ b/jdk/src/share/classes/java/lang/invoke/package-info.java @@ -194,8 +194,8 @@ * Method handle constants for subtags {@code REF_getStatic}, {@code REF_putStatic}, and {@code REF_invokeStatic} * may force class initialization on their first invocation, just like the corresponding bytecodes. * <p> - * The rules of section 5.4.3 of the - * <a href="http://java.sun.com/docs/books/jvms/second_edition/html/ConstantPool.doc.html#73492">JVM Specification</a> + * The rules of section 5.4.3 of + * <cite>The Java™ Virtual Machine Specification</cite> * apply to the resolution of {@code CONSTANT_MethodType}, {@code CONSTANT_MethodHandle}, * and {@code CONSTANT_InvokeDynamic} constants, * by the execution of {@code invokedynamic} and {@code ldc} instructions. diff --git a/jdk/src/share/classes/java/lang/reflect/Constructor.java b/jdk/src/share/classes/java/lang/reflect/Constructor.java index 2451c54e82d..8ff6d410b99 100644 --- a/jdk/src/share/classes/java/lang/reflect/Constructor.java +++ b/jdk/src/share/classes/java/lang/reflect/Constructor.java @@ -186,8 +186,8 @@ public final * the type variables declared by this generic declaration * @throws GenericSignatureFormatError if the generic * signature of this generic declaration does not conform to - * the format specified in the Java Virtual Machine Specification, - * 3rd edition + * the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @since 1.5 */ public TypeVariable<Constructor<T>>[] getTypeParameters() { @@ -229,7 +229,8 @@ public final * parameter types of the underlying method, in declaration order * @throws GenericSignatureFormatError * if the generic method signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if any of the parameter * types of the underlying method refers to a non-existent type * declaration @@ -273,7 +274,8 @@ public final * thrown by the underlying method * @throws GenericSignatureFormatError * if the generic method signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if the underlying method's * {@code throws} clause refers to a non-existent type declaration * @throws MalformedParameterizedTypeException if @@ -468,8 +470,8 @@ public final * * <p>If the constructor's declaring class is an inner class in a * non-static context, the first argument to the constructor needs - * to be the enclosing instance; see <i>The Java Language - * Specification</i>, section 15.9.3. + * to be the enclosing instance; see section 15.9.3 of + * <cite>The Java™ Language Specification</cite>. * * <p>If the required access and argument checks succeed and the * instantiation will proceed, the constructor's declaring class @@ -541,7 +543,8 @@ public final * constructor; returns {@code false} otherwise. * * @return true if and only if this constructor is a synthetic - * constructor as defined by the Java Language Specification. + * constructor as defined by + * <cite>The Java™ Language Specification</cite>. * @since 1.5 */ public boolean isSynthetic() { diff --git a/jdk/src/share/classes/java/lang/reflect/Field.java b/jdk/src/share/classes/java/lang/reflect/Field.java index f7647d6dc8f..1e6441aa94e 100644 --- a/jdk/src/share/classes/java/lang/reflect/Field.java +++ b/jdk/src/share/classes/java/lang/reflect/Field.java @@ -221,8 +221,8 @@ class Field extends AccessibleObject implements Member { * @return a {@code Type} object that represents the declared type for * the field represented by this {@code Field} object * @throws GenericSignatureFormatError if the generic field - * signature does not conform to the format specified in the Java - * Virtual Machine Specification, 3rd edition + * signature does not conform to the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if the generic type * signature of the underlying field refers to a non-existent * type declaration diff --git a/jdk/src/share/classes/java/lang/reflect/GenericDeclaration.java b/jdk/src/share/classes/java/lang/reflect/GenericDeclaration.java index b4ba3290664..fb319bfbea6 100644 --- a/jdk/src/share/classes/java/lang/reflect/GenericDeclaration.java +++ b/jdk/src/share/classes/java/lang/reflect/GenericDeclaration.java @@ -42,8 +42,8 @@ public interface GenericDeclaration { * the type variables declared by this generic declaration * @throws GenericSignatureFormatError if the generic * signature of this generic declaration does not conform to - * the format specified in the Java Virtual Machine Specification, - * 3rd edition + * the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> */ public TypeVariable<?>[] getTypeParameters(); } diff --git a/jdk/src/share/classes/java/lang/reflect/Method.java b/jdk/src/share/classes/java/lang/reflect/Method.java index 1de15570511..0a1f7a30b4b 100644 --- a/jdk/src/share/classes/java/lang/reflect/Method.java +++ b/jdk/src/share/classes/java/lang/reflect/Method.java @@ -194,8 +194,8 @@ public final * the type variables declared by this generic declaration * @throws GenericSignatureFormatError if the generic * signature of this generic declaration does not conform to - * the format specified in the Java Virtual Machine Specification, - * 3rd edition + * the format specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @since 1.5 */ public TypeVariable<Method>[] getTypeParameters() { @@ -230,7 +230,8 @@ public final * type of the underlying method * @throws GenericSignatureFormatError * if the generic method signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if the underlying method's * return type refers to a non-existent type declaration * @throws MalformedParameterizedTypeException if the @@ -275,7 +276,8 @@ public final * parameter types of the underlying method, in declaration order * @throws GenericSignatureFormatError * if the generic method signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if any of the parameter * types of the underlying method refers to a non-existent type * declaration @@ -319,7 +321,8 @@ public final * thrown by the underlying method * @throws GenericSignatureFormatError * if the generic method signature does not conform to the format - * specified in the Java Virtual Machine Specification, 3rd edition + * specified in + * <cite>The Java™ Virtual Machine Specification</cite> * @throws TypeNotPresentException if the underlying method's * {@code throws} clause refers to a non-existent type declaration * @throws MalformedParameterizedTypeException if diff --git a/jdk/src/share/classes/java/lang/reflect/Modifier.java b/jdk/src/share/classes/java/lang/reflect/Modifier.java index 6b9988984df..de8676ec975 100644 --- a/jdk/src/share/classes/java/lang/reflect/Modifier.java +++ b/jdk/src/share/classes/java/lang/reflect/Modifier.java @@ -34,14 +34,8 @@ import sun.reflect.ReflectionFactory; * constants to decode class and member access modifiers. The sets of * modifiers are represented as integers with distinct bit positions * representing different modifiers. The values for the constants - * representing the modifiers are taken from <a - * href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html"><i>The - * Java</i><sup><small>TM</small></sup> <i>Virtual Machine Specification, Second - * edition</i></a> tables - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75734">4.1</a>, - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88358">4.4</a>, - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#75568">4.5</a>, and - * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#88478">4.7</a>. + * representing the modifiers are taken from the tables in sections 4.1, 4.4, 4.5, and 4.7 of + * <cite>The Java™ Virtual Machine Specification</cite>. * * @see Class#getModifiers() * @see Member#getModifiers() @@ -214,14 +208,8 @@ class Modifier { * public final synchronized strictfp * </pre></blockquote> * The modifier names are returned in an order consistent with the - * suggested modifier orderings given in <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html"><em>The - * Java Language Specification, Second Edition</em></a> sections - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#21613">§8.1.1</a>, - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78091">§8.3.1</a>, - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#78188">§8.4.3</a>, - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#42018">§8.8.3</a>, and - * <a href="http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html#235947">§9.1.1</a>. + * suggested modifier orderings given in sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1 of + * <cite>The Java™ Language Specification</cite>. * The full modifier ordering used by this method is: * <blockquote> {@code * public protected private abstract static final transient @@ -269,9 +257,8 @@ class Modifier { } /* - * Access modifier flag constants from <em>The Java Virtual - * Machine Specification, Second Edition</em>, tables 4.1, 4.4, - * 4.5, and 4.7. + * Access modifier flag constants from tables 4.1, 4.4, 4.5, and 4.7 of + * <cite>The Java™ Virtual Machine Specification</cite> */ /** @@ -403,7 +390,7 @@ class Modifier { * @return an {@code int} value OR-ing together the source language * modifiers that can be applied to a class. * - * @jls3 8.1.1 Class Modifiers + * @jls 8.1.1 Class Modifiers * @since 1.7 */ public static int classModifiers() { @@ -416,7 +403,7 @@ class Modifier { * @return an {@code int} value OR-ing together the source language * modifiers that can be applied to an inteface. * - * @jls3 9.1.1 Interface Modifiers + * @jls 9.1.1 Interface Modifiers * @since 1.7 */ public static int interfaceModifiers() { @@ -429,7 +416,7 @@ class Modifier { * @return an {@code int} value OR-ing together the source language * modifiers that can be applied to a constructor. * - * @jls3 8.8.3 Constructor Modifiers + * @jls 8.8.3 Constructor Modifiers * @since 1.7 */ public static int constructorModifiers() { @@ -442,7 +429,7 @@ class Modifier { * @return an {@code int} value OR-ing together the source language * modifiers that can be applied to a method. * - * @jls3 8.4.3 Method Modifiers + * @jls 8.4.3 Method Modifiers * @since 1.7 */ public static int methodModifiers() { @@ -456,7 +443,7 @@ class Modifier { * @return an {@code int} value OR-ing together the source language * modifiers that can be applied to a field. * - * @jls3 8.3.1 Field Modifiers + * @jls 8.3.1 Field Modifiers * @since 1.7 */ public static int fieldModifiers() { diff --git a/jdk/src/share/classes/java/math/BigDecimal.java b/jdk/src/share/classes/java/math/BigDecimal.java index 0d695f3bda5..0549890f125 100644 --- a/jdk/src/share/classes/java/math/BigDecimal.java +++ b/jdk/src/share/classes/java/math/BigDecimal.java @@ -2905,12 +2905,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { /** * Converts this {@code BigDecimal} to a {@code BigInteger}. - * This conversion is analogous to a <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code long} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: any fractional part of this + * This conversion is analogous to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code long} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * any fractional part of this * {@code BigDecimal} will be discarded. Note that this * conversion can lose information about the precision of the * {@code BigDecimal} value. @@ -2942,13 +2941,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { } /** - * Converts this {@code BigDecimal} to a {@code long}. This - * conversion is analogous to a <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code short} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: any fractional part of this + * Converts this {@code BigDecimal} to a {@code long}. + * This conversion is analogous to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code short} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * any fractional part of this * {@code BigDecimal} will be discarded, and if the resulting * "{@code BigInteger}" is too big to fit in a * {@code long}, only the low-order 64 bits are returned. @@ -3011,13 +3009,12 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { } /** - * Converts this {@code BigDecimal} to an {@code int}. This - * conversion is analogous to a <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code short} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: any fractional part of this + * Converts this {@code BigDecimal} to an {@code int}. + * This conversion is analogous to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code short} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * any fractional part of this * {@code BigDecimal} will be discarded, and if the resulting * "{@code BigInteger}" is too big to fit in an * {@code int}, only the low-order 32 bits are returned. @@ -3095,12 +3092,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { /** * Converts this {@code BigDecimal} to a {@code float}. - * This conversion is similar to the <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code float} defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this {@code BigDecimal} has too great a + * This conversion is similar to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code float} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this {@code BigDecimal} has too great a * magnitude to represent as a {@code float}, it will be * converted to {@link Float#NEGATIVE_INFINITY} or {@link * Float#POSITIVE_INFINITY} as appropriate. Note that even when @@ -3119,12 +3115,11 @@ public class BigDecimal extends Number implements Comparable<BigDecimal> { /** * Converts this {@code BigDecimal} to a {@code double}. - * This conversion is similar to the <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code float} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this {@code BigDecimal} has too great a + * This conversion is similar to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code float} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this {@code BigDecimal} has too great a * magnitude represent as a {@code double}, it will be * converted to {@link Double#NEGATIVE_INFINITY} or {@link * Double#POSITIVE_INFINITY} as appropriate. Note that even when diff --git a/jdk/src/share/classes/java/math/BigInteger.java b/jdk/src/share/classes/java/math/BigInteger.java index 589b1b2ebc9..4fcce199de5 100644 --- a/jdk/src/share/classes/java/math/BigInteger.java +++ b/jdk/src/share/classes/java/math/BigInteger.java @@ -2719,12 +2719,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { /** * Converts this BigInteger to an {@code int}. This - * conversion is analogous to a <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code long} to - * {@code int} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this BigInteger is too big to fit in an + * conversion is analogous to a + * <i>narrowing primitive conversion</i> from {@code long} to + * {@code int} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this BigInteger is too big to fit in an * {@code int}, only the low-order 32 bits are returned. * Note that this conversion can lose information about the * overall magnitude of the BigInteger value as well as return a @@ -2740,12 +2739,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { /** * Converts this BigInteger to a {@code long}. This - * conversion is analogous to a <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code long} to - * {@code int} as defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this BigInteger is too big to fit in a + * conversion is analogous to a + * <i>narrowing primitive conversion</i> from {@code long} to + * {@code int} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this BigInteger is too big to fit in a * {@code long}, only the low-order 64 bits are returned. * Note that this conversion can lose information about the * overall magnitude of the BigInteger value as well as return a @@ -2763,12 +2761,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { /** * Converts this BigInteger to a {@code float}. This - * conversion is similar to the <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code float} defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this BigInteger has too great a magnitude + * conversion is similar to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code float} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this BigInteger has too great a magnitude * to represent as a {@code float}, it will be converted to * {@link Float#NEGATIVE_INFINITY} or {@link * Float#POSITIVE_INFINITY} as appropriate. Note that even when @@ -2784,12 +2781,11 @@ public class BigInteger extends Number implements Comparable<BigInteger> { /** * Converts this BigInteger to a {@code double}. This - * conversion is similar to the <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#25363"><i>narrowing - * primitive conversion</i></a> from {@code double} to - * {@code float} defined in the <a - * href="http://java.sun.com/docs/books/jls/html/">Java Language - * Specification</a>: if this BigInteger has too great a magnitude + * conversion is similar to the + * <i>narrowing primitive conversion</i> from {@code double} to + * {@code float} as defined in section 5.1.3 of + * <cite>The Java™ Language Specification</cite>: + * if this BigInteger has too great a magnitude * to represent as a {@code double}, it will be converted to * {@link Double#NEGATIVE_INFINITY} or {@link * Double#POSITIVE_INFINITY} as appropriate. Note that even when diff --git a/jdk/src/share/classes/java/security/SecureClassLoader.java b/jdk/src/share/classes/java/security/SecureClassLoader.java index 8230a294f28..ffcd1a7160f 100644 --- a/jdk/src/share/classes/java/security/SecureClassLoader.java +++ b/jdk/src/share/classes/java/security/SecureClassLoader.java @@ -118,10 +118,8 @@ public class SecureClassLoader extends ClassLoader { * and without a trailing ".class" suffix. * @param b the bytes that make up the class data. The bytes in * positions <code>off</code> through <code>off+len-1</code> - * should have the format of a valid class file as defined - * by the - * <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. + * should have the format of a valid class file as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. * @param off the start offset in <code>b</code> of the class data * @param len the length of the class data * @param cs the associated CodeSource, or <code>null</code> if none @@ -157,9 +155,8 @@ public class SecureClassLoader extends ClassLoader { * and without a trailing ".class" suffix. * @param b the bytes that make up the class data. The bytes from positions * <tt>b.position()</tt> through <tt>b.position() + b.limit() -1</tt> - * should have the format of a valid class file as defined by the - * <a href="http://java.sun.com/docs/books/vmspec/">Java Virtual - * Machine Specification</a>. + * should have the format of a valid class file as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. * @param cs the associated CodeSource, or <code>null</code> if none * @return the <code>Class</code> object created from the data, * and optional CodeSource. diff --git a/jdk/src/share/classes/java/sql/DriverManager.java b/jdk/src/share/classes/java/sql/DriverManager.java index ce6c6bf4823..4864eb2cc93 100644 --- a/jdk/src/share/classes/java/sql/DriverManager.java +++ b/jdk/src/share/classes/java/sql/DriverManager.java @@ -80,7 +80,7 @@ public class DriverManager { // List of registered JDBC drivers - private final static CopyOnWriteArrayList<Driver> registeredDrivers = new CopyOnWriteArrayList<Driver>(); + private final static CopyOnWriteArrayList<DriverInfo> registeredDrivers = new CopyOnWriteArrayList<DriverInfo>(); private static volatile int loginTimeout = 0; private static volatile java.io.PrintWriter logWriter = null; private static volatile java.io.PrintStream logStream = null; @@ -265,22 +265,22 @@ public class DriverManager { // Walk through the loaded registeredDrivers attempting to locate someone // who understands the given URL. - for (Driver aDriver : registeredDrivers) { + for (DriverInfo aDriver : registeredDrivers) { // If the caller does not have permission to load the driver then // skip it. - if(isDriverAllowed(aDriver, callerCL)) { + if(isDriverAllowed(aDriver.driver, callerCL)) { try { - if(aDriver.acceptsURL(url)) { + if(aDriver.driver.acceptsURL(url)) { // Success! - println("getDriver returning " + aDriver.getClass().getName()); - return (aDriver); + println("getDriver returning " + aDriver.driver.getClass().getName()); + return (aDriver.driver); } } catch(SQLException sqe) { // Drop through and try the next driver. } } else { - println(" skipping: " + aDriver.getClass().getName()); + println(" skipping: " + aDriver.driver.getClass().getName()); } } @@ -305,7 +305,7 @@ public class DriverManager { /* Register the driver if it has not already been added to our list */ if(driver != null) { - registeredDrivers.addIfAbsent(driver); + registeredDrivers.addIfAbsent(new DriverInfo(driver)); } else { // This is for compatibility with the original DriverManager throw new NullPointerException(); @@ -333,9 +333,10 @@ public class DriverManager { ClassLoader callerCL = DriverManager.getCallerClassLoader(); println("DriverManager.deregisterDriver: " + driver); - if(registeredDrivers.contains(driver)) { + DriverInfo aDriver = new DriverInfo(driver); + if(registeredDrivers.contains(aDriver)) { if (isDriverAllowed(driver, callerCL)) { - registeredDrivers.remove(driver); + registeredDrivers.remove(aDriver); } else { // If the caller does not have permission to load the driver then // throw a SecurityException. @@ -363,11 +364,11 @@ public class DriverManager { ClassLoader callerCL = DriverManager.getCallerClassLoader(); // Walk through the loaded registeredDrivers. - for(Driver aDriver : registeredDrivers) { + for(DriverInfo aDriver : registeredDrivers) { // If the caller does not have permission to load the driver then // skip it. - if(isDriverAllowed(aDriver, callerCL)) { - result.addElement(aDriver); + if(isDriverAllowed(aDriver.driver, callerCL)) { + result.addElement(aDriver.driver); } else { println(" skipping: " + aDriver.getClass().getName()); } @@ -482,8 +483,8 @@ public class DriverManager { private static void loadInitialDrivers() { String drivers; try { - drivers = (String) AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { + drivers = AccessController.doPrivileged(new PrivilegedAction<String>() { + public String run() { return System.getProperty("jdbc.drivers"); } }); @@ -495,8 +496,8 @@ public class DriverManager { // exposed as a java.sql.Driver.class service. // ServiceLoader.load() replaces the sun.misc.Providers() - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { + AccessController.doPrivileged(new PrivilegedAction<Void>() { + public Void run() { ServiceLoader<Driver> loadedDrivers = ServiceLoader.load(Driver.class); Iterator driversIterator = loadedDrivers.iterator(); @@ -569,16 +570,16 @@ public class DriverManager { // Remember the first exception that gets raised so we can reraise it. SQLException reason = null; - for(Driver aDriver : registeredDrivers) { + for(DriverInfo aDriver : registeredDrivers) { // If the caller does not have permission to load the driver then // skip it. - if(isDriverAllowed(aDriver, callerCL)) { + if(isDriverAllowed(aDriver.driver, callerCL)) { try { - println(" trying " + aDriver.getClass().getName()); - Connection con = aDriver.connect(url, info); + println(" trying " + aDriver.driver.getClass().getName()); + Connection con = aDriver.driver.connect(url, info); if (con != null) { // Success! - println("getConnection returning " + aDriver.getClass().getName()); + println("getConnection returning " + aDriver.driver.getClass().getName()); return (con); } } catch (SQLException ex) { @@ -607,3 +608,29 @@ public class DriverManager { private static native ClassLoader getCallerClassLoader(); } + +/* + * Wrapper class for registered Drivers in order to not expose Driver.equals() + * to avoid the capture of the Driver it being compared to as it might not + * normally have access. + */ +class DriverInfo { + + final Driver driver; + DriverInfo(Driver driver) { + this.driver = driver; + } + + public boolean equals(Object other) { + return (other instanceof DriverInfo) + && this.driver == ((DriverInfo) other).driver; + } + + public int hashCode() { + return driver.hashCode(); + } + + public String toString() { + return ("driver[className=" + driver + "]"); + } +} diff --git a/jdk/src/share/classes/java/sql/ResultSet.java b/jdk/src/share/classes/java/sql/ResultSet.java index a8aac4ffeea..fc4dbf6b476 100644 --- a/jdk/src/share/classes/java/sql/ResultSet.java +++ b/jdk/src/share/classes/java/sql/ResultSet.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 @@ -137,7 +137,7 @@ import java.io.InputStream; * to retrieve the next result from a sequence of multiple results. * * <P>The number, types and properties of a <code>ResultSet</code> - * object's columns are provided by the <code>ResulSetMetaData</code> + * object's columns are provided by the <code>ResultSetMetaData</code> * object returned by the <code>ResultSet.getMetaData</code> method. * * @see Statement#executeQuery @@ -422,7 +422,7 @@ public interface ResultSet extends Wrapper, AutoCloseable { * of this <code>ResultSet</code> object as * a stream of ASCII characters. The value can then be read in chunks from the * stream. This method is particularly - * suitable for retrieving large <char>LONGVARCHAR</char> values. + * suitable for retrieving large <code>LONGVARCHAR</code> values. * The JDBC driver will * do any necessary conversion from the database format into ASCII. * diff --git a/jdk/src/share/classes/java/sql/SQLPermission.java b/jdk/src/share/classes/java/sql/SQLPermission.java index 9f45718853d..3511b6da42b 100644 --- a/jdk/src/share/classes/java/sql/SQLPermission.java +++ b/jdk/src/share/classes/java/sql/SQLPermission.java @@ -116,11 +116,11 @@ public final class SQLPermission extends BasicPermission { /** * Creates a new <code>SQLPermission</code> object with the specified name. - * The name is the symbolic name of the <code>SQLPermission</code>; currently, - * the only name allowed is "setLog". + * The name is the symbolic name of the <code>SQLPermission</code>. * * @param name the name of this <code>SQLPermission</code> object, which must - * be <code>setLog</code> + * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory}, + * or {@code setNetworkTimeout} * @throws NullPointerException if <code>name</code> is <code>null</code>. * @throws IllegalArgumentException if <code>name</code> is empty. @@ -134,10 +134,11 @@ public final class SQLPermission extends BasicPermission { * Creates a new <code>SQLPermission</code> object with the specified name. * The name is the symbolic name of the <code>SQLPermission</code>; the * actions <code>String</code> is currently unused and should be - * <code>null</code>. + * <code>null</code>. * * @param name the name of this <code>SQLPermission</code> object, which must - * be <code>setLog</code> + * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory}, + * or {@code setNetworkTimeout} * @param actions should be <code>null</code> * @throws NullPointerException if <code>name</code> is <code>null</code>. * @throws IllegalArgumentException if <code>name</code> is empty. diff --git a/jdk/src/share/classes/java/sql/Timestamp.java b/jdk/src/share/classes/java/sql/Timestamp.java index 848606bcfbc..14f648b2678 100644 --- a/jdk/src/share/classes/java/sql/Timestamp.java +++ b/jdk/src/share/classes/java/sql/Timestamp.java @@ -54,7 +54,7 @@ import java.util.StringTokenizer; * As a result, the <code>Timestamp.equals(Object)</code> * method is not symmetric with respect to the * <code>java.util.Date.equals(Object)</code> - * method. Also, the <code>hashcode</code> method uses the underlying + * method. Also, the <code>hashCode</code> method uses the underlying * <code>java.util.Date</code> * implementation and therefore does not include nanos in its computation. * <P> @@ -515,6 +515,18 @@ public class Timestamp extends java.util.Date { } } + /** + * {@inheritDoc} + * + * The {@code hashCode} method uses the underlying {@code java.util.Date} + * implementation and therefore does not include nanos in its computation. + * + */ + @Override + public int hashCode() { + return super.hashCode(); + } + static final long serialVersionUID = 2745179027874758501L; } diff --git a/jdk/src/share/classes/java/util/AbstractQueue.java b/jdk/src/share/classes/java/util/AbstractQueue.java index c2c3899bb96..182698dc5a2 100644 --- a/jdk/src/share/classes/java/util/AbstractQueue.java +++ b/jdk/src/share/classes/java/util/AbstractQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; diff --git a/jdk/src/share/classes/java/util/ArrayDeque.java b/jdk/src/share/classes/java/util/ArrayDeque.java index 8592fcb1c77..eb70aaa59cc 100644 --- a/jdk/src/share/classes/java/util/ArrayDeque.java +++ b/jdk/src/share/classes/java/util/ArrayDeque.java @@ -29,7 +29,7 @@ * file: * * Written by Josh Bloch of Google Inc. and released to the public domain, - * as explained at http://creativecommons.org/licenses/publicdomain. + * as explained at http://creativecommons.org/publicdomain/zero/1.0/. */ package java.util; diff --git a/jdk/src/share/classes/java/util/Deque.java b/jdk/src/share/classes/java/util/Deque.java index 4c69609cbd0..b5516211be6 100644 --- a/jdk/src/share/classes/java/util/Deque.java +++ b/jdk/src/share/classes/java/util/Deque.java @@ -30,7 +30,7 @@ * * Written by Doug Lea and Josh Bloch with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained - * at http://creativecommons.org/licenses/publicdomain + * at http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; diff --git a/jdk/src/share/classes/java/util/EnumMap.java b/jdk/src/share/classes/java/util/EnumMap.java index f829b05d4aa..6d1202c70df 100644 --- a/jdk/src/share/classes/java/util/EnumMap.java +++ b/jdk/src/share/classes/java/util/EnumMap.java @@ -106,7 +106,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> /** * Distinguished non-null value for representing null values. */ - private static final Object NULL = new Object(); + private static final Object NULL = new Integer(0); private Object maskNull(Object value) { return (value == null ? NULL : value); @@ -116,7 +116,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> return (V) (value == NULL ? null : value); } - private static Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; + private static final Enum[] ZERO_LENGTH_ENUM_ARRAY = new Enum[0]; /** * Creates an empty enum map with the specified key type. @@ -464,6 +464,7 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> public Iterator<Map.Entry<K,V>> iterator() { return new EntryIterator(); } + public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; @@ -552,70 +553,82 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> } } - /** - * Since we don't use Entry objects, we use the Iterator itself as entry. - */ - private class EntryIterator extends EnumMapIterator<Map.Entry<K,V>> - implements Map.Entry<K,V> - { + private class EntryIterator extends EnumMapIterator<Map.Entry<K,V>> { + private Entry lastReturnedEntry = null; + public Map.Entry<K,V> next() { if (!hasNext()) throw new NoSuchElementException(); - lastReturnedIndex = index++; - return this; + lastReturnedEntry = new Entry(index++); + return lastReturnedEntry; } - public K getKey() { - checkLastReturnedIndexForEntryUse(); - return keyUniverse[lastReturnedIndex]; + public void remove() { + lastReturnedIndex = + ((null == lastReturnedEntry) ? -1 : lastReturnedEntry.index); + super.remove(); + lastReturnedEntry.index = lastReturnedIndex; + lastReturnedEntry = null; } - public V getValue() { - checkLastReturnedIndexForEntryUse(); - return unmaskNull(vals[lastReturnedIndex]); - } + private class Entry implements Map.Entry<K,V> { + private int index; - public V setValue(V value) { - checkLastReturnedIndexForEntryUse(); - V oldValue = unmaskNull(vals[lastReturnedIndex]); - vals[lastReturnedIndex] = maskNull(value); - return oldValue; - } + private Entry(int index) { + this.index = index; + } - public boolean equals(Object o) { - if (lastReturnedIndex < 0) - return o == this; + public K getKey() { + checkIndexForEntryUse(); + return keyUniverse[index]; + } - if (!(o instanceof Map.Entry)) - return false; - Map.Entry e = (Map.Entry)o; - V ourValue = unmaskNull(vals[lastReturnedIndex]); - Object hisValue = e.getValue(); - return e.getKey() == keyUniverse[lastReturnedIndex] && - (ourValue == hisValue || - (ourValue != null && ourValue.equals(hisValue))); - } + public V getValue() { + checkIndexForEntryUse(); + return unmaskNull(vals[index]); + } - public int hashCode() { - if (lastReturnedIndex < 0) - return super.hashCode(); + public V setValue(V value) { + checkIndexForEntryUse(); + V oldValue = unmaskNull(vals[index]); + vals[index] = maskNull(value); + return oldValue; + } - Object value = vals[lastReturnedIndex]; - return keyUniverse[lastReturnedIndex].hashCode() - ^ (value == NULL ? 0 : value.hashCode()); - } + public boolean equals(Object o) { + if (index < 0) + return o == this; - public String toString() { - if (lastReturnedIndex < 0) - return super.toString(); + if (!(o instanceof Map.Entry)) + return false; - return keyUniverse[lastReturnedIndex] + "=" - + unmaskNull(vals[lastReturnedIndex]); - } + Map.Entry e = (Map.Entry)o; + V ourValue = unmaskNull(vals[index]); + Object hisValue = e.getValue(); + return (e.getKey() == keyUniverse[index] && + (ourValue == hisValue || + (ourValue != null && ourValue.equals(hisValue)))); + } - private void checkLastReturnedIndexForEntryUse() { - if (lastReturnedIndex < 0) - throw new IllegalStateException("Entry was removed"); + public int hashCode() { + if (index < 0) + return super.hashCode(); + + return entryHashCode(index); + } + + public String toString() { + if (index < 0) + return super.toString(); + + return keyUniverse[index] + "=" + + unmaskNull(vals[index]); + } + + private void checkIndexForEntryUse() { + if (index < 0) + throw new IllegalStateException("Entry was removed"); + } } } @@ -631,10 +644,35 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> * @return <tt>true</tt> if the specified object is equal to this map */ public boolean equals(Object o) { - if (!(o instanceof EnumMap)) - return super.equals(o); + if (this == o) + return true; + if (o instanceof EnumMap) + return equals((EnumMap)o); + if (!(o instanceof Map)) + return false; - EnumMap em = (EnumMap)o; + Map<K,V> m = (Map<K,V>)o; + if (size != m.size()) + return false; + + for (int i = 0; i < keyUniverse.length; i++) { + if (null != vals[i]) { + K key = keyUniverse[i]; + V value = unmaskNull(vals[i]); + if (null == value) { + if (!((null == m.get(key)) && m.containsKey(key))) + return false; + } else { + if (!value.equals(m.get(key))) + return false; + } + } + } + + return true; + } + + private boolean equals(EnumMap em) { if (em.keyType != keyType) return size == 0 && em.size == 0; @@ -649,6 +687,26 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> return true; } + /** + * Returns the hash code value for this map. The hash code of a map is + * defined to be the sum of the hash codes of each entry in the map. + */ + public int hashCode() { + int h = 0; + + for (int i = 0; i < keyUniverse.length; i++) { + if (null != vals[i]) { + h += entryHashCode(i); + } + } + + return h; + } + + private int entryHashCode(int index) { + return (keyUniverse[index].hashCode() ^ vals[index].hashCode()); + } + /** * Returns a shallow copy of this enum map. (The values themselves * are not cloned. @@ -705,9 +763,13 @@ public class EnumMap<K extends Enum<K>, V> extends AbstractMap<K, V> s.writeInt(size); // Write out keys and values (alternating) - for (Map.Entry<K,V> e : entrySet()) { - s.writeObject(e.getKey()); - s.writeObject(e.getValue()); + int entriesToBeWritten = size; + for (int i = 0; entriesToBeWritten > 0; i++) { + if (null != vals[i]) { + s.writeObject(keyUniverse[i]); + s.writeObject(unmaskNull(vals[i])); + entriesToBeWritten--; + } } } diff --git a/jdk/src/share/classes/java/util/Formatter.java b/jdk/src/share/classes/java/util/Formatter.java index 6dcf8788052..5ca126ab31d 100644 --- a/jdk/src/share/classes/java/util/Formatter.java +++ b/jdk/src/share/classes/java/util/Formatter.java @@ -1818,9 +1818,9 @@ import sun.misc.FormattedFloatingDecimal; * </pre></blockquote> * * <p> The maximum number of arguments is limited by the maximum dimension of a - * Java array as defined by the <a - * href="http://java.sun.com/docs/books/vmspec/">Java Virtual Machine - * Specification</a>. If the argument index is does not correspond to an + * Java array as defined by + * <cite>The Java™ Virtual Machine Specification</cite>. + * If the argument index is does not correspond to an * available argument, then a {@link MissingFormatArgumentException} is thrown. * * <p> If there are more arguments than format specifiers, the extra arguments @@ -2403,8 +2403,7 @@ public final class Formatter implements Closeable, Flushable { * string. If there are more arguments than format specifiers, the * extra arguments are ignored. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a>. + * <cite>The Java™ Virtual Machine Specification</cite>. * * @throws IllegalFormatException * If a format string contains an illegal syntax, a format @@ -2443,8 +2442,7 @@ public final class Formatter implements Closeable, Flushable { * string. If there are more arguments than format specifiers, the * extra arguments are ignored. The maximum number of arguments is * limited by the maximum dimension of a Java array as defined by - * the <a href="http://java.sun.com/docs/books/vmspec/">Java - * Virtual Machine Specification</a> + * <cite>The Java™ Virtual Machine Specification</cite>. * * @throws IllegalFormatException * If a format string contains an illegal syntax, a format diff --git a/jdk/src/share/classes/java/util/IdentityHashMap.java b/jdk/src/share/classes/java/util/IdentityHashMap.java index 303aaff1ac1..95ff9f0a7c8 100644 --- a/jdk/src/share/classes/java/util/IdentityHashMap.java +++ b/jdk/src/share/classes/java/util/IdentityHashMap.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 @@ -829,71 +829,82 @@ public class IdentityHashMap<K,V> } } - /** - * Since we don't use Entry objects, we use the Iterator - * itself as an entry. - */ private class EntryIterator extends IdentityHashMapIterator<Map.Entry<K,V>> - implements Map.Entry<K,V> { + private Entry lastReturnedEntry = null; + public Map.Entry<K,V> next() { - nextIndex(); - return this; + lastReturnedEntry = new Entry(nextIndex()); + return lastReturnedEntry; } - public K getKey() { - // Provide a better exception than out of bounds index - if (lastReturnedIndex < 0) - throw new IllegalStateException("Entry was removed"); - - return (K) unmaskNull(traversalTable[lastReturnedIndex]); + public void remove() { + lastReturnedIndex = + ((null == lastReturnedEntry) ? -1 : lastReturnedEntry.index); + super.remove(); + lastReturnedEntry.index = lastReturnedIndex; + lastReturnedEntry = null; } - public V getValue() { - // Provide a better exception than out of bounds index - if (lastReturnedIndex < 0) - throw new IllegalStateException("Entry was removed"); + private class Entry implements Map.Entry<K,V> { + private int index; - return (V) traversalTable[lastReturnedIndex+1]; - } + private Entry(int index) { + this.index = index; + } - public V setValue(V value) { - // It would be mean-spirited to proceed here if remove() called - if (lastReturnedIndex < 0) - throw new IllegalStateException("Entry was removed"); - V oldValue = (V) traversalTable[lastReturnedIndex+1]; - traversalTable[lastReturnedIndex+1] = value; - // if shadowing, force into main table - if (traversalTable != IdentityHashMap.this.table) - put((K) traversalTable[lastReturnedIndex], value); - return oldValue; - } + public K getKey() { + checkIndexForEntryUse(); + return (K) unmaskNull(traversalTable[index]); + } - public boolean equals(Object o) { - if (lastReturnedIndex < 0) - return super.equals(o); + public V getValue() { + checkIndexForEntryUse(); + return (V) traversalTable[index+1]; + } - if (!(o instanceof Map.Entry)) - return false; - Map.Entry e = (Map.Entry)o; - return e.getKey() == getKey() && - e.getValue() == getValue(); - } + public V setValue(V value) { + checkIndexForEntryUse(); + V oldValue = (V) traversalTable[index+1]; + traversalTable[index+1] = value; + // if shadowing, force into main table + if (traversalTable != IdentityHashMap.this.table) + put((K) traversalTable[index], value); + return oldValue; + } - public int hashCode() { - if (lastReturnedIndex < 0) - return super.hashCode(); + public boolean equals(Object o) { + if (index < 0) + return super.equals(o); - return System.identityHashCode(getKey()) ^ - System.identityHashCode(getValue()); - } + if (!(o instanceof Map.Entry)) + return false; + Map.Entry e = (Map.Entry)o; + return (e.getKey() == unmaskNull(traversalTable[index]) && + e.getValue() == traversalTable[index+1]); + } - public String toString() { - if (lastReturnedIndex < 0) - return super.toString(); + public int hashCode() { + if (lastReturnedIndex < 0) + return super.hashCode(); - return getKey() + "=" + getValue(); + return (System.identityHashCode(unmaskNull(traversalTable[index])) ^ + System.identityHashCode(traversalTable[index+1])); + } + + public String toString() { + if (index < 0) + return super.toString(); + + return (unmaskNull(traversalTable[index]) + "=" + + traversalTable[index+1]); + } + + private void checkIndexForEntryUse() { + if (index < 0) + throw new IllegalStateException("Entry was removed"); + } } } diff --git a/jdk/src/share/classes/java/util/NavigableMap.java b/jdk/src/share/classes/java/util/NavigableMap.java index b9275bd9d1f..2d18d4a7215 100644 --- a/jdk/src/share/classes/java/util/NavigableMap.java +++ b/jdk/src/share/classes/java/util/NavigableMap.java @@ -30,7 +30,7 @@ * * Written by Doug Lea and Josh Bloch with assistance from members of JCP * JSR-166 Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; diff --git a/jdk/src/share/classes/java/util/NavigableSet.java b/jdk/src/share/classes/java/util/NavigableSet.java index 03e9614f0a3..26fcd3a7c35 100644 --- a/jdk/src/share/classes/java/util/NavigableSet.java +++ b/jdk/src/share/classes/java/util/NavigableSet.java @@ -30,7 +30,7 @@ * * Written by Doug Lea and Josh Bloch with assistance from members of JCP * JSR-166 Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; diff --git a/jdk/src/share/classes/java/util/Properties.java b/jdk/src/share/classes/java/util/Properties.java index 47c9526f61a..d27e60871f3 100644 --- a/jdk/src/share/classes/java/util/Properties.java +++ b/jdk/src/share/classes/java/util/Properties.java @@ -68,8 +68,9 @@ import java.io.BufferedWriter; * methods work the same way as the load(Reader)/store(Writer, String) pair, except * the input/output stream is encoded in ISO 8859-1 character encoding. * Characters that cannot be directly represented in this encoding can be written using - * <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.3">Unicode escapes</a> - * ; only a single 'u' character is allowed in an escape + * Unicode escapes as defined in section 3.3 of + * <cite>The Java™ Language Specification</cite>; + * only a single 'u' character is allowed in an escape * sequence. The native2ascii tool can be used to convert property files to and * from other character encodings. * @@ -272,11 +273,8 @@ class Properties extends Hashtable<Object,Object> { * <a name="unicodeescapes"></a> * Characters in keys and elements can be represented in escape * sequences similar to those used for character and string literals - * (see <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.3">§3.3</a> - * and <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.6">§3.10.6</a> - * of the <i>Java Language Specification</i>). + * (see sections 3.3 and 3.10.6 of + * <cite>The Java™ Language Specification</cite>). * * The differences from the character escape sequences and Unicode * escapes used for characters and strings are: @@ -326,8 +324,9 @@ class Properties extends Hashtable<Object,Object> { * {@link #load(java.io.Reader) load(Reader)} and is assumed to use * the ISO 8859-1 character encoding; that is each byte is one Latin1 * character. Characters not in Latin1, and certain special characters, - * are represented in keys and elements using - * <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.3">Unicode escapes</a>. + * are represented in keys and elements using Unicode escapes as defined in + * section 3.3 of + * <cite>The Java™ Language Specification</cite>. * <p> * The specified stream remains open after this method returns. * diff --git a/jdk/src/share/classes/java/util/PropertyResourceBundle.java b/jdk/src/share/classes/java/util/PropertyResourceBundle.java index 238546bacf2..c7fe3b460a1 100644 --- a/jdk/src/share/classes/java/util/PropertyResourceBundle.java +++ b/jdk/src/share/classes/java/util/PropertyResourceBundle.java @@ -104,8 +104,9 @@ import sun.util.ResourceBundleEnumeration; * from an InputStream or a Reader, which represents a property file. * Constructing a PropertyResourceBundle instance from an InputStream requires * that the input stream be encoded in ISO-8859-1. In that case, characters - * that cannot be represented in ISO-8859-1 encoding must be represented by - * <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.3">Unicode Escapes</a>, + * that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes + * as defined in section 3.3 of + * <cite>The Java™ Language Specification</cite> * whereas the other constructor which takes a Reader does not have that limitation. * * @see ResourceBundle diff --git a/jdk/src/share/classes/java/util/Queue.java b/jdk/src/share/classes/java/util/Queue.java index 64d384f9bcb..124cc449426 100644 --- a/jdk/src/share/classes/java/util/Queue.java +++ b/jdk/src/share/classes/java/util/Queue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util; diff --git a/jdk/src/share/classes/java/util/concurrent/AbstractExecutorService.java b/jdk/src/share/classes/java/util/concurrent/AbstractExecutorService.java index 0322289e52e..bac93ab3b90 100644 --- a/jdk/src/share/classes/java/util/concurrent/AbstractExecutorService.java +++ b/jdk/src/share/classes/java/util/concurrent/AbstractExecutorService.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ArrayBlockingQueue.java b/jdk/src/share/classes/java/util/concurrent/ArrayBlockingQueue.java index 4f4b9d96af6..32fd50470d6 100644 --- a/jdk/src/share/classes/java/util/concurrent/ArrayBlockingQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/ArrayBlockingQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java b/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java index bfc43144ba6..3134eae8ec5 100644 --- a/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java +++ b/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java b/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java index 51e5ee3278a..9886e6da3c1 100644 --- a/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/BrokenBarrierException.java b/jdk/src/share/classes/java/util/concurrent/BrokenBarrierException.java index c01fd7249dc..9d2a9f4b4f6 100644 --- a/jdk/src/share/classes/java/util/concurrent/BrokenBarrierException.java +++ b/jdk/src/share/classes/java/util/concurrent/BrokenBarrierException.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Callable.java b/jdk/src/share/classes/java/util/concurrent/Callable.java index 75569a4a9f5..7ef4948a1fd 100644 --- a/jdk/src/share/classes/java/util/concurrent/Callable.java +++ b/jdk/src/share/classes/java/util/concurrent/Callable.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/CancellationException.java b/jdk/src/share/classes/java/util/concurrent/CancellationException.java index e03cc789175..ae6b586ba00 100644 --- a/jdk/src/share/classes/java/util/concurrent/CancellationException.java +++ b/jdk/src/share/classes/java/util/concurrent/CancellationException.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/CompletionService.java b/jdk/src/share/classes/java/util/concurrent/CompletionService.java index 4917f6559d4..5a807c5effe 100644 --- a/jdk/src/share/classes/java/util/concurrent/CompletionService.java +++ b/jdk/src/share/classes/java/util/concurrent/CompletionService.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java index 8074669654c..c66a82e6305 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; @@ -105,7 +105,25 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> /* * The basic strategy is to subdivide the table among Segments, - * each of which itself is a concurrently readable hash table. + * each of which itself is a concurrently readable hash table. To + * reduce footprint, all but one segments are constructed only + * when first needed (see ensureSegment). To maintain visibility + * in the presence of lazy construction, accesses to segments as + * well as elements of segment's table must use volatile access, + * which is done via Unsafe within methods segmentAt etc + * below. These provide the functionality of AtomicReferenceArrays + * but reduce the levels of indirection. Additionally, + * volatile-writes of table elements and entry "next" fields + * within locked operations use the cheaper "lazySet" forms of + * writes (via putOrderedObject) because these writes are always + * followed by lock releases that maintain sequential consistency + * of table updates. + * + * Historical note: The previous version of this class relied + * heavily on "final" fields, which avoided some volatile reads at + * the expense of a large initial footprint. Some remnants of + * that design (including forced construction of segment 0) exist + * to ensure serialization compatibility. */ /* ---------------- Constants -------------- */ @@ -136,9 +154,16 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ static final int MAXIMUM_CAPACITY = 1 << 30; + /** + * The minimum capacity for per-segment tables. Must be a power + * of two, at least two to avoid immediate resizing on next use + * after lazy construction. + */ + static final int MIN_SEGMENT_TABLE_CAPACITY = 2; + /** * The maximum number of segments to allow; used to bound - * constructor arguments. + * constructor arguments. Must be power of two less than 1 << 24. */ static final int MAX_SEGMENTS = 1 << 16; // slightly conservative @@ -164,7 +189,7 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> final int segmentShift; /** - * The segments, each of which is a specialized hash table + * The segments, each of which is a specialized hash table. */ final Segment<K,V>[] segments; @@ -172,7 +197,65 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> transient Set<Map.Entry<K,V>> entrySet; transient Collection<V> values; - /* ---------------- Small Utilities -------------- */ + /** + * ConcurrentHashMap list entry. Note that this is never exported + * out as a user-visible Map.Entry. + */ + static final class HashEntry<K,V> { + final int hash; + final K key; + volatile V value; + volatile HashEntry<K,V> next; + + HashEntry(int hash, K key, V value, HashEntry<K,V> next) { + this.hash = hash; + this.key = key; + this.value = value; + this.next = next; + } + + /** + * Sets next field with volatile write semantics. (See above + * about use of putOrderedObject.) + */ + final void setNext(HashEntry<K,V> n) { + UNSAFE.putOrderedObject(this, nextOffset, n); + } + + // Unsafe mechanics + static final sun.misc.Unsafe UNSAFE; + static final long nextOffset; + static { + try { + UNSAFE = sun.misc.Unsafe.getUnsafe(); + Class k = HashEntry.class; + nextOffset = UNSAFE.objectFieldOffset + (k.getDeclaredField("next")); + } catch (Exception e) { + throw new Error(e); + } + } + } + + /** + * Gets the ith element of given table (if nonnull) with volatile + * read semantics. + */ + @SuppressWarnings("unchecked") + static final <K,V> HashEntry<K,V> entryAt(HashEntry<K,V>[] tab, int i) { + return (tab == null) ? null : + (HashEntry<K,V>) UNSAFE.getObjectVolatile + (tab, ((long)i << TSHIFT) + TBASE); + } + + /** + * Sets the ith element of given table, with volatile write + * semantics. (See above about use of putOrderedObject.) + */ + static final <K,V> void setEntryAt(HashEntry<K,V>[] tab, int i, + HashEntry<K,V> e) { + UNSAFE.putOrderedObject(tab, ((long)i << TSHIFT) + TBASE, e); + } /** * Applies a supplemental hash function to a given hashCode, which @@ -192,48 +275,6 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> return h ^ (h >>> 16); } - /** - * Returns the segment that should be used for key with given hash - * @param hash the hash code for the key - * @return the segment - */ - final Segment<K,V> segmentFor(int hash) { - return segments[(hash >>> segmentShift) & segmentMask]; - } - - /* ---------------- Inner Classes -------------- */ - - /** - * ConcurrentHashMap list entry. Note that this is never exported - * out as a user-visible Map.Entry. - * - * Because the value field is volatile, not final, it is legal wrt - * the Java Memory Model for an unsynchronized reader to see null - * instead of initial value when read via a data race. Although a - * reordering leading to this is not likely to ever actually - * occur, the Segment.readValueUnderLock method is used as a - * backup in case a null (pre-initialized) value is ever seen in - * an unsynchronized access method. - */ - static final class HashEntry<K,V> { - final K key; - final int hash; - volatile V value; - final HashEntry<K,V> next; - - HashEntry(K key, int hash, HashEntry<K,V> next, V value) { - this.key = key; - this.hash = hash; - this.next = next; - this.value = value; - } - - @SuppressWarnings("unchecked") - static final <K,V> HashEntry<K,V>[] newArray(int i) { - return new HashEntry[i]; - } - } - /** * Segments are specialized versions of hash tables. This * subclasses from ReentrantLock opportunistically, just to @@ -241,56 +282,61 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ static final class Segment<K,V> extends ReentrantLock implements Serializable { /* - * Segments maintain a table of entry lists that are ALWAYS - * kept in a consistent state, so can be read without locking. - * Next fields of nodes are immutable (final). All list - * additions are performed at the front of each bin. This - * makes it easy to check changes, and also fast to traverse. - * When nodes would otherwise be changed, new nodes are - * created to replace them. This works well for hash tables - * since the bin lists tend to be short. (The average length - * is less than two for the default load factor threshold.) + * Segments maintain a table of entry lists that are always + * kept in a consistent state, so can be read (via volatile + * reads of segments and tables) without locking. This + * requires replicating nodes when necessary during table + * resizing, so the old lists can be traversed by readers + * still using old version of table. * - * Read operations can thus proceed without locking, but rely - * on selected uses of volatiles to ensure that completed - * write operations performed by other threads are - * noticed. For most purposes, the "count" field, tracking the - * number of elements, serves as that volatile variable - * ensuring visibility. This is convenient because this field - * needs to be read in many read operations anyway: - * - * - All (unsynchronized) read operations must first read the - * "count" field, and should not look at table entries if - * it is 0. - * - * - All (synchronized) write operations should write to - * the "count" field after structurally changing any bin. - * The operations must not take any action that could even - * momentarily cause a concurrent read operation to see - * inconsistent data. This is made easier by the nature of - * the read operations in Map. For example, no operation - * can reveal that the table has grown but the threshold - * has not yet been updated, so there are no atomicity - * requirements for this with respect to reads. - * - * As a guide, all critical volatile reads and writes to the - * count field are marked in code comments. + * This class defines only mutative methods requiring locking. + * Except as noted, the methods of this class perform the + * per-segment versions of ConcurrentHashMap methods. (Other + * methods are integrated directly into ConcurrentHashMap + * methods.) These mutative methods use a form of controlled + * spinning on contention via methods scanAndLock and + * scanAndLockForPut. These intersperse tryLocks with + * traversals to locate nodes. The main benefit is to absorb + * cache misses (which are very common for hash tables) while + * obtaining locks so that traversal is faster once + * acquired. We do not actually use the found nodes since they + * must be re-acquired under lock anyway to ensure sequential + * consistency of updates (and in any case may be undetectably + * stale), but they will normally be much faster to re-locate. + * Also, scanAndLockForPut speculatively creates a fresh node + * to use in put if no node is found. */ private static final long serialVersionUID = 2249069246763182397L; /** - * The number of elements in this segment's region. + * The maximum number of times to tryLock in a prescan before + * possibly blocking on acquire in preparation for a locked + * segment operation. On multiprocessors, using a bounded + * number of retries maintains cache acquired while locating + * nodes. */ - transient volatile int count; + static final int MAX_SCAN_RETRIES = + Runtime.getRuntime().availableProcessors() > 1 ? 64 : 1; /** - * Number of updates that alter the size of the table. This is - * used during bulk-read methods to make sure they see a - * consistent snapshot: If modCounts change during a traversal - * of segments computing size or checking containsValue, then - * we might have an inconsistent view of state so (usually) - * must retry. + * The per-segment table. Elements are accessed via + * entryAt/setEntryAt providing volatile semantics. + */ + transient volatile HashEntry<K,V>[] table; + + /** + * The number of elements. Accessed only either within locks + * or among other volatile reads that maintain visibility. + */ + transient int count; + + /** + * The total number of mutative operations in this segment. + * Even though this may overflows 32 bits, it provides + * sufficient accuracy for stability checks in CHM isEmpty() + * and size() methods. Accessed only either within locks or + * among other volatile reads that maintain visibility. */ transient int modCount; @@ -301,11 +347,6 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ transient int threshold; - /** - * The per-segment table. - */ - transient volatile HashEntry<K,V>[] table; - /** * The load factor for the hash table. Even though this value * is same for all segments, it is replicated to avoid needing @@ -314,202 +355,94 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ final float loadFactor; - Segment(int initialCapacity, float lf) { - loadFactor = lf; - setTable(HashEntry.<K,V>newArray(initialCapacity)); + Segment(float lf, int threshold, HashEntry<K,V>[] tab) { + this.loadFactor = lf; + this.threshold = threshold; + this.table = tab; } + final V put(K key, int hash, V value, boolean onlyIfAbsent) { + HashEntry<K,V> node = tryLock() ? null : + scanAndLockForPut(key, hash, value); + V oldValue; + try { + HashEntry<K,V>[] tab = table; + int index = (tab.length - 1) & hash; + HashEntry<K,V> first = entryAt(tab, index); + for (HashEntry<K,V> e = first;;) { + if (e != null) { + K k; + if ((k = e.key) == key || + (e.hash == hash && key.equals(k))) { + oldValue = e.value; + if (!onlyIfAbsent) { + e.value = value; + ++modCount; + } + break; + } + e = e.next; + } + else { + if (node != null) + node.setNext(first); + else + node = new HashEntry<K,V>(hash, key, value, first); + int c = count + 1; + if (c > threshold && first != null && + tab.length < MAXIMUM_CAPACITY) + rehash(node); + else + setEntryAt(tab, index, node); + ++modCount; + count = c; + oldValue = null; + break; + } + } + } finally { + unlock(); + } + return oldValue; + } + + /** + * Doubles size of table and repacks entries, also adding the + * given node to new table + */ @SuppressWarnings("unchecked") - static final <K,V> Segment<K,V>[] newArray(int i) { - return new Segment[i]; - } - - /** - * Sets table to new HashEntry array. - * Call only while holding lock or in constructor. - */ - void setTable(HashEntry<K,V>[] newTable) { - threshold = (int)(newTable.length * loadFactor); - table = newTable; - } - - /** - * Returns properly casted first entry of bin for given hash. - */ - HashEntry<K,V> getFirst(int hash) { - HashEntry<K,V>[] tab = table; - return tab[hash & (tab.length - 1)]; - } - - /** - * Reads value field of an entry under lock. Called if value - * field ever appears to be null. This is possible only if a - * compiler happens to reorder a HashEntry initialization with - * its table assignment, which is legal under memory model - * but is not known to ever occur. - */ - V readValueUnderLock(HashEntry<K,V> e) { - lock(); - try { - return e.value; - } finally { - unlock(); - } - } - - /* Specialized implementations of map methods */ - - V get(Object key, int hash) { - if (count != 0) { // read-volatile - HashEntry<K,V> e = getFirst(hash); - while (e != null) { - if (e.hash == hash && key.equals(e.key)) { - V v = e.value; - if (v != null) - return v; - return readValueUnderLock(e); // recheck - } - e = e.next; - } - } - return null; - } - - boolean containsKey(Object key, int hash) { - if (count != 0) { // read-volatile - HashEntry<K,V> e = getFirst(hash); - while (e != null) { - if (e.hash == hash && key.equals(e.key)) - return true; - e = e.next; - } - } - return false; - } - - boolean containsValue(Object value) { - if (count != 0) { // read-volatile - HashEntry<K,V>[] tab = table; - int len = tab.length; - for (int i = 0 ; i < len; i++) { - for (HashEntry<K,V> e = tab[i]; e != null; e = e.next) { - V v = e.value; - if (v == null) // recheck - v = readValueUnderLock(e); - if (value.equals(v)) - return true; - } - } - } - return false; - } - - boolean replace(K key, int hash, V oldValue, V newValue) { - lock(); - try { - HashEntry<K,V> e = getFirst(hash); - while (e != null && (e.hash != hash || !key.equals(e.key))) - e = e.next; - - boolean replaced = false; - if (e != null && oldValue.equals(e.value)) { - replaced = true; - e.value = newValue; - } - return replaced; - } finally { - unlock(); - } - } - - V replace(K key, int hash, V newValue) { - lock(); - try { - HashEntry<K,V> e = getFirst(hash); - while (e != null && (e.hash != hash || !key.equals(e.key))) - e = e.next; - - V oldValue = null; - if (e != null) { - oldValue = e.value; - e.value = newValue; - } - return oldValue; - } finally { - unlock(); - } - } - - - V put(K key, int hash, V value, boolean onlyIfAbsent) { - lock(); - try { - int c = count; - if (c++ > threshold) // ensure capacity - rehash(); - HashEntry<K,V>[] tab = table; - int index = hash & (tab.length - 1); - HashEntry<K,V> first = tab[index]; - HashEntry<K,V> e = first; - while (e != null && (e.hash != hash || !key.equals(e.key))) - e = e.next; - - V oldValue; - if (e != null) { - oldValue = e.value; - if (!onlyIfAbsent) - e.value = value; - } - else { - oldValue = null; - ++modCount; - tab[index] = new HashEntry<K,V>(key, hash, first, value); - count = c; // write-volatile - } - return oldValue; - } finally { - unlock(); - } - } - - void rehash() { + private void rehash(HashEntry<K,V> node) { + /* + * Reclassify nodes in each list to new table. Because we + * are using power-of-two expansion, the elements from + * each bin must either stay at same index, or move with a + * power of two offset. We eliminate unnecessary node + * creation by catching cases where old nodes can be + * reused because their next fields won't change. + * Statistically, at the default threshold, only about + * one-sixth of them need cloning when a table + * doubles. The nodes they replace will be garbage + * collectable as soon as they are no longer referenced by + * any reader thread that may be in the midst of + * concurrently traversing table. Entry accesses use plain + * array indexing because they are followed by volatile + * table write. + */ HashEntry<K,V>[] oldTable = table; int oldCapacity = oldTable.length; - if (oldCapacity >= MAXIMUM_CAPACITY) - return; - - /* - * Reclassify nodes in each list to new Map. Because we are - * using power-of-two expansion, the elements from each bin - * must either stay at same index, or move with a power of two - * offset. We eliminate unnecessary node creation by catching - * cases where old nodes can be reused because their next - * fields won't change. Statistically, at the default - * threshold, only about one-sixth of them need cloning when - * a table doubles. The nodes they replace will be garbage - * collectable as soon as they are no longer referenced by any - * reader thread that may be in the midst of traversing table - * right now. - */ - - HashEntry<K,V>[] newTable = HashEntry.newArray(oldCapacity<<1); - threshold = (int)(newTable.length * loadFactor); - int sizeMask = newTable.length - 1; + int newCapacity = oldCapacity << 1; + threshold = (int)(newCapacity * loadFactor); + HashEntry<K,V>[] newTable = + (HashEntry<K,V>[]) new HashEntry[newCapacity]; + int sizeMask = newCapacity - 1; for (int i = 0; i < oldCapacity ; i++) { - // We need to guarantee that any existing reads of old Map can - // proceed. So we cannot yet null out each bin. HashEntry<K,V> e = oldTable[i]; - if (e != null) { HashEntry<K,V> next = e.next; int idx = e.hash & sizeMask; - - // Single node on list - if (next == null) + if (next == null) // Single node on list newTable[idx] = e; - - else { - // Reuse trailing consecutive sequence at same slot + else { // Reuse consecutive sequence at same slot HashEntry<K,V> lastRun = e; int lastIdx = idx; for (HashEntry<K,V> last = next; @@ -522,74 +455,259 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> } } newTable[lastIdx] = lastRun; - - // Clone all remaining nodes + // Clone remaining nodes for (HashEntry<K,V> p = e; p != lastRun; p = p.next) { - int k = p.hash & sizeMask; + V v = p.value; + int h = p.hash; + int k = h & sizeMask; HashEntry<K,V> n = newTable[k]; - newTable[k] = new HashEntry<K,V>(p.key, p.hash, - n, p.value); + newTable[k] = new HashEntry<K,V>(h, p.key, v, n); } } } } + int nodeIndex = node.hash & sizeMask; // add the new node + node.setNext(newTable[nodeIndex]); + newTable[nodeIndex] = node; table = newTable; } + /** + * Scans for a node containing given key while trying to + * acquire lock, creating and returning one if not found. Upon + * return, guarantees that lock is held. UNlike in most + * methods, calls to method equals are not screened: Since + * traversal speed doesn't matter, we might as well help warm + * up the associated code and accesses as well. + * + * @return a new node if key not found, else null + */ + private HashEntry<K,V> scanAndLockForPut(K key, int hash, V value) { + HashEntry<K,V> first = entryForHash(this, hash); + HashEntry<K,V> e = first; + HashEntry<K,V> node = null; + int retries = -1; // negative while locating node + while (!tryLock()) { + HashEntry<K,V> f; // to recheck first below + if (retries < 0) { + if (e == null) { + if (node == null) // speculatively create node + node = new HashEntry<K,V>(hash, key, value, null); + retries = 0; + } + else if (key.equals(e.key)) + retries = 0; + else + e = e.next; + } + else if (++retries > MAX_SCAN_RETRIES) { + lock(); + break; + } + else if ((retries & 1) == 0 && + (f = entryForHash(this, hash)) != first) { + e = first = f; // re-traverse if entry changed + retries = -1; + } + } + return node; + } + + /** + * Scans for a node containing the given key while trying to + * acquire lock for a remove or replace operation. Upon + * return, guarantees that lock is held. Note that we must + * lock even if the key is not found, to ensure sequential + * consistency of updates. + */ + private void scanAndLock(Object key, int hash) { + // similar to but simpler than scanAndLockForPut + HashEntry<K,V> first = entryForHash(this, hash); + HashEntry<K,V> e = first; + int retries = -1; + while (!tryLock()) { + HashEntry<K,V> f; + if (retries < 0) { + if (e == null || key.equals(e.key)) + retries = 0; + else + e = e.next; + } + else if (++retries > MAX_SCAN_RETRIES) { + lock(); + break; + } + else if ((retries & 1) == 0 && + (f = entryForHash(this, hash)) != first) { + e = first = f; + retries = -1; + } + } + } + /** * Remove; match on key only if value null, else match both. */ - V remove(Object key, int hash, Object value) { - lock(); + final V remove(Object key, int hash, Object value) { + if (!tryLock()) + scanAndLock(key, hash); + V oldValue = null; try { - int c = count - 1; HashEntry<K,V>[] tab = table; - int index = hash & (tab.length - 1); - HashEntry<K,V> first = tab[index]; - HashEntry<K,V> e = first; - while (e != null && (e.hash != hash || !key.equals(e.key))) - e = e.next; + int index = (tab.length - 1) & hash; + HashEntry<K,V> e = entryAt(tab, index); + HashEntry<K,V> pred = null; + while (e != null) { + K k; + HashEntry<K,V> next = e.next; + if ((k = e.key) == key || + (e.hash == hash && key.equals(k))) { + V v = e.value; + if (value == null || value == v || value.equals(v)) { + if (pred == null) + setEntryAt(tab, index, next); + else + pred.setNext(next); + ++modCount; + --count; + oldValue = v; + } + break; + } + pred = e; + e = next; + } + } finally { + unlock(); + } + return oldValue; + } - V oldValue = null; - if (e != null) { - V v = e.value; - if (value == null || value.equals(v)) { - oldValue = v; - // All entries following removed node can stay - // in list, but all preceding ones need to be - // cloned. - ++modCount; - HashEntry<K,V> newFirst = e.next; - for (HashEntry<K,V> p = first; p != e; p = p.next) - newFirst = new HashEntry<K,V>(p.key, p.hash, - newFirst, p.value); - tab[index] = newFirst; - count = c; // write-volatile + final boolean replace(K key, int hash, V oldValue, V newValue) { + if (!tryLock()) + scanAndLock(key, hash); + boolean replaced = false; + try { + HashEntry<K,V> e; + for (e = entryForHash(this, hash); e != null; e = e.next) { + K k; + if ((k = e.key) == key || + (e.hash == hash && key.equals(k))) { + if (oldValue.equals(e.value)) { + e.value = newValue; + ++modCount; + replaced = true; + } + break; } } - return oldValue; + } finally { + unlock(); + } + return replaced; + } + + final V replace(K key, int hash, V value) { + if (!tryLock()) + scanAndLock(key, hash); + V oldValue = null; + try { + HashEntry<K,V> e; + for (e = entryForHash(this, hash); e != null; e = e.next) { + K k; + if ((k = e.key) == key || + (e.hash == hash && key.equals(k))) { + oldValue = e.value; + e.value = value; + ++modCount; + break; + } + } + } finally { + unlock(); + } + return oldValue; + } + + final void clear() { + lock(); + try { + HashEntry<K,V>[] tab = table; + for (int i = 0; i < tab.length ; i++) + setEntryAt(tab, i, null); + ++modCount; + count = 0; } finally { unlock(); } } + } - void clear() { - if (count != 0) { - lock(); - try { - HashEntry<K,V>[] tab = table; - for (int i = 0; i < tab.length ; i++) - tab[i] = null; - ++modCount; - count = 0; // write-volatile - } finally { - unlock(); + // Accessing segments + + /** + * Gets the jth element of given segment array (if nonnull) with + * volatile element access semantics via Unsafe. + */ + @SuppressWarnings("unchecked") + static final <K,V> Segment<K,V> segmentAt(Segment<K,V>[] ss, int j) { + long u = (j << SSHIFT) + SBASE; + return ss == null ? null : + (Segment<K,V>) UNSAFE.getObjectVolatile(ss, u); + } + + /** + * Returns the segment for the given index, creating it and + * recording in segment table (via CAS) if not already present. + * + * @param k the index + * @return the segment + */ + @SuppressWarnings("unchecked") + private Segment<K,V> ensureSegment(int k) { + final Segment<K,V>[] ss = this.segments; + long u = (k << SSHIFT) + SBASE; // raw offset + Segment<K,V> seg; + if ((seg = (Segment<K,V>)UNSAFE.getObjectVolatile(ss, u)) == null) { + Segment<K,V> proto = ss[0]; // use segment 0 as prototype + int cap = proto.table.length; + float lf = proto.loadFactor; + int threshold = (int)(cap * lf); + HashEntry<K,V>[] tab = (HashEntry<K,V>[])new HashEntry[cap]; + if ((seg = (Segment<K,V>)UNSAFE.getObjectVolatile(ss, u)) + == null) { // recheck + Segment<K,V> s = new Segment<K,V>(lf, threshold, tab); + while ((seg = (Segment<K,V>)UNSAFE.getObjectVolatile(ss, u)) + == null) { + if (UNSAFE.compareAndSwapObject(ss, u, null, seg = s)) + break; } } } + return seg; } + // Hash-based segment and entry accesses + /** + * Get the segment for the given hash + */ + @SuppressWarnings("unchecked") + private Segment<K,V> segmentForHash(int h) { + long u = (((h >>> segmentShift) & segmentMask) << SSHIFT) + SBASE; + return (Segment<K,V>) UNSAFE.getObjectVolatile(segments, u); + } + + /** + * Gets the table entry for the given segment and hash + */ + @SuppressWarnings("unchecked") + static final <K,V> HashEntry<K,V> entryForHash(Segment<K,V> seg, int h) { + HashEntry<K,V>[] tab; + return (seg == null || (tab = seg.table) == null) ? null : + (HashEntry<K,V>) UNSAFE.getObjectVolatile + (tab, ((long)(((tab.length - 1) & h)) << TSHIFT) + TBASE); + } /* ---------------- Public operations -------------- */ @@ -609,14 +727,13 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * negative or the load factor or concurrencyLevel are * nonpositive. */ + @SuppressWarnings("unchecked") public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel) { if (!(loadFactor > 0) || initialCapacity < 0 || concurrencyLevel <= 0) throw new IllegalArgumentException(); - if (concurrencyLevel > MAX_SEGMENTS) concurrencyLevel = MAX_SEGMENTS; - // Find power-of-two sizes best matching arguments int sshift = 0; int ssize = 1; @@ -624,21 +741,23 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> ++sshift; ssize <<= 1; } - segmentShift = 32 - sshift; - segmentMask = ssize - 1; - this.segments = Segment.newArray(ssize); - + this.segmentShift = 32 - sshift; + this.segmentMask = ssize - 1; if (initialCapacity > MAXIMUM_CAPACITY) initialCapacity = MAXIMUM_CAPACITY; int c = initialCapacity / ssize; if (c * ssize < initialCapacity) ++c; - int cap = 1; + int cap = MIN_SEGMENT_TABLE_CAPACITY; while (cap < c) cap <<= 1; - - for (int i = 0; i < this.segments.length; ++i) - this.segments[i] = new Segment<K,V>(cap, loadFactor); + // create segments and segments[0] + Segment<K,V> s0 = + new Segment<K,V>(loadFactor, (int)(cap * loadFactor), + (HashEntry<K,V>[])new HashEntry[cap]); + Segment<K,V>[] ss = (Segment<K,V>[])new Segment[ssize]; + UNSAFE.putOrderedObject(ss, SBASE, s0); // ordered write of segments[0] + this.segments = ss; } /** @@ -701,34 +820,37 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @return <tt>true</tt> if this map contains no key-value mappings */ public boolean isEmpty() { - final Segment<K,V>[] segments = this.segments; /* - * We keep track of per-segment modCounts to avoid ABA - * problems in which an element in one segment was added and - * in another removed during traversal, in which case the - * table was never actually empty at any point. Note the - * similar use of modCounts in the size() and containsValue() - * methods, which are the only other methods also susceptible - * to ABA problems. + * Sum per-segment modCounts to avoid mis-reporting when + * elements are concurrently added and removed in one segment + * while checking another, in which case the table was never + * actually empty at any point. (The sum ensures accuracy up + * through at least 1<<31 per-segment modifications before + * recheck.) Methods size() and containsValue() use similar + * constructions for stability checks. */ - int[] mc = new int[segments.length]; - int mcsum = 0; - for (int i = 0; i < segments.length; ++i) { - if (segments[i].count != 0) - return false; - else - mcsum += mc[i] = segments[i].modCount; - } - // If mcsum happens to be zero, then we know we got a snapshot - // before any modifications at all were made. This is - // probably common enough to bother tracking. - if (mcsum != 0) { - for (int i = 0; i < segments.length; ++i) { - if (segments[i].count != 0 || - mc[i] != segments[i].modCount) + long sum = 0L; + final Segment<K,V>[] segments = this.segments; + for (int j = 0; j < segments.length; ++j) { + Segment<K,V> seg = segmentAt(segments, j); + if (seg != null) { + if (seg.count != 0) return false; + sum += seg.modCount; } } + if (sum != 0L) { // recheck unless no modifications + for (int j = 0; j < segments.length; ++j) { + Segment<K,V> seg = segmentAt(segments, j); + if (seg != null) { + if (seg.count != 0) + return false; + sum -= seg.modCount; + } + } + if (sum != 0L) + return false; + } return true; } @@ -740,45 +862,43 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @return the number of key-value mappings in this map */ public int size() { - final Segment<K,V>[] segments = this.segments; - long sum = 0; - long check = 0; - int[] mc = new int[segments.length]; // Try a few times to get accurate count. On failure due to // continuous async changes in table, resort to locking. - for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) { - check = 0; - sum = 0; - int mcsum = 0; - for (int i = 0; i < segments.length; ++i) { - sum += segments[i].count; - mcsum += mc[i] = segments[i].modCount; - } - if (mcsum != 0) { - for (int i = 0; i < segments.length; ++i) { - check += segments[i].count; - if (mc[i] != segments[i].modCount) { - check = -1; // force retry - break; + final Segment<K,V>[] segments = this.segments; + int size; + boolean overflow; // true if size overflows 32 bits + long sum; // sum of modCounts + long last = 0L; // previous sum + int retries = -1; // first iteration isn't retry + try { + for (;;) { + if (retries++ == RETRIES_BEFORE_LOCK) { + for (int j = 0; j < segments.length; ++j) + ensureSegment(j).lock(); // force creation + } + sum = 0L; + size = 0; + overflow = false; + for (int j = 0; j < segments.length; ++j) { + Segment<K,V> seg = segmentAt(segments, j); + if (seg != null) { + sum += seg.modCount; + int c = seg.count; + if (c < 0 || (size += c) < 0) + overflow = true; } } + if (sum == last) + break; + last = sum; + } + } finally { + if (retries > RETRIES_BEFORE_LOCK) { + for (int j = 0; j < segments.length; ++j) + segmentAt(segments, j).unlock(); } - if (check == sum) - break; } - if (check != sum) { // Resort to locking all segments - sum = 0; - for (int i = 0; i < segments.length; ++i) - segments[i].lock(); - for (int i = 0; i < segments.length; ++i) - sum += segments[i].count; - for (int i = 0; i < segments.length; ++i) - segments[i].unlock(); - } - if (sum > Integer.MAX_VALUE) - return Integer.MAX_VALUE; - else - return (int)sum; + return overflow ? Integer.MAX_VALUE : size; } /** @@ -794,7 +914,13 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ public V get(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).get(key, hash); + 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; + } + return null; } /** @@ -808,7 +934,13 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ public boolean containsKey(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).containsKey(key, hash); + 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; + } + return false; } /** @@ -823,51 +955,47 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @throws NullPointerException if the specified value is null */ public boolean containsValue(Object value) { + // Same idea as size() if (value == null) throw new NullPointerException(); - - // See explanation of modCount use above - final Segment<K,V>[] segments = this.segments; - int[] mc = new int[segments.length]; - - // Try a few times without locking - for (int k = 0; k < RETRIES_BEFORE_LOCK; ++k) { - int sum = 0; - int mcsum = 0; - for (int i = 0; i < segments.length; ++i) { - int c = segments[i].count; - mcsum += mc[i] = segments[i].modCount; - if (segments[i].containsValue(value)) - return true; - } - boolean cleanSweep = true; - if (mcsum != 0) { - for (int i = 0; i < segments.length; ++i) { - int c = segments[i].count; - if (mc[i] != segments[i].modCount) { - cleanSweep = false; - break; + boolean found = false; + long last = 0; + int retries = -1; + try { + outer: for (;;) { + if (retries++ == RETRIES_BEFORE_LOCK) { + for (int j = 0; j < segments.length; ++j) + ensureSegment(j).lock(); // force creation + } + long hashSum = 0L; + int sum = 0; + for (int j = 0; j < segments.length; ++j) { + HashEntry<K,V>[] tab; + Segment<K,V> seg = segmentAt(segments, j); + if (seg != null && (tab = seg.table) != null) { + for (int i = 0 ; i < tab.length; i++) { + HashEntry<K,V> e; + for (e = entryAt(tab, i); e != null; e = e.next) { + V v = e.value; + if (v != null && value.equals(v)) { + found = true; + break outer; + } + } + } + sum += seg.modCount; } } - } - if (cleanSweep) - return false; - } - // Resort to locking all segments - for (int i = 0; i < segments.length; ++i) - segments[i].lock(); - boolean found = false; - try { - for (int i = 0; i < segments.length; ++i) { - if (segments[i].containsValue(value)) { - found = true; + if (retries > 0 && sum == last) break; - } + last = sum; } } finally { - for (int i = 0; i < segments.length; ++i) - segments[i].unlock(); + if (retries > RETRIES_BEFORE_LOCK) { + for (int j = 0; j < segments.length; ++j) + segmentAt(segments, j).unlock(); + } } return found; } @@ -908,7 +1036,11 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> if (value == null) throw new NullPointerException(); int hash = hash(key.hashCode()); - return segmentFor(hash).put(key, hash, value, false); + int j = (hash >>> segmentShift) & segmentMask; + Segment<K,V> s = segmentAt(segments, j); + if (s == null) + s = ensureSegment(j); + return s.put(key, hash, value, false); } /** @@ -922,7 +1054,11 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> if (value == null) throw new NullPointerException(); int hash = hash(key.hashCode()); - return segmentFor(hash).put(key, hash, value, true); + int j = (hash >>> segmentShift) & segmentMask; + Segment<K,V> s = segmentAt(segments, j); + if (s == null) + s = ensureSegment(j); + return s.put(key, hash, value, true); } /** @@ -948,7 +1084,8 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ public V remove(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).remove(key, hash, null); + Segment<K,V> s = segmentForHash(hash); + return s == null ? null : s.remove(key, hash, null); } /** @@ -958,9 +1095,9 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> */ public boolean remove(Object key, Object value) { int hash = hash(key.hashCode()); - if (value == null) - return false; - return segmentFor(hash).remove(key, hash, value) != null; + Segment<K,V> s; + return value != null && (s = segmentForHash(hash)) != null && + s.remove(key, hash, value) != null; } /** @@ -969,10 +1106,11 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @throws NullPointerException if any of the arguments are null */ public boolean replace(K key, V oldValue, V newValue) { + int hash = hash(key.hashCode()); if (oldValue == null || newValue == null) throw new NullPointerException(); - int hash = hash(key.hashCode()); - return segmentFor(hash).replace(key, hash, oldValue, newValue); + Segment<K,V> s = segmentForHash(hash); + return s != null && s.replace(key, hash, oldValue, newValue); } /** @@ -983,18 +1121,23 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @throws NullPointerException if the specified key or value is null */ public V replace(K key, V value) { + int hash = hash(key.hashCode()); if (value == null) throw new NullPointerException(); - int hash = hash(key.hashCode()); - return segmentFor(hash).replace(key, hash, value); + Segment<K,V> s = segmentForHash(hash); + return s == null ? null : s.replace(key, hash, value); } /** * Removes all of the mappings from this map. */ public void clear() { - for (int i = 0; i < segments.length; ++i) - segments[i].clear(); + final Segment<K,V>[] segments = this.segments; + for (int j = 0; j < segments.length; ++j) { + Segment<K,V> s = segmentAt(segments, j); + if (s != null) + s.clear(); + } } /** @@ -1095,42 +1238,41 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> advance(); } - public boolean hasMoreElements() { return hasNext(); } - + /** + * Set nextEntry to first node of next non-empty table + * (in backwards order, to simplify checks). + */ final void advance() { - if (nextEntry != null && (nextEntry = nextEntry.next) != null) - return; - - while (nextTableIndex >= 0) { - if ( (nextEntry = currentTable[nextTableIndex--]) != null) - return; - } - - while (nextSegmentIndex >= 0) { - Segment<K,V> seg = segments[nextSegmentIndex--]; - if (seg.count != 0) { - currentTable = seg.table; - for (int j = currentTable.length - 1; j >= 0; --j) { - if ( (nextEntry = currentTable[j]) != null) { - nextTableIndex = j - 1; - return; - } - } + for (;;) { + if (nextTableIndex >= 0) { + if ((nextEntry = entryAt(currentTable, + nextTableIndex--)) != null) + break; } + else if (nextSegmentIndex >= 0) { + Segment<K,V> seg = segmentAt(segments, nextSegmentIndex--); + if (seg != null && (currentTable = seg.table) != null) + nextTableIndex = currentTable.length - 1; + } + else + break; } } - public boolean hasNext() { return nextEntry != null; } - - HashEntry<K,V> nextEntry() { - if (nextEntry == null) + final HashEntry<K,V> nextEntry() { + HashEntry<K,V> e = nextEntry; + if (e == null) throw new NoSuchElementException(); - lastReturned = nextEntry; - advance(); - return lastReturned; + lastReturned = e; // cannot assign until after null check + if ((nextEntry = e.next) == null) + advance(); + return e; } - public void remove() { + public final boolean hasNext() { return nextEntry != null; } + public final boolean hasMoreElements() { return nextEntry != null; } + + public final void remove() { if (lastReturned == null) throw new IllegalStateException(); ConcurrentHashMap.this.remove(lastReturned.key); @@ -1142,16 +1284,16 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> extends HashIterator implements Iterator<K>, Enumeration<K> { - public K next() { return super.nextEntry().key; } - public K nextElement() { return super.nextEntry().key; } + public final K next() { return super.nextEntry().key; } + public final K nextElement() { return super.nextEntry().key; } } final class ValueIterator extends HashIterator implements Iterator<V>, Enumeration<V> { - public V next() { return super.nextEntry().value; } - public V nextElement() { return super.nextEntry().value; } + public final V next() { return super.nextEntry().value; } + public final V nextElement() { return super.nextEntry().value; } } /** @@ -1271,15 +1413,20 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * The key-value mappings are emitted in no particular order. */ private void writeObject(java.io.ObjectOutputStream s) throws IOException { + // force all segments for serialization compatibility + for (int k = 0; k < segments.length; ++k) + ensureSegment(k); s.defaultWriteObject(); + final Segment<K,V>[] segments = this.segments; for (int k = 0; k < segments.length; ++k) { - Segment<K,V> seg = segments[k]; + Segment<K,V> seg = segmentAt(segments, k); seg.lock(); try { HashEntry<K,V>[] tab = seg.table; for (int i = 0; i < tab.length; ++i) { - for (HashEntry<K,V> e = tab[i]; e != null; e = e.next) { + HashEntry<K,V> e; + for (e = entryAt(tab, i); e != null; e = e.next) { s.writeObject(e.key); s.writeObject(e.value); } @@ -1297,13 +1444,20 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * stream (i.e., deserialize it). * @param s the stream */ + @SuppressWarnings("unchecked") private void readObject(java.io.ObjectInputStream s) throws IOException, ClassNotFoundException { s.defaultReadObject(); - // Initialize each segment to be minimally sized, and let grow. - for (int i = 0; i < segments.length; ++i) { - segments[i].setTable(new HashEntry[1]); + // Re-initialize segments to be minimally sized, and let grow. + int cap = MIN_SEGMENT_TABLE_CAPACITY; + final Segment<K,V>[] segments = this.segments; + for (int k = 0; k < segments.length; ++k) { + Segment<K,V> seg = segments[k]; + if (seg != null) { + seg.threshold = (int)(cap * seg.loadFactor); + seg.table = (HashEntry<K,V>[]) new HashEntry[cap]; + } } // Read the keys and values, and put the mappings in the table @@ -1315,4 +1469,31 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> put(key, value); } } + + // Unsafe mechanics + private static final sun.misc.Unsafe UNSAFE; + private static final long SBASE; + private static final int SSHIFT; + private static final long TBASE; + private static final int TSHIFT; + + static { + int ss, ts; + try { + UNSAFE = sun.misc.Unsafe.getUnsafe(); + Class tc = HashEntry[].class; + Class sc = Segment[].class; + TBASE = UNSAFE.arrayBaseOffset(tc); + SBASE = UNSAFE.arrayBaseOffset(sc); + ts = UNSAFE.arrayIndexScale(tc); + ss = UNSAFE.arrayIndexScale(sc); + } catch (Exception e) { + throw new Error(e); + } + if ((ss & (ss-1)) != 0 || (ts & (ts-1)) != 0) + throw new Error("data type scale not a power of two"); + SSHIFT = 31 - Integer.numberOfLeadingZeros(ss); + TSHIFT = 31 - Integer.numberOfLeadingZeros(ts); + } + } diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java index 1030fac0423..4c1c4616263 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java @@ -30,7 +30,7 @@ * * Written by Doug Lea and Martin Buchholz with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained - * at http://creativecommons.org/licenses/publicdomain + * at http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java index 54bd8cbfff5..09f21ef1504 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea and Martin Buchholz with assistance from members of * JCP JSR-166 Expert Group and released to the public domain, as explained - * at http://creativecommons.org/licenses/publicdomain + * at http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java index 1ded04c0891..25cf98ff0f1 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java index 460b04d3a83..df5bb31d1b1 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java index 37d218f6775..8e3e4d0a7cc 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java index 04b845c3f87..eb90bb0bf9f 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java index 1d2de1d85c9..d518048227d 100644 --- a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java +++ b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/CountDownLatch.java b/jdk/src/share/classes/java/util/concurrent/CountDownLatch.java index 1c8a0253c14..187b1f2355f 100644 --- a/jdk/src/share/classes/java/util/concurrent/CountDownLatch.java +++ b/jdk/src/share/classes/java/util/concurrent/CountDownLatch.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/CyclicBarrier.java b/jdk/src/share/classes/java/util/concurrent/CyclicBarrier.java index 68edabe719a..01d64b116b7 100644 --- a/jdk/src/share/classes/java/util/concurrent/CyclicBarrier.java +++ b/jdk/src/share/classes/java/util/concurrent/CyclicBarrier.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/DelayQueue.java b/jdk/src/share/classes/java/util/concurrent/DelayQueue.java index ecb9eefc6e2..dd36cc79ac2 100644 --- a/jdk/src/share/classes/java/util/concurrent/DelayQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/DelayQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ diff --git a/jdk/src/share/classes/java/util/concurrent/Delayed.java b/jdk/src/share/classes/java/util/concurrent/Delayed.java index 8d59898eeab..d7756412130 100644 --- a/jdk/src/share/classes/java/util/concurrent/Delayed.java +++ b/jdk/src/share/classes/java/util/concurrent/Delayed.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Exchanger.java b/jdk/src/share/classes/java/util/concurrent/Exchanger.java index e23f797c289..99e3a35967b 100644 --- a/jdk/src/share/classes/java/util/concurrent/Exchanger.java +++ b/jdk/src/share/classes/java/util/concurrent/Exchanger.java @@ -31,7 +31,7 @@ * Written by Doug Lea, Bill Scherer, and Michael Scott with * assistance from members of JCP JSR-166 Expert Group and released to * the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ExecutionException.java b/jdk/src/share/classes/java/util/concurrent/ExecutionException.java index 53d38fa129e..fc2b1e899ec 100644 --- a/jdk/src/share/classes/java/util/concurrent/ExecutionException.java +++ b/jdk/src/share/classes/java/util/concurrent/ExecutionException.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Executor.java b/jdk/src/share/classes/java/util/concurrent/Executor.java index 5e67fbcdd08..6b4574a63c7 100644 --- a/jdk/src/share/classes/java/util/concurrent/Executor.java +++ b/jdk/src/share/classes/java/util/concurrent/Executor.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ExecutorCompletionService.java b/jdk/src/share/classes/java/util/concurrent/ExecutorCompletionService.java index 9908a8cfcdd..34d1d1a4fda 100644 --- a/jdk/src/share/classes/java/util/concurrent/ExecutorCompletionService.java +++ b/jdk/src/share/classes/java/util/concurrent/ExecutorCompletionService.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ExecutorService.java b/jdk/src/share/classes/java/util/concurrent/ExecutorService.java index 9ef2701fcc3..f1ab3275ef5 100644 --- a/jdk/src/share/classes/java/util/concurrent/ExecutorService.java +++ b/jdk/src/share/classes/java/util/concurrent/ExecutorService.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Executors.java b/jdk/src/share/classes/java/util/concurrent/Executors.java index 75a490086ae..4ff71418422 100644 --- a/jdk/src/share/classes/java/util/concurrent/Executors.java +++ b/jdk/src/share/classes/java/util/concurrent/Executors.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java index e298d151c1b..9c90f36adb4 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; @@ -791,18 +791,19 @@ public class ForkJoinPool extends AbstractExecutorService { /** * Tries to enqueue worker w in wait queue and await change in - * worker's eventCount. If the pool is quiescent, possibly - * terminates worker upon exit. Otherwise, before blocking, - * rescans queues to avoid missed signals. Upon finding work, - * releases at least one worker (which may be the current - * worker). Rescans restart upon detected staleness or failure to - * release due to contention. Note the unusual conventions about - * Thread.interrupt here and elsewhere: Because interrupts are - * used solely to alert threads to check termination, which is - * checked here anyway, we clear status (using Thread.interrupted) - * before any call to park, so that park does not immediately - * return due to status being set via some other unrelated call to - * interrupt in user code. + * worker's eventCount. If the pool is quiescent and there is + * more than one worker, possibly terminates worker upon exit. + * Otherwise, before blocking, rescans queues to avoid missed + * signals. Upon finding work, releases at least one worker + * (which may be the current worker). Rescans restart upon + * detected staleness or failure to release due to + * contention. Note the unusual conventions about Thread.interrupt + * here and elsewhere: Because interrupts are used solely to alert + * threads to check termination, which is checked here anyway, we + * clear status (using Thread.interrupted) before any call to + * park, so that park does not immediately return due to status + * being set via some other unrelated call to interrupt in user + * code. * * @param w the calling worker * @param c the ctl value on entry @@ -823,7 +824,8 @@ public class ForkJoinPool extends AbstractExecutorService { else if (w.eventCount != v) return true; // update next time } - if (parallelism + (int)(nc >> AC_SHIFT) == 0 && + if ((!shutdown || !tryTerminate(false)) && + (int)c != 0 && parallelism + (int)(nc >> AC_SHIFT) == 0 && blockedCount == 0 && quiescerCount == 0) idleAwaitWork(w, nc, c, v); // quiescent for (boolean rescanned = false;;) { @@ -893,7 +895,8 @@ public class ForkJoinPool extends AbstractExecutorService { w.parked = false; if (w.eventCount != v) break; - else if (System.nanoTime() - startTime < SHRINK_RATE) + else if (System.nanoTime() - startTime < + SHRINK_RATE - (SHRINK_RATE / 10)) // timing slop Thread.interrupted(); // spurious wakeup else if (UNSAFE.compareAndSwapLong(this, ctlOffset, currentCtl, prevCtl)) { @@ -1022,8 +1025,8 @@ public class ForkJoinPool extends AbstractExecutorService { do {} while (!UNSAFE.compareAndSwapLong(this, ctlOffset, // no mask c = ctl, c + AC_UNIT)); int b; - do {} while(!UNSAFE.compareAndSwapInt(this, blockedCountOffset, - b = blockedCount, b - 1)); + do {} while (!UNSAFE.compareAndSwapInt(this, blockedCountOffset, + b = blockedCount, b - 1)); } /** @@ -1175,7 +1178,7 @@ public class ForkJoinPool extends AbstractExecutorService { ws[k] = w; nextWorkerIndex = k + 1; int m = g & SMASK; - g = k >= m? ((m << 1) + 1) & SMASK : g + (SG_UNIT<<1); + g = (k > m) ? ((m << 1) + 1) & SMASK : g + (SG_UNIT<<1); } } finally { scanGuard = g; @@ -1358,8 +1361,8 @@ public class ForkJoinPool extends AbstractExecutorService { */ final void addQuiescerCount(int delta) { int c; - do {} while(!UNSAFE.compareAndSwapInt(this, quiescerCountOffset, - c = quiescerCount, c + delta)); + do {} while (!UNSAFE.compareAndSwapInt(this, quiescerCountOffset, + c = quiescerCount, c + delta)); } /** @@ -1712,7 +1715,7 @@ public class ForkJoinPool extends AbstractExecutorService { */ public int getRunningThreadCount() { int r = parallelism + (int)(ctl >> AC_SHIFT); - return r <= 0? 0 : r; // suppress momentarily negative values + return (r <= 0) ? 0 : r; // suppress momentarily negative values } /** @@ -1724,7 +1727,7 @@ public class ForkJoinPool extends AbstractExecutorService { */ public int getActiveThreadCount() { int r = parallelism + (int)(ctl >> AC_SHIFT) + blockedCount; - return r <= 0? 0 : r; // suppress momentarily negative values + return (r <= 0) ? 0 : r; // suppress momentarily negative values } /** @@ -1879,9 +1882,9 @@ public class ForkJoinPool extends AbstractExecutorService { int ac = rc + blockedCount; String level; if ((c & STOP_BIT) != 0) - level = (tc == 0)? "Terminated" : "Terminating"; + level = (tc == 0) ? "Terminated" : "Terminating"; else - level = shutdown? "Shutting down" : "Running"; + level = shutdown ? "Shutting down" : "Running"; return super.toString() + "[" + level + ", parallelism = " + pc + diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinTask.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinTask.java index ee8ba8fcfab..fbab843f78b 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinTask.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinTask.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java index 2f48080a664..3504abb73c7 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; @@ -361,7 +361,7 @@ public class ForkJoinWorkerThread extends Thread { protected void onStart() { queue = new ForkJoinTask<?>[INITIAL_QUEUE_CAPACITY]; int r = pool.workerSeedGenerator.nextInt(); - seed = (r == 0)? 1 : r; // must be nonzero + seed = (r == 0) ? 1 : r; // must be nonzero } /** @@ -724,7 +724,7 @@ public class ForkJoinWorkerThread extends Thread { Thread.yield(); // for politeness } else - retries = helpJoinTask(joinMe)? MAX_HELP : retries - 1; + retries = helpJoinTask(joinMe) ? MAX_HELP : retries - 1; } else { retries = MAX_HELP; // restart if not done @@ -955,7 +955,7 @@ public class ForkJoinWorkerThread extends Thread { p.addActiveCount(1); } if ((t = (v != this) ? v.deqTask() : - locallyFifo? locallyDeqTask() : popTask()) != null) { + locallyFifo ? locallyDeqTask() : popTask()) != null) { currentSteal = t; t.doExec(); currentSteal = ps; diff --git a/jdk/src/share/classes/java/util/concurrent/Future.java b/jdk/src/share/classes/java/util/concurrent/Future.java index 4abd3f4e174..2aab18ed346 100644 --- a/jdk/src/share/classes/java/util/concurrent/Future.java +++ b/jdk/src/share/classes/java/util/concurrent/Future.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/FutureTask.java b/jdk/src/share/classes/java/util/concurrent/FutureTask.java index dd7a51edf71..45c91d062ea 100644 --- a/jdk/src/share/classes/java/util/concurrent/FutureTask.java +++ b/jdk/src/share/classes/java/util/concurrent/FutureTask.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/LinkedBlockingDeque.java b/jdk/src/share/classes/java/util/concurrent/LinkedBlockingDeque.java index f5d9da1cb17..c1978c8e331 100644 --- a/jdk/src/share/classes/java/util/concurrent/LinkedBlockingDeque.java +++ b/jdk/src/share/classes/java/util/concurrent/LinkedBlockingDeque.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/LinkedBlockingQueue.java b/jdk/src/share/classes/java/util/concurrent/LinkedBlockingQueue.java index 5f62e79ce56..ae4d43594dd 100644 --- a/jdk/src/share/classes/java/util/concurrent/LinkedBlockingQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/LinkedBlockingQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java b/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java index 7571978169b..3fe72477bf9 100644 --- a/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Phaser.java b/jdk/src/share/classes/java/util/concurrent/Phaser.java index 7e362219179..c4ebe2378cb 100644 --- a/jdk/src/share/classes/java/util/concurrent/Phaser.java +++ b/jdk/src/share/classes/java/util/concurrent/Phaser.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/PriorityBlockingQueue.java b/jdk/src/share/classes/java/util/concurrent/PriorityBlockingQueue.java index 5ad7fa71d71..83dbb4dd778 100644 --- a/jdk/src/share/classes/java/util/concurrent/PriorityBlockingQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/PriorityBlockingQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RecursiveAction.java b/jdk/src/share/classes/java/util/concurrent/RecursiveAction.java index e13bc4b5578..add4a54a44f 100644 --- a/jdk/src/share/classes/java/util/concurrent/RecursiveAction.java +++ b/jdk/src/share/classes/java/util/concurrent/RecursiveAction.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RecursiveTask.java b/jdk/src/share/classes/java/util/concurrent/RecursiveTask.java index cc329d0306d..11c7768ef92 100644 --- a/jdk/src/share/classes/java/util/concurrent/RecursiveTask.java +++ b/jdk/src/share/classes/java/util/concurrent/RecursiveTask.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RejectedExecutionException.java b/jdk/src/share/classes/java/util/concurrent/RejectedExecutionException.java index c64edbbb6c1..9e599453996 100644 --- a/jdk/src/share/classes/java/util/concurrent/RejectedExecutionException.java +++ b/jdk/src/share/classes/java/util/concurrent/RejectedExecutionException.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RejectedExecutionHandler.java b/jdk/src/share/classes/java/util/concurrent/RejectedExecutionHandler.java index cbcc01c1867..c1e314c7c08 100644 --- a/jdk/src/share/classes/java/util/concurrent/RejectedExecutionHandler.java +++ b/jdk/src/share/classes/java/util/concurrent/RejectedExecutionHandler.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RunnableFuture.java b/jdk/src/share/classes/java/util/concurrent/RunnableFuture.java index 241695c25be..0af4ea96e21 100644 --- a/jdk/src/share/classes/java/util/concurrent/RunnableFuture.java +++ b/jdk/src/share/classes/java/util/concurrent/RunnableFuture.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/RunnableScheduledFuture.java b/jdk/src/share/classes/java/util/concurrent/RunnableScheduledFuture.java index 90758ae404b..1049ab9a3a1 100644 --- a/jdk/src/share/classes/java/util/concurrent/RunnableScheduledFuture.java +++ b/jdk/src/share/classes/java/util/concurrent/RunnableScheduledFuture.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ScheduledExecutorService.java b/jdk/src/share/classes/java/util/concurrent/ScheduledExecutorService.java index e9d5d150afc..187d6a193d1 100644 --- a/jdk/src/share/classes/java/util/concurrent/ScheduledExecutorService.java +++ b/jdk/src/share/classes/java/util/concurrent/ScheduledExecutorService.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ScheduledFuture.java b/jdk/src/share/classes/java/util/concurrent/ScheduledFuture.java index e21eff6b8cf..1c1efa440cf 100644 --- a/jdk/src/share/classes/java/util/concurrent/ScheduledFuture.java +++ b/jdk/src/share/classes/java/util/concurrent/ScheduledFuture.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java index f1731420897..6be307406c8 100644 --- a/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java +++ b/jdk/src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/Semaphore.java b/jdk/src/share/classes/java/util/concurrent/Semaphore.java index 56c233fb3a7..c144b492dbf 100644 --- a/jdk/src/share/classes/java/util/concurrent/Semaphore.java +++ b/jdk/src/share/classes/java/util/concurrent/Semaphore.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/SynchronousQueue.java b/jdk/src/share/classes/java/util/concurrent/SynchronousQueue.java index d02f56d9b72..a1fa8e21af6 100644 --- a/jdk/src/share/classes/java/util/concurrent/SynchronousQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/SynchronousQueue.java @@ -31,7 +31,7 @@ * Written by Doug Lea, Bill Scherer, and Michael Scott with * assistance from members of JCP JSR-166 Expert Group and released to * the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ThreadFactory.java b/jdk/src/share/classes/java/util/concurrent/ThreadFactory.java index b53f6e693d0..9274abc5f8d 100644 --- a/jdk/src/share/classes/java/util/concurrent/ThreadFactory.java +++ b/jdk/src/share/classes/java/util/concurrent/ThreadFactory.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java b/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java index 69f5fbcb404..aa8210bce4a 100644 --- a/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java +++ b/jdk/src/share/classes/java/util/concurrent/ThreadLocalRandom.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java b/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java index 841a5804430..c9891211318 100644 --- a/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java +++ b/jdk/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/TimeUnit.java b/jdk/src/share/classes/java/util/concurrent/TimeUnit.java index 236e553bc6c..f756759e8fd 100644 --- a/jdk/src/share/classes/java/util/concurrent/TimeUnit.java +++ b/jdk/src/share/classes/java/util/concurrent/TimeUnit.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/TimeoutException.java b/jdk/src/share/classes/java/util/concurrent/TimeoutException.java index 1df0deed3f0..ed08990c7d6 100644 --- a/jdk/src/share/classes/java/util/concurrent/TimeoutException.java +++ b/jdk/src/share/classes/java/util/concurrent/TimeoutException.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/TransferQueue.java b/jdk/src/share/classes/java/util/concurrent/TransferQueue.java index 0eaf1d20fee..f8549dcd2f3 100644 --- a/jdk/src/share/classes/java/util/concurrent/TransferQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/TransferQueue.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java index cc00e784501..c21df7bab8c 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java index f607aac3fa4..0d8a7a1ae79 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicInteger.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java index 54b9488ab51..46227019856 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java index 7ea3a8012d5..aed5d1fc170 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLong.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLong.java index 97b8902726d..4fc4c904bf5 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLong.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLong.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java index f1873c54d7a..ece5b6ad9b0 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java index 22a1d5eecbe..fa0a857152d 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java index e898758f522..b1dc71dfdce 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReference.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReference.java index e719a37b3b2..3178ca1579f 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReference.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReference.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java index b5fd65ab48f..b173f26808b 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java index c58fd30139f..7b72f0ff494 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java index 412eca36eb3..90aa3a0c538 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.atomic; diff --git a/jdk/src/share/classes/java/util/concurrent/atomic/package-info.java b/jdk/src/share/classes/java/util/concurrent/atomic/package-info.java index fe866e08648..7c0ba5e8618 100644 --- a/jdk/src/share/classes/java/util/concurrent/atomic/package-info.java +++ b/jdk/src/share/classes/java/util/concurrent/atomic/package-info.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** @@ -80,9 +80,8 @@ * </pre> * * <p>The memory effects for accesses and updates of atomics generally - * follow the rules for volatiles, as stated in - * <a href="http://java.sun.com/docs/books/jls/"> The Java Language - * Specification, Third Edition (17.4 Memory Model)</a>: + * follow the rules for volatiles, as stated in section 17.4 of + * <cite>The Java™ Language Specification</cite>. * * <ul> * diff --git a/jdk/src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java b/jdk/src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java index 811cb814a98..39a51e5a90c 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java index 605276e27b5..15490bd36af 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java index 8075aea7dea..0da0eaeca70 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/Condition.java b/jdk/src/share/classes/java/util/concurrent/locks/Condition.java index f3fb607a47e..8bdbedea398 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/Condition.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/Condition.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/Lock.java b/jdk/src/share/classes/java/util/concurrent/locks/Lock.java index a6b0caf1295..8ed346c2914 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/Lock.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/Lock.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; @@ -120,8 +120,8 @@ import java.util.concurrent.TimeUnit; * * <p>All {@code Lock} implementations <em>must</em> enforce the same * memory synchronization semantics as provided by the built-in monitor - * lock, as described in <a href="http://java.sun.com/docs/books/jls/"> - * The Java Language Specification, Third Edition (17.4 Memory Model)</a>: + * lock, as described in section 17.4 of + * <cite>The Java™ Language Specification</cite>: * <ul> * <li>A successful {@code lock} operation has the same memory * synchronization effects as a successful <em>Lock</em> action. diff --git a/jdk/src/share/classes/java/util/concurrent/locks/LockSupport.java b/jdk/src/share/classes/java/util/concurrent/locks/LockSupport.java index 9c966406b31..f0cd3bc0456 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/LockSupport.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/LockSupport.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java b/jdk/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java index 8640a31ff16..fd6632b0b57 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/ReadWriteLock.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/ReentrantLock.java b/jdk/src/share/classes/java/util/concurrent/locks/ReentrantLock.java index 4cbc562b820..9952c8c93b8 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/ReentrantLock.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/ReentrantLock.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java b/jdk/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java index 39b9c0e894d..fbafd3c5fdf 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ package java.util.concurrent.locks; diff --git a/jdk/src/share/classes/java/util/concurrent/locks/package-info.java b/jdk/src/share/classes/java/util/concurrent/locks/package-info.java index 5cbb4a9f836..97dfcc9075b 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/package-info.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/package-info.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** diff --git a/jdk/src/share/classes/java/util/concurrent/package-info.java b/jdk/src/share/classes/java/util/concurrent/package-info.java index 849ef4695db..8116e82cffa 100644 --- a/jdk/src/share/classes/java/util/concurrent/package-info.java +++ b/jdk/src/share/classes/java/util/concurrent/package-info.java @@ -30,7 +30,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** @@ -218,8 +218,9 @@ * * <h2><a name="MemoryVisibility">Memory Consistency Properties</a></h2> * - * <a href="http://java.sun.com/docs/books/jls/third_edition/html/memory.html"> - * Chapter 17 of the Java Language Specification</a> defines the + * Chapter 17 of + * <cite>The Java™ Language Specification</cite> + * defines the * <i>happens-before</i> relation on memory operations such as reads and * writes of shared variables. The results of a write by one thread are * guaranteed to be visible to a read by another thread only if the write diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java index 79d0f84b7e1..20d0363f57a 100644 --- a/jdk/src/share/classes/java/util/jar/JarFile.java +++ b/jdk/src/share/classes/java/util/jar/JarFile.java @@ -37,6 +37,7 @@ 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 @@ -178,7 +179,7 @@ class JarFile extends ZipFile { byte[] b = getBytes(manEntry); man = new Manifest(new ByteArrayInputStream(b)); if (!jvInitialized) { - jv = new JarVerifier(b); + jv = new JarVerifier(b, man); } } else { man = new Manifest(super.getInputStream(manEntry)); @@ -297,10 +298,7 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { String name = names[i].toUpperCase(Locale.ENGLISH); - if (name.endsWith(".DSA") || - name.endsWith(".RSA") || - name.endsWith(".EC") || - name.endsWith(".SF")) { + if (SignatureFileVerifier.isBlockOrSF(name)) { // Assume since we found a signature-related file // that the jar is signed and that we therefore // need a JarVerifier and Manifest @@ -329,17 +327,17 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { JarEntry e = getJarEntry(names[i]); - if (!e.isDirectory()) { + if (!e.isDirectory() && + SignatureFileVerifier.isBlock(names[i])) { if (mev == null) { mev = new ManifestEntryVerifier (getManifestFromReference()); } - 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); - } + String key = names[i].substring( + 0, names[i].lastIndexOf(".")); + jv.verifyBlock(names[i], + getBytes(e), + super.getInputStream(getJarEntry(key + ".SF"))); } } } diff --git a/jdk/src/share/classes/java/util/jar/JarInputStream.java b/jdk/src/share/classes/java/util/jar/JarInputStream.java index 3c4553304b2..b84219ea87a 100644 --- a/jdk/src/share/classes/java/util/jar/JarInputStream.java +++ b/jdk/src/share/classes/java/util/jar/JarInputStream.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 @@ -95,7 +95,7 @@ class JarInputStream extends ZipInputStream { man.read(new ByteArrayInputStream(bytes)); closeEntry(); if (doVerify) { - jv = new JarVerifier(bytes); + jv = new JarVerifier(bytes, man); 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 4f84ac28eff..8c69ff5c583 100644 --- a/jdk/src/share/classes/java/util/jar/JarVerifier.java +++ b/jdk/src/share/classes/java/util/jar/JarVerifier.java @@ -48,35 +48,18 @@ class JarVerifier { /* a table mapping names to code signers, for jar entries that have had their actual hashes verified */ - private Hashtable verifiedSigners; + private Map verifiedSigners; /* a table mapping names to code signers, for jar entries that have passed the .SF/.DSA/.EC -> MANIFEST check */ - 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; + private Map sigFileSigners; /* 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; @@ -92,20 +75,20 @@ class JarVerifier { /** collect -DIGEST-MANIFEST values for blacklist */ private List manifestDigests; - public JarVerifier(byte rawBytes[]) { + /** The manifest object */ + Manifest man = null; + + public JarVerifier(byte rawBytes[], Manifest man) { + this.man = man; manifestRawBytes = rawBytes; - sigFileSigners = new Hashtable(); - verifiedSigners = new Hashtable(); - sigFileData = new Hashtable(11); - pendingBlocks = new ArrayList(); - baos = new ByteArrayOutputStream(); + sigFileSigners = new HashMap(); + verifiedSigners = new HashMap(); manifestDigests = new ArrayList(); } /** - * This method scans to see which entry we're parsing and - * keeps various state information depending on what type of - * file is being parsed. + * This method scans to see which entry we're parsing and keeps + * various state information depending on the file being parsed. */ public void beginEntry(JarEntry je, ManifestEntryVerifier mev) throws IOException @@ -129,30 +112,6 @@ 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; @@ -188,11 +147,7 @@ class JarVerifier { throws IOException { if (b != -1) { - if (parsingBlockOrSF) { - baos.write(b); - } else { - mev.update((byte)b); - } + mev.update((byte)b); } else { processEntry(mev); } @@ -207,11 +162,7 @@ class JarVerifier { throws IOException { if (n != -1) { - if (parsingBlockOrSF) { - baos.write(b, off, n); - } else { - mev.update(b, off, n); - } + mev.update(b, off, n); } else { processEntry(mev); } @@ -223,101 +174,10 @@ class JarVerifier { private void processEntry(ManifestEntryVerifier mev) throws IOException { - 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 - } + JarEntry je = mev.getEntry(); + if ((je != null) && (je.signers == null)) { + je.signers = mev.verify(verifiedSigners, sigFileSigners); + je.certs = mapSignersToCertArray(je.signers); } } @@ -354,15 +214,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); @@ -408,11 +268,7 @@ 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, @@ -423,6 +279,41 @@ 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; @@ -553,10 +444,7 @@ class JarVerifier { * but this handles a CodeSource of any type, just in case. */ CodeSource[] sources = mapSignersToCodeSources(cs.getLocation(), getJarCodeSigners(), true); - List sourceList = new ArrayList(); - for (int i = 0; i < sources.length; i++) { - sourceList.add(sources[i]); - } + List sourceList = Arrays.asList(sources); int j = sourceList.indexOf(cs); if (j != -1) { CodeSigner[] match; diff --git a/jdk/src/share/classes/java/util/jar/Pack200.java b/jdk/src/share/classes/java/util/jar/Pack200.java index feefc2ba2fa..bb7cc2b47fe 100644 --- a/jdk/src/share/classes/java/util/jar/Pack200.java +++ b/jdk/src/share/classes/java/util/jar/Pack200.java @@ -181,8 +181,8 @@ public abstract class Pack200 { * The class files will not contain identical bytes, since the unpacker * is free to change minor class file features such as constant pool order. * However, the class files will be semantically identical, - * as specified in the Java Virtual Machine Specification - * <a href="http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html">http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html</a>. + * as specified in + * <cite>The Java™ Virtual Machine Specification</cite>. * <p> * By default, the packer does not change the order of JAR elements. * Also, the modification time and deflation hint of each diff --git a/jdk/src/share/classes/java/util/logging/FileHandler.java b/jdk/src/share/classes/java/util/logging/FileHandler.java index 4b2989a830a..fb3b67c4d92 100644 --- a/jdk/src/share/classes/java/util/logging/FileHandler.java +++ b/jdk/src/share/classes/java/util/logging/FileHandler.java @@ -409,22 +409,25 @@ public class FileHandler extends StreamHandler { // Try the next file. continue; } + boolean available; try { - FileLock fl = fc.tryLock(); - if (fl == null) { - // We failed to get the lock. Try next file. - continue; - } + available = fc.tryLock() != null; // We got the lock OK. } catch (IOException ix) { // We got an IOException while trying to get the lock. // This normally indicates that locking is not supported // on the target directory. We have to proceed without // getting a lock. Drop through. + available = true; } - // We got the lock. Remember it. - locks.put(lockFileName, lockFileName); - break; + if (available) { + // We got the lock. Remember it. + locks.put(lockFileName, lockFileName); + break; + } + + // We failed to get the lock. Try next file. + fc.close(); } } diff --git a/jdk/src/share/classes/java/util/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index 2648752da21..332590a00e4 100644 --- a/jdk/src/share/classes/java/util/regex/Pattern.java +++ b/jdk/src/share/classes/java/util/regex/Pattern.java @@ -369,13 +369,10 @@ import java.util.Arrays; * part of an unescaped construct. * * <p> Backslashes within string literals in Java source code are interpreted - * as required by the <a - * href="http://java.sun.com/docs/books/jls">Java Language - * Specification</a> as either <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#100850">Unicode - * escapes</a> or other <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#101089">character - * escapes</a>. It is therefore necessary to double backslashes in string + * as required by + * <cite>The Java™ Language Specification</cite> + * as either Unicode escapes (section 3.3) or other character escapes (section 3.10.6) + * It is therefore necessary to double backslashes in string * literals that represent regular expressions to protect them from * interpretation by the Java bytecode compiler. The string literal * <tt>"\b"</tt>, for example, matches a single backspace character when @@ -525,9 +522,9 @@ import java.util.Arrays; * Canonical Equivalents. * * <p> Unicode escape sequences such as <tt>\u2014</tt> in Java source code - * are processed as described in <a - * href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#100850">\u00A73.3</a> - * of the Java Language Specification. Such escape sequences are also + * 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>, diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java index 914a7ce73aa..9cfbe826629 100644 --- a/jdk/src/share/classes/java/util/zip/ZipFile.java +++ b/jdk/src/share/classes/java/util/zip/ZipFile.java @@ -31,11 +31,13 @@ import java.io.IOException; import java.io.EOFException; import java.io.File; import java.nio.charset.Charset; -import java.util.Vector; +import java.util.ArrayDeque; +import java.util.Deque; import java.util.Enumeration; -import java.util.Set; -import java.util.HashSet; +import java.util.HashMap; +import java.util.Map; import java.util.NoSuchElementException; +import java.util.WeakHashMap; import java.security.AccessController; import sun.security.action.GetPropertyAction; import static java.util.zip.ZipConstants64.*; @@ -54,7 +56,7 @@ class ZipFile implements ZipConstants, Closeable { private long jzfile; // address of jzfile data private String name; // zip file name private int total; // total number of entries - private boolean closeRequested; + private volatile boolean closeRequested = false; private static final int STORED = ZipEntry.STORED; private static final int DEFLATED = ZipEntry.DEFLATED; @@ -314,8 +316,9 @@ class ZipFile implements ZipConstants, Closeable { // freeEntry releases the C jzentry struct. private static native void freeEntry(long jzfile, long jzentry); - // the outstanding inputstreams that need to be closed. - private Set<InputStream> streams = new HashSet<>(); + // the outstanding inputstreams that need to be closed, + // mapped to the inflater objects they use. + private final Map<InputStream, Inflater> streams = new WeakHashMap<>(); /** * Returns an input stream for reading the contents of the specified @@ -351,51 +354,21 @@ class ZipFile implements ZipConstants, Closeable { switch (getEntryMethod(jzentry)) { case STORED: - streams.add(in); + synchronized (streams) { + streams.put(in, null); + } return in; case DEFLATED: - final ZipFileInputStream zfin = in; // MORE: Compute good size for inflater stream: long size = getEntrySize(jzentry) + 2; // Inflater likes a bit of slack if (size > 65536) size = 8192; if (size <= 0) size = 4096; - InputStream is = new InflaterInputStream(zfin, getInflater(), (int)size) { - private boolean isClosed = false; - - public void close() throws IOException { - if (!isClosed) { - super.close(); - releaseInflater(inf); - isClosed = true; - } - } - // Override fill() method to provide an extra "dummy" byte - // at the end of the input stream. This is required when - // using the "nowrap" Inflater option. - protected void fill() throws IOException { - if (eof) { - throw new EOFException( - "Unexpected end of ZLIB input stream"); - } - len = this.in.read(buf, 0, buf.length); - if (len == -1) { - buf[0] = 0; - len = 1; - eof = true; - } - inf.setInput(buf, 0, len); - } - private boolean eof; - - public int available() throws IOException { - if (isClosed) - return 0; - long avail = zfin.size() - inf.getBytesWritten(); - return avail > (long) Integer.MAX_VALUE ? - Integer.MAX_VALUE : (int) avail; - } - }; - streams.add(is); + Inflater inf = getInflater(); + InputStream is = + new ZipFileInflaterInputStream(in, inf, (int)size); + synchronized (streams) { + streams.put(is, inf); + } return is; default: throw new ZipException("invalid compression method"); @@ -403,36 +376,91 @@ class ZipFile implements ZipConstants, Closeable { } } + private class ZipFileInflaterInputStream extends InflaterInputStream { + private volatile boolean closeRequested = false; + private boolean eof = false; + private final ZipFileInputStream zfin; + + ZipFileInflaterInputStream(ZipFileInputStream zfin, Inflater inf, + int size) { + super(zfin, inf, size); + this.zfin = zfin; + } + + public void close() throws IOException { + if (closeRequested) + return; + closeRequested = true; + + super.close(); + Inflater inf; + synchronized (streams) { + inf = streams.remove(this); + } + if (inf != null) { + releaseInflater(inf); + } + } + + // Override fill() method to provide an extra "dummy" byte + // at the end of the input stream. This is required when + // using the "nowrap" Inflater option. + protected void fill() throws IOException { + if (eof) { + throw new EOFException("Unexpected end of ZLIB input stream"); + } + len = in.read(buf, 0, buf.length); + if (len == -1) { + buf[0] = 0; + len = 1; + eof = true; + } + inf.setInput(buf, 0, len); + } + + public int available() throws IOException { + if (closeRequested) + return 0; + long avail = zfin.size() - inf.getBytesWritten(); + return (avail > (long) Integer.MAX_VALUE ? + Integer.MAX_VALUE : (int) avail); + } + + protected void finalize() throws Throwable { + close(); + } + } + /* * Gets an inflater from the list of available inflaters or allocates * a new one. */ private Inflater getInflater() { - synchronized (inflaters) { - int size = inflaters.size(); - if (size > 0) { - Inflater inf = (Inflater)inflaters.remove(size - 1); - return inf; - } else { - return new Inflater(true); + Inflater inf; + synchronized (inflaterCache) { + while (null != (inf = inflaterCache.poll())) { + if (false == inf.ended()) { + return inf; + } } } + return new Inflater(true); } /* * Releases the specified inflater to the list of available inflaters. */ private void releaseInflater(Inflater inf) { - synchronized (inflaters) { - if (inf.ended()) - return; + if (false == inf.ended()) { inf.reset(); - inflaters.add(inf); + synchronized (inflaterCache) { + inflaterCache.add(inf); + } } } // List of available Inflater objects for decompression - private Vector inflaters = new Vector(); + private Deque<Inflater> inflaterCache = new ArrayDeque<>(); /** * Returns the path name of the ZIP file. @@ -540,14 +568,32 @@ class ZipFile implements ZipConstants, Closeable { * @throws IOException if an I/O error has occurred */ public void close() throws IOException { - synchronized (this) { - closeRequested = true; + if (closeRequested) + return; + closeRequested = true; - if (streams.size() !=0) { - Set<InputStream> copy = streams; - streams = new HashSet<>(); - for (InputStream is: copy) - is.close(); + synchronized (this) { + // Close streams, release their inflaters + synchronized (streams) { + if (false == streams.isEmpty()) { + Map<InputStream, Inflater> copy = new HashMap<>(streams); + streams.clear(); + for (Map.Entry<InputStream, Inflater> e : copy.entrySet()) { + e.getKey().close(); + Inflater inf = e.getValue(); + if (inf != null) { + inf.end(); + } + } + } + } + + // Release cached inflaters + Inflater inf; + synchronized (inflaterCache) { + while (null != (inf = inflaterCache.poll())) { + inf.end(); + } } if (jzfile != 0) { @@ -556,23 +602,13 @@ class ZipFile implements ZipConstants, Closeable { jzfile = 0; close(zf); - - // Release inflaters - synchronized (inflaters) { - int size = inflaters.size(); - for (int i = 0; i < size; i++) { - Inflater inf = (Inflater)inflaters.get(i); - inf.end(); - } - } } } } - /** - * Ensures that the <code>close</code> method of this ZIP file is - * called when there are no more references to it. + * Ensures that the system resources held by this ZipFile object are + * released when there are no more references to it. * * <p> * Since the time when GC would invoke this method is undetermined, @@ -611,6 +647,7 @@ class ZipFile implements ZipConstants, Closeable { * (possibly compressed) zip file entry. */ private class ZipFileInputStream extends InputStream { + private volatile boolean closeRequested = false; protected long jzentry; // address of jzentry data private long pos; // current position within entry data protected long rem; // number of remaining bytes within entry @@ -678,15 +715,25 @@ class ZipFile implements ZipConstants, Closeable { } public void close() { + if (closeRequested) + return; + closeRequested = true; + rem = 0; synchronized (ZipFile.this) { if (jzentry != 0 && ZipFile.this.jzfile != 0) { freeEntry(ZipFile.this.jzfile, jzentry); jzentry = 0; } + } + synchronized (streams) { streams.remove(this); } } + + protected void finalize() { + close(); + } } diff --git a/jdk/src/share/native/sun/font/layout/Features.h b/jdk/src/share/classes/javax/crypto/AEADBadTagException.java similarity index 60% rename from jdk/src/share/native/sun/font/layout/Features.h rename to jdk/src/share/classes/javax/crypto/AEADBadTagException.java index 13ab88aac34..8587fcf3ce6 100644 --- a/jdk/src/share/native/sun/font/layout/Features.h +++ b/jdk/src/share/classes/javax/crypto/AEADBadTagException.java @@ -1,4 +1,5 @@ /* + * 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 @@ -20,50 +21,35 @@ * 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. - * */ -/* - * - * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved - * - */ - -#ifndef __FEATURES_H -#define __FEATURES_H +package javax.crypto; /** - * \file - * \internal + * This exception is thrown when a {@link Cipher} operating in + * an AEAD mode (such as GCM/CCM) is unable to verify the supplied + * authentication tag. + * + * @since 1.7 */ +public class AEADBadTagException extends BadPaddingException { -#include "LETypes.h" -#include "OpenTypeTables.h" + private static final long serialVersionUID = -488059093241685509L; -U_NAMESPACE_BEGIN + /** + * Constructs a AEADBadTagException with no detail message. + */ + public AEADBadTagException() { + super(); + } -struct FeatureRecord -{ - ATag featureTag; - Offset featureTableOffset; -}; - -struct FeatureTable -{ - Offset featureParamsOffset; - le_uint16 lookupCount; - le_uint16 lookupListIndexArray[ANY_NUMBER]; -}; - -struct FeatureListTable -{ - le_uint16 featureCount; - FeatureRecord featureRecordArray[ANY_NUMBER]; - - const FeatureTable *getFeatureTable(le_uint16 featureIndex, LETag *featureTag) const; - - const FeatureTable *getFeatureTable(LETag featureTag) const; -}; - -U_NAMESPACE_END -#endif + /** + * Constructs a AEADBadTagException with the specified + * detail message. + * + * @param msg the detail message. + */ + public AEADBadTagException(String msg) { + super(msg); + } +} diff --git a/jdk/src/share/classes/javax/crypto/Cipher.java b/jdk/src/share/classes/javax/crypto/Cipher.java index eecab565fd3..bd17f023639 100644 --- a/jdk/src/share/classes/javax/crypto/Cipher.java +++ b/jdk/src/share/classes/javax/crypto/Cipher.java @@ -88,8 +88,35 @@ import sun.security.jca.GetInstance.Instance; * example, the SunJCE provider uses a default of 64 bits for DES.) * Thus, block ciphers can be turned into byte-oriented stream ciphers by * using an 8 bit mode such as CFB8 or OFB8. + * <p> + * Modes such as Authenticated Encryption with Associated Data (AEAD) + * provide authenticity assurances for both confidential data and + * Additional Associated Data (AAD) that is not encrypted. (Please see + * <a href="http://www.ietf.org/rfc/rfc5116.txt"> RFC 5116 </a> for more + * information on AEAD and AEAD algorithms such as GCM/CCM.) Both + * confidential and AAD data can be used when calculating the + * authentication tag (similar to a {@link Mac}). This tag is appended + * to the ciphertext during encryption, and is verified on decryption. + * <p> + * AEAD modes such as GCM/CCM perform all AAD authenticity calculations + * before starting the ciphertext authenticity calculations. To avoid + * implementations having to internally buffer ciphertext, all AAD data + * must be supplied to GCM/CCM implementations (via the {@code + * updateAAD} methods) <b>before</b> the ciphertext is processed (via + * the {@code update} and {@code doFinal} methods). * - * <p> Every implementation of the Java platform is required to support + * <pre> + * GCMParameterSpec s = new GCMParameterSpec(...); + * cipher.init(..., s); + * + * // If the GCMParameterSpec is needed again + * cipher.getParameters().getParameterSpec(GCMParameterSpec.class)); + * + * cipher.updateAAD(...); // AAD + * cipher.update(...); // Multi-part update + * cipher.doFinal(...); // conclusion of operation + * </pre> + * Every implementation of the Java platform is required to support * the following standard <code>Cipher</code> transformations with the keysizes * in parentheses: * <ul> @@ -894,7 +921,7 @@ public class Cipher { * <code>inputLen</code> (in bytes). * * <p>This call takes into account any unprocessed (buffered) data from a - * previous <code>update</code> call, and padding. + * previous <code>update</code> call, padding, and AEAD tagging. * * <p>The actual output length of the next <code>update</code> or * <code>doFinal</code> call may be smaller than the length returned by @@ -1090,6 +1117,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them using the {@link SecureRandom <code>SecureRandom</code>} @@ -1110,8 +1142,8 @@ public class Cipher { * @param key the key * * @exception InvalidKeyException if the given key is inappropriate for - * initializing this cipher, or if this cipher is being initialized for - * decryption and requires algorithm parameters that cannot be + * initializing this cipher, or requires + * algorithm parameters that cannot be * determined from the given key, or if the given key has a keysize that * exceeds the maximum allowable keysize (as determined from the * configured jurisdiction policy files). @@ -1138,6 +1170,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -1155,8 +1192,8 @@ public class Cipher { * @param random the source of randomness * * @exception InvalidKeyException if the given key is inappropriate for - * initializing this cipher, or if this cipher is being initialized for - * decryption and requires algorithm parameters that cannot be + * initializing this cipher, or requires + * algorithm parameters that cannot be * determined from the given key, or if the given key has a keysize that * exceeds the maximum allowable keysize (as determined from the * configured jurisdiction policy files). @@ -1202,6 +1239,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them using the {@link SecureRandom <code>SecureRandom</code>} @@ -1227,7 +1269,7 @@ public class Cipher { * keysize (as determined from the configured jurisdiction policy files). * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or this cipher is being initialized for decryption and requires + * or this cipher requires * algorithm parameters and <code>params</code> is null, or the given * algorithm parameters imply a cryptographic strength that would exceed * the legal limits (as determined from the configured jurisdiction @@ -1258,6 +1300,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -1280,7 +1327,7 @@ public class Cipher { * keysize (as determined from the configured jurisdiction policy files). * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or this cipher is being initialized for decryption and requires + * or this cipher requires * algorithm parameters and <code>params</code> is null, or the given * algorithm parameters imply a cryptographic strength that would exceed * the legal limits (as determined from the configured jurisdiction @@ -1323,6 +1370,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them using the {@link SecureRandom <code>SecureRandom</code>} @@ -1348,7 +1400,7 @@ public class Cipher { * keysize (as determined from the configured jurisdiction policy files). * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or this cipher is being initialized for decryption and requires + * or this cipher requires * algorithm parameters and <code>params</code> is null, or the given * algorithm parameters imply a cryptographic strength that would exceed * the legal limits (as determined from the configured jurisdiction @@ -1379,6 +1431,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -1401,7 +1458,7 @@ public class Cipher { * keysize (as determined from the configured jurisdiction policy files). * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or this cipher is being initialized for decryption and requires + * or this cipher requires * algorithm parameters and <code>params</code> is null, or the given * algorithm parameters imply a cryptographic strength that would exceed * the legal limits (as determined from the configured jurisdiction @@ -1444,7 +1501,7 @@ public class Cipher { * derived from the public key in the given certificate, the underlying * cipher * implementation is supposed to generate the required parameters itself - * (using provider-specific default or ramdom values) if it is being + * (using provider-specific default or random values) if it is being * initialized for encryption or key wrapping, and raise an <code> * InvalidKeyException</code> if it is being initialized for decryption or * key unwrapping. @@ -1452,6 +1509,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them using the @@ -1474,8 +1536,7 @@ public class Cipher { * * @exception InvalidKeyException if the public key in the given * certificate is inappropriate for initializing this cipher, or this - * cipher is being initialized for decryption or unwrapping keys and - * requires algorithm parameters that cannot be determined from the + * cipher requires algorithm parameters that cannot be determined from the * public key in the given certificate, or the keysize of the public key * in the given certificate has a keysize that exceeds the maximum * allowable keysize (as determined by the configured jurisdiction policy @@ -1518,6 +1579,11 @@ public class Cipher { * {@link #getParameters() getParameters} or * {@link #getIV() getIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -1536,7 +1602,7 @@ public class Cipher { * * @exception InvalidKeyException if the public key in the given * certificate is inappropriate for initializing this cipher, or this - * cipher is being initialized for decryption or unwrapping keys and + * cipher * requires algorithm parameters that cannot be determined from the * public key in the given certificate, or the keysize of the public key * in the given certificate has a keysize that exceeds the maximum @@ -1865,6 +1931,9 @@ public class Cipher { * <p>Input data that may have been buffered during a previous * <code>update</code> operation is processed, with padding (if requested) * being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in a new buffer. * * <p>Upon finishing, this method resets this cipher object to the state @@ -1888,6 +1957,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final byte[] doFinal() throws IllegalBlockSizeException, BadPaddingException { @@ -1904,6 +1976,9 @@ public class Cipher { * <p>Input data that may have been buffered during a previous * <code>update</code> operation is processed, with padding (if requested) * being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in the <code>output</code> buffer, starting at * <code>outputOffset</code> inclusive. * @@ -1940,6 +2015,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final int doFinal(byte[] output, int outputOffset) throws IllegalBlockSizeException, ShortBufferException, @@ -1963,6 +2041,9 @@ public class Cipher { * <p>The bytes in the <code>input</code> buffer, and any input bytes that * may have been buffered during a previous <code>update</code> operation, * are processed, with padding (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in a new buffer. * * <p>Upon finishing, this method resets this cipher object to the state @@ -1988,6 +2069,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final byte[] doFinal(byte[] input) throws IllegalBlockSizeException, BadPaddingException { @@ -2011,6 +2095,9 @@ public class Cipher { * buffer, starting at <code>inputOffset</code> inclusive, and any input * bytes that may have been buffered during a previous <code>update</code> * operation, are processed, with padding (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in a new buffer. * * <p>Upon finishing, this method resets this cipher object to the state @@ -2039,6 +2126,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final byte[] doFinal(byte[] input, int inputOffset, int inputLen) throws IllegalBlockSizeException, BadPaddingException { @@ -2063,6 +2153,9 @@ public class Cipher { * buffer, starting at <code>inputOffset</code> inclusive, and any input * bytes that may have been buffered during a previous <code>update</code> * operation, are processed, with padding (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in the <code>output</code> buffer. * * <p>If the <code>output</code> buffer is too small to hold the result, @@ -2105,6 +2198,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) @@ -2133,6 +2229,9 @@ public class Cipher { * bytes that may have been buffered during a previous * <code>update</code> operation, are processed, with padding * (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in the <code>output</code> buffer, starting at * <code>outputOffset</code> inclusive. * @@ -2178,6 +2277,9 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) @@ -2203,8 +2305,11 @@ public class Cipher { * depending on how this cipher was initialized. * * <p>All <code>input.remaining()</code> bytes starting at - * <code>input.position()</code> are processed. The result is stored - * in the output buffer. + * <code>input.position()</code> are processed. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. + * The result is stored in the output buffer. * Upon return, the input buffer's position will be equal * to its limit; its limit will not have changed. The output buffer's * position will have advanced by n, where n is the value returned @@ -2250,6 +2355,10 @@ public class Cipher { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value + * * @since 1.5 */ public final int doFinal(ByteBuffer input, ByteBuffer output) @@ -2441,4 +2550,128 @@ public class Cipher { CryptoPermission cp = getConfiguredPermission(transformation); return cp.getAlgorithmParameterSpec(); } + + /** + * Continues a multi-part update of the Additional Authentication + * Data (AAD). + * <p> + * Calls to this method provide AAD to the cipher when operating in + * modes such as AEAD (GCM/CCM). If this cipher is operating in + * either GCM or CCM mode, all AAD must be supplied before beginning + * operations on the ciphertext (via the {@code update} and {@code + * doFinal} methods). + * + * @param src the buffer containing the Additional Authentication Data + * + * @throws IllegalArgumentException if the {@code src} + * byte array is null + * @throws IllegalStateException if this cipher is in a wrong state + * (e.g., has not been initialized), does not accept AAD, or if + * operating in either GCM or CCM mode and one of the {@code update} + * methods has already been called for the active + * encryption/decryption operation + * @throws UnsupportedOperationException if the corresponding method + * in the {@code CipherSpi} has not been overridden by an + * implementation + * + * @since 1.7 + */ + public final void updateAAD(byte[] src) { + if (src == null) { + throw new IllegalArgumentException("src buffer is null"); + } + + updateAAD(src, 0, src.length); + } + + /** + * Continues a multi-part update of the Additional Authentication + * Data (AAD), using a subset of the provided buffer. + * <p> + * Calls to this method provide AAD to the cipher when operating in + * modes such as AEAD (GCM/CCM). If this cipher is operating in + * either GCM or CCM mode, all AAD must be supplied before beginning + * operations on the ciphertext (via the {@code update} and {@code + * doFinal} methods). + * + * @param src the buffer containing the AAD + * @param offset the offset in {@code src} where the AAD input starts + * @param len the number of AAD bytes + * + * @throws IllegalArgumentException if the {@code src} + * byte array is null, or the {@code offset} or {@code length} + * is less than 0, or the sum of the {@code offset} and + * {@code len} is greater than the length of the + * {@code src} byte array + * @throws IllegalStateException if this cipher is in a wrong state + * (e.g., has not been initialized), does not accept AAD, or if + * operating in either GCM or CCM mode and one of the {@code update} + * methods has already been called for the active + * encryption/decryption operation + * @throws UnsupportedOperationException if the corresponding method + * in the {@code CipherSpi} has not been overridden by an + * implementation + * + * @since 1.7 + */ + public final void updateAAD(byte[] src, int offset, int len) { + checkCipherState(); + + // Input sanity check + if ((src == null) || (offset < 0) || (len < 0) + || ((len + offset) > src.length)) { + throw new IllegalArgumentException("Bad arguments"); + } + + chooseFirstProvider(); + if (len == 0) { + return; + } + spi.engineUpdateAAD(src, offset, len); + } + + /** + * Continues a multi-part update of the Additional Authentication + * Data (AAD). + * <p> + * Calls to this method provide AAD to the cipher when operating in + * modes such as AEAD (GCM/CCM). If this cipher is operating in + * either GCM or CCM mode, all AAD must be supplied before beginning + * operations on the ciphertext (via the {@code update} and {@code + * doFinal} methods). + * <p> + * All {@code src.remaining()} bytes starting at + * {@code src.position()} are processed. + * Upon return, the input buffer's position will be equal + * to its limit; its limit will not have changed. + * + * @param src the buffer containing the AAD + * + * @throws IllegalArgumentException if the {@code src ByteBuffer} + * is null + * @throws IllegalStateException if this cipher is in a wrong state + * (e.g., has not been initialized), does not accept AAD, or if + * operating in either GCM or CCM mode and one of the {@code update} + * methods has already been called for the active + * encryption/decryption operation + * @throws UnsupportedOperationException if the corresponding method + * in the {@code CipherSpi} has not been overridden by an + * implementation + * + * @since 1.7 + */ + public final void updateAAD(ByteBuffer src) { + checkCipherState(); + + // Input sanity check + if (src == null) { + throw new IllegalArgumentException("src ByteBuffer is null"); + } + + chooseFirstProvider(); + if (src.remaining() == 0) { + return; + } + spi.engineUpdateAAD(src); + } } diff --git a/jdk/src/share/classes/javax/crypto/CipherSpi.java b/jdk/src/share/classes/javax/crypto/CipherSpi.java index f46cafa955d..c3442ea2d81 100644 --- a/jdk/src/share/classes/javax/crypto/CipherSpi.java +++ b/jdk/src/share/classes/javax/crypto/CipherSpi.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, 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 @@ -266,7 +266,7 @@ public abstract class CipherSpi { * <code>inputLen</code> (in bytes). * * <p>This call takes into account any unprocessed (buffered) data from a - * previous <code>update</code> call, and padding. + * previous <code>update</code> call, padding, and AEAD tagging. * * <p>The actual output length of the next <code>update</code> or * <code>doFinal</code> call may be smaller than the length returned by @@ -322,6 +322,11 @@ public abstract class CipherSpi { * {@link #engineGetParameters() engineGetParameters} or * {@link #engineGetIV() engineGetIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -339,8 +344,8 @@ public abstract class CipherSpi { * @param random the source of randomness * * @exception InvalidKeyException if the given key is inappropriate for - * initializing this cipher, or if this cipher is being initialized for - * decryption and requires algorithm parameters that cannot be + * initializing this cipher, or requires + * algorithm parameters that cannot be * determined from the given key. */ protected abstract void engineInit(int opmode, Key key, @@ -366,6 +371,11 @@ public abstract class CipherSpi { * {@link #engineGetParameters() engineGetParameters} or * {@link #engineGetIV() engineGetIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -387,7 +397,7 @@ public abstract class CipherSpi { * initializing this cipher * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or if this cipher is being initialized for decryption and requires + * or if this cipher requires * algorithm parameters and <code>params</code> is null. */ protected abstract void engineInit(int opmode, Key key, @@ -414,6 +424,11 @@ public abstract class CipherSpi { * {@link #engineGetParameters() engineGetParameters} or * {@link #engineGetIV() engineGetIV} (if the parameter is an IV). * + * <p>If this cipher requires algorithm parameters that cannot be + * derived from the input parameters, and there are no reasonable + * provider-specific default values, initialization will + * necessarily fail. + * * <p>If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from <code>random</code>. @@ -435,7 +450,7 @@ public abstract class CipherSpi { * initializing this cipher * @exception InvalidAlgorithmParameterException if the given algorithm * parameters are inappropriate for this cipher, - * or if this cipher is being initialized for decryption and requires + * or if this cipher requires * algorithm parameters and <code>params</code> is null. */ protected abstract void engineInit(int opmode, Key key, @@ -548,6 +563,9 @@ public abstract class CipherSpi { * buffer, starting at <code>inputOffset</code> inclusive, and any input * bytes that may have been buffered during a previous <code>update</code> * operation, are processed, with padding (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in a new buffer. * * <p>Upon finishing, this method resets this cipher object to the state @@ -575,6 +593,9 @@ public abstract class CipherSpi { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ protected abstract byte[] engineDoFinal(byte[] input, int inputOffset, int inputLen) @@ -590,6 +611,9 @@ public abstract class CipherSpi { * buffer, starting at <code>inputOffset</code> inclusive, and any input * bytes that may have been buffered during a previous <code>update</code> * operation, are processed, with padding (if requested) being applied. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. * The result is stored in the <code>output</code> buffer, starting at * <code>outputOffset</code> inclusive. * @@ -626,6 +650,9 @@ public abstract class CipherSpi { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value */ protected abstract int engineDoFinal(byte[] input, int inputOffset, int inputLen, byte[] output, @@ -640,8 +667,11 @@ public abstract class CipherSpi { * initialized. * * <p>All <code>input.remaining()</code> bytes starting at - * <code>input.position()</code> are processed. The result is stored - * in the output buffer. + * <code>input.position()</code> are processed. + * If an AEAD mode such as GCM/CCM is being used, the authentication + * tag is appended in the case of encryption, or verified in the + * case of decryption. + * The result is stored in the output buffer. * Upon return, the input buffer's position will be equal * to its limit; its limit will not have changed. The output buffer's * position will have advanced by n, where n is the value returned @@ -678,6 +708,9 @@ public abstract class CipherSpi { * @exception BadPaddingException if this cipher is in decryption mode, * and (un)padding has been requested, but the decrypted data is not * bounded by the appropriate padding bytes + * @exception AEADBadTagException if this cipher is decrypting in an + * AEAD mode (such as GCM/CCM), and the received authentication tag + * does not match the calculated value * * @throws NullPointerException if either parameter is <CODE>null</CODE> * @since 1.5 @@ -892,4 +925,67 @@ public abstract class CipherSpi { { throw new UnsupportedOperationException(); } + + /** + * Continues a multi-part update of the Additional Authentication + * Data (AAD), using a subset of the provided buffer. + * <p> + * Calls to this method provide AAD to the cipher when operating in + * modes such as AEAD (GCM/CCM). If this cipher is operating in + * either GCM or CCM mode, all AAD must be supplied before beginning + * operations on the ciphertext (via the {@code update} and {@code + * doFinal} methods). + * + * @param src the buffer containing the AAD + * @param offset the offset in {@code src} where the AAD input starts + * @param len the number of AAD bytes + * + * @throws IllegalStateException if this cipher is in a wrong state + * (e.g., has not been initialized), does not accept AAD, or if + * operating in either GCM or CCM mode and one of the {@code update} + * methods has already been called for the active + * encryption/decryption operation + * @throws UnsupportedOperationException if this method + * has not been overridden by an implementation + * + * @since 1.7 + */ + protected void engineUpdateAAD(byte[] src, int offset, int len) { + throw new UnsupportedOperationException( + "The underlying Cipher implementation " + + "does not support this method"); + } + + /** + * Continues a multi-part update of the Additional Authentication + * Data (AAD). + * <p> + * Calls to this method provide AAD to the cipher when operating in + * modes such as AEAD (GCM/CCM). If this cipher is operating in + * either GCM or CCM mode, all AAD must be supplied before beginning + * operations on the ciphertext (via the {@code update} and {@code + * doFinal} methods). + * <p> + * All {@code src.remaining()} bytes starting at + * {@code src.position()} are processed. + * Upon return, the input buffer's position will be equal + * to its limit; its limit will not have changed. + * + * @param src the buffer containing the AAD + * + * @throws IllegalStateException if this cipher is in a wrong state + * (e.g., has not been initialized), does not accept AAD, or if + * operating in either GCM or CCM mode and one of the {@code update} + * methods has already been called for the active + * encryption/decryption operation + * @throws UnsupportedOperationException if this method + * has not been overridden by an implementation + * + * @since 1.7 + */ + protected void engineUpdateAAD(ByteBuffer src) { + throw new UnsupportedOperationException( + "The underlying Cipher implementation " + + "does not support this method"); + } } diff --git a/jdk/src/share/classes/javax/crypto/spec/GCMParameterSpec.java b/jdk/src/share/classes/javax/crypto/spec/GCMParameterSpec.java new file mode 100644 index 00000000000..01cb1cc7028 --- /dev/null +++ b/jdk/src/share/classes/javax/crypto/spec/GCMParameterSpec.java @@ -0,0 +1,149 @@ +/* + * 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.crypto.spec; + +import java.security.spec.AlgorithmParameterSpec; + +/** + * Specifies the set of parameters required by a {@link + * javax.crypto.Cipher} using the Galois/Counter Mode (GCM) mode. + * <p> + * Simple block cipher modes (such as CBC) generally require only an + * initialization vector (such as {@code IvParameterSpec}), + * but GCM needs these parameters: + * <ul> + * <li>{@code IV}: Initialization Vector (IV) </li> + * <li>{@code tLen}: length (in bits) of authentication tag T</li> + * </ul> + * <p> + * In addition to the parameters described here, other GCM inputs/output + * (Additional Authenticated Data (AAD), Keys, block ciphers, + * plain/ciphertext and authentication tags) are handled in the {@code + * Cipher} class. + <p> + * Please see <a href="http://www.ietf.org/rfc/rfc5116.txt"> RFC 5116 + * </a> for more information on the Authenticated Encryption with + * Associated Data (AEAD) algorithm, and <a href= + * "http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf"> + * NIST Special Publication 800-38D</a>, "NIST Recommendation for Block + * Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC." + * <p> + * The GCM specification states that {@code tLen} may only have the + * values {128, 120, 112, 104, 96}, or {64, 32} for certain + * applications. Other values can be specified for this class, but not + * all CSP implementations will support them. + * + * @see javax.crypto.Cipher + * + * @since 1.7 + */ +public class GCMParameterSpec implements AlgorithmParameterSpec { + + // Initialization Vector. Could use IvParameterSpec, but that + // would add extra copies. + private byte[] iv; + + // Required Tag length (in bits). + private int tLen; + + /** + * Constructs a GCMParameterSpec using the specified authentication + * tag bit-length and IV buffer. + * + * @param tLen the authentication tag length (in bits) + * @param src the IV source buffer. The contents of the buffer are + * copied to protect against subsequent modification. + * + * @throws IllegalArgumentException if {@code tLen} is negative, + * or {@code src} is null. + */ + public GCMParameterSpec(int tLen, byte[] src) { + if (src == null) { + throw new IllegalArgumentException("src array is null"); + } + + init(tLen, src, 0, src.length); + } + + /** + * Constructs a GCMParameterSpec object using the specified + * authentication tag bit-length and a subset of the specified + * buffer as the IV. + * + * @param tLen the authentication tag length (in bits) + * @param src the IV source buffer. The contents of the + * buffer are copied to protect against subsequent modification. + * @param offset the offset in {@code src} where the IV starts + * @param len the number of IV bytes + * + * @throws IllegalArgumentException if {@code tLen} is negative, + * {@code src} is null, {@code len} or {@code offset} is negative, + * or the sum of {@code offset} and {@code len} is greater than the + * length of the {@code src} byte array. + */ + public GCMParameterSpec(int tLen, byte[] src, int offset, int len) { + init(tLen, src, offset, len); + } + + /* + * Check input parameters. + */ + private void init(int tLen, byte[] src, int offset, int len) { + if (tLen < 0) { + throw new IllegalArgumentException( + "Length argument is negative"); + } + this.tLen = tLen; + + // Input sanity check + if ((src == null) ||(len < 0) || (offset < 0) + || ((len + offset) > src.length)) { + throw new IllegalArgumentException("Invalid buffer arguments"); + } + + iv = new byte[len]; + System.arraycopy(src, offset, iv, 0, len); + } + + /** + * Returns the authentication tag length. + * + * @return the authentication tag length (in bits) + */ + public int getTLen() { + return tLen; + } + + /** + * Returns the Initialization Vector (IV). + * + * @return the IV. Creates a new array each time this method + * is called. + */ + public byte[] getIV() { + return iv.clone(); + } +} diff --git a/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java b/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java index 3f20afcf5bf..79ce155f23b 100644 --- a/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java +++ b/jdk/src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java @@ -214,7 +214,7 @@ public class FileCacheImageOutputStream extends ImageOutputStreamImpl { } /** - * Closes this <code>FileCacheImageOututStream</code>. All + * Closes this <code>FileCacheImageOutputStream</code>. All * pending data is flushed to the output, and the cache file * is closed and removed. The destination <code>OutputStream</code> * is not closed. diff --git a/jdk/src/share/classes/javax/management/remote/package.html b/jdk/src/share/classes/javax/management/remote/package.html index e21a222892e..547fecac662 100644 --- a/jdk/src/share/classes/javax/management/remote/package.html +++ b/jdk/src/share/classes/javax/management/remote/package.html @@ -154,11 +154,8 @@ rmi://192.18.1.9 username 1 </pre> <p>The formal grammar for connection ids that follow this - convention is as follows (using the <a - href="http://java.sun.com/docs/books/jls/second_edition/html/grammars.doc.html#90767">grammar - notation</a> from <em>The Java Language Specification, Second - Edition</em>):</p> - + convention is as follows (using the grammar notation from section 2.4 of + <em>The Java™ Language Specification</em>):</p> <pre> <em>ConnectionId:</em> <em>Protocol</em> : <em>ClientAddress<sub>opt</sub></em> Space <em>ClientId<sub>opt</sub></em> Space <em>ArbitraryText</em> diff --git a/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java b/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java index 92f103254a6..cf0bbecf386 100644 --- a/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java +++ b/jdk/src/share/classes/javax/sql/rowset/BaseRowSet.java @@ -296,32 +296,32 @@ import javax.sql.rowset.serial.*; public abstract class BaseRowSet implements Serializable, Cloneable { -/** - * A constant indicating to a <code>RowSetReaderImpl</code> object - * that a given parameter is a Unicode stream. This - * <code>RowSetReaderImpl</code> object is provided as an extension of the - * <code>SyncProvider</code> abstract class defined in the - * <code>SyncFactory</code> static factory SPI mechanism. - */ -public static final int UNICODE_STREAM_PARAM = 0; + /** + * A constant indicating to a <code>RowSetReaderImpl</code> object + * that a given parameter is a Unicode stream. This + * <code>RowSetReaderImpl</code> object is provided as an extension of the + * <code>SyncProvider</code> abstract class defined in the + * <code>SyncFactory</code> static factory SPI mechanism. + */ + public static final int UNICODE_STREAM_PARAM = 0; -/** - * A constant indicating to a <code>RowSetReaderImpl</code> object - * that a given parameter is a binary stream. A - * <code>RowSetReaderImpl</code> object is provided as an extension of the - * <code>SyncProvider</code> abstract class defined in the - * <code>SyncFactory</code> static factory SPI mechanism. - */ -public static final int BINARY_STREAM_PARAM = 1; + /** + * A constant indicating to a <code>RowSetReaderImpl</code> object + * that a given parameter is a binary stream. A + * <code>RowSetReaderImpl</code> object is provided as an extension of the + * <code>SyncProvider</code> abstract class defined in the + * <code>SyncFactory</code> static factory SPI mechanism. + */ + public static final int BINARY_STREAM_PARAM = 1; -/** - * A constant indicating to a <code>RowSetReaderImpl</code> object - * that a given parameter is an ASCII stream. A - * <code>RowSetReaderImpl</code> object is provided as an extension of the - * <code>SyncProvider</code> abstract class defined in the - * <code>SyncFactory</code> static factory SPI mechanism. - */ -public static final int ASCII_STREAM_PARAM = 2; + /** + * A constant indicating to a <code>RowSetReaderImpl</code> object + * that a given parameter is an ASCII stream. A + * <code>RowSetReaderImpl</code> object is provided as an extension of the + * <code>SyncProvider</code> abstract class defined in the + * <code>SyncFactory</code> static factory SPI mechanism. + */ + public static final int ASCII_STREAM_PARAM = 2; /** * The <code>InputStream</code> object that will be @@ -505,21 +505,21 @@ public static final int ASCII_STREAM_PARAM = 2; * custom mapping of user-defined types. * @serial */ - private Map map; + private Map<String, Class<?>> map; /** * A <code>Vector</code> object that holds the list of listeners * that have registered with this <code>RowSet</code> object. * @serial */ - private Vector listeners; + private Vector<RowSetListener> listeners; /** * A <code>Vector</code> object that holds the parameters set * for this <code>RowSet</code> object's current command. * @serial */ - private Hashtable params; // could be transient? + private Hashtable<Integer, Object> params; // could be transient? /** * Constructs a new <code>BaseRowSet</code> object initialized with @@ -529,7 +529,7 @@ public static final int ASCII_STREAM_PARAM = 2; */ public BaseRowSet() { // allocate the listeners collection - listeners = new Vector(); + listeners = new Vector<RowSetListener>(); } /** @@ -542,7 +542,7 @@ public static final int ASCII_STREAM_PARAM = 2; * a <code>RowSet</code> implementation extending this class. */ protected void initParams() { - params = new Hashtable(); + params = new Hashtable<Integer, Object>(); } //-------------------------------------------------------------------- diff --git a/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java b/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java index cd18b2afd91..f4591c09cb5 100644 --- a/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java +++ b/jdk/src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java @@ -912,7 +912,12 @@ public class RowSetMetaDataImpl implements RowSetMetaData, Serializable { * @since 1.6 */ public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException { - return (T)this; + + if(isWrapperFor(iface)) { + return iface.cast(this); + } else { + throw new SQLException("unwrap failed for:"+ iface); + } } /** @@ -929,8 +934,9 @@ public class RowSetMetaDataImpl implements RowSetMetaData, Serializable { * @throws java.sql.SQLException if an error occurs while determining whether this is a wrapper * for an object with the given interface. * @since 1.6 - */ public boolean isWrapperFor(Class<?> interfaces) throws SQLException { - return false; + */ + public boolean isWrapperFor(Class<?> interfaces) throws SQLException { + return interfaces.isInstance(this); } static final long serialVersionUID = 6893806403181801867L; diff --git a/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java b/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java index 4b81baa5756..c161eded789 100644 --- a/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java +++ b/jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java @@ -204,9 +204,9 @@ public class RowSetProvider { * */ static private ClassLoader getContextClassLoader() throws SecurityException { - return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction() { + return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() { - public Object run() { + public ClassLoader run() { ClassLoader cl = null; cl = Thread.currentThread().getContextClassLoader(); @@ -284,9 +284,9 @@ public class RowSetProvider { static private String getSystemProperty(final String propName) { String property = null; try { - property = (String) AccessController.doPrivileged(new PrivilegedAction() { + property = AccessController.doPrivileged(new PrivilegedAction<String>() { - public Object run() { + public String run() { return System.getProperty(propName); } }); diff --git a/jdk/src/share/classes/javax/swing/plaf/LayerUI.java b/jdk/src/share/classes/javax/swing/plaf/LayerUI.java index 0bbac406526..f9a93d32e84 100644 --- a/jdk/src/share/classes/javax/swing/plaf/LayerUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/LayerUI.java @@ -708,8 +708,8 @@ public class LayerUI<V extends Component> * * @param x the x value of the region to be painted * @param y the y value of the region to be painted - * @param w the width of the region to be painted - * @param h the height of the region to be painted + * @param width the width of the region to be painted + * @param height the height of the region to be painted * * @see JComponent#paintImmediately(int, int, int, int) */ 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}"}, diff --git a/jdk/src/share/classes/sun/misc/FloatingDecimal.java b/jdk/src/share/classes/sun/misc/FloatingDecimal.java index f6a41301f54..7c621f91a97 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 class FloatingDecimal{ +public strictfp class FloatingDecimal{ boolean isExceptional; boolean isNegative; int decExponent; diff --git a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java index e9aac45f08e..9d54b098252 100644 --- a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java +++ b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, 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 @@ -30,7 +30,7 @@ import sun.misc.DoubleConsts; import sun.misc.FloatConsts; import java.util.regex.*; -public class FormattedFloatingDecimal{ +public strictfp class FormattedFloatingDecimal{ boolean isExceptional; boolean isNegative; int decExponent; // value set at construction, then immutable diff --git a/jdk/src/share/classes/sun/misc/FpUtils.java b/jdk/src/share/classes/sun/misc/FpUtils.java index 21ea7c29a44..af84f24cb86 100644 --- a/jdk/src/share/classes/sun/misc/FpUtils.java +++ b/jdk/src/share/classes/sun/misc/FpUtils.java @@ -531,10 +531,9 @@ public class FpUtils { * Return {@code d} × * 2<sup>{@code scale_factor}</sup> rounded as if performed * by a single correctly rounded floating-point multiply to a - * member of the double value set. See <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9208">§4.2.3</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a> for a discussion of floating-point + * member of the double value set. See section 4.2.3 of + * <cite>The Java™ Language Specification</cite> + * for a discussion of floating-point * value sets. If the exponent of the result is between the * {@code double}'s minimum exponent and maximum exponent, * the answer is calculated exactly. If the exponent of the @@ -641,11 +640,10 @@ public class FpUtils { * Return {@code f} × * 2<sup>{@code scale_factor}</sup> rounded as if performed * by a single correctly rounded floating-point multiply to a - * member of the float value set. See <a - * href="http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9208">§4.2.3</a> - * of the <a href="http://java.sun.com/docs/books/jls/html/">Java - * Language Specification</a> for a discussion of floating-point - * value set. If the exponent of the result is between the + * member of the float value set. See section 4.2.3 of + * <cite>The Java™ Language Specification</cite> + * for a discussion of floating-point + * value sets. If the exponent of the result is between the * {@code float}'s minimum exponent and maximum exponent, the * answer is calculated exactly. If the exponent of the result * would be larger than {@code float}'s maximum exponent, an diff --git a/jdk/src/share/classes/sun/net/www/protocol/jar/Handler.java b/jdk/src/share/classes/sun/net/www/protocol/jar/Handler.java index 343db5081e6..62686c6b99e 100644 --- a/jdk/src/share/classes/sun/net/www/protocol/jar/Handler.java +++ b/jdk/src/share/classes/sun/net/www/protocol/jar/Handler.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2000, 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 @@ -25,9 +25,8 @@ package sun.net.www.protocol.jar; -import java.io.*; +import java.io.IOException; import java.net.*; -import java.util.*; import sun.net.www.ParseUtil; /* @@ -42,7 +41,7 @@ public class Handler extends java.net.URLStreamHandler { return new JarURLConnection(u, this); } - private int indexOfBangSlash(String spec) { + private static int indexOfBangSlash(String spec) { int indexOfBang = spec.length(); while((indexOfBang = spec.lastIndexOf('!', indexOfBang)) != -1) { if ((indexOfBang != (spec.length() - 1)) && @@ -55,6 +54,75 @@ public class Handler extends java.net.URLStreamHandler { return -1; } + /** + * Compare two jar URLs + */ + @Override + protected boolean sameFile(URL u1, URL u2) { + if (!u1.getProtocol().equals("jar") || !u2.getProtocol().equals("jar")) + return false; + + String file1 = u1.getFile(); + String file2 = u2.getFile(); + int sep1 = file1.indexOf(separator); + int sep2 = file2.indexOf(separator); + + if (sep1 == -1 || sep2 == -1) { + return super.sameFile(u1, u2); + } + + String entry1 = file1.substring(sep1 + 2); + String entry2 = file2.substring(sep2 + 2); + + if (!entry1.equals(entry2)) + return false; + + URL enclosedURL1 = null, enclosedURL2 = null; + try { + enclosedURL1 = new URL(file1.substring(0, sep1)); + enclosedURL2 = new URL(file2.substring(0, sep2)); + } catch (MalformedURLException unused) { + return super.sameFile(u1, u2); + } + + if (!super.sameFile(enclosedURL1, enclosedURL2)) { + return false; + } + + return true; + } + + @Override + protected int hashCode(URL u) { + int h = 0; + + String protocol = u.getProtocol(); + if (protocol != null) + h += protocol.hashCode(); + + String file = u.getFile(); + int sep = file.indexOf(separator); + + if (sep == -1) + return h + file.hashCode(); + + URL enclosedURL = null; + String fileWithoutEntry = file.substring(0, sep); + try { + enclosedURL = new URL(fileWithoutEntry); + h += enclosedURL.hashCode(); + } catch (MalformedURLException unused) { + h += fileWithoutEntry.hashCode(); + } + + String entry = file.substring(sep + 2); + h += entry.hashCode(); + + return h; + } + + + @Override protected void parseURL(URL url, String spec, int start, int limit) { String file = null; diff --git a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java index 053f23977c7..2a0c0eb5257 100644 --- a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java +++ b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java @@ -388,9 +388,8 @@ class DatagramChannelImpl // we must instead use a nonempty buffer, otherwise the call // will not block waiting for a datagram on some platforms. int newSize = Math.max(rem, 1); - ByteBuffer bb = null; + ByteBuffer bb = Util.getTemporaryDirectBuffer(newSize); try { - bb = Util.getTemporaryDirectBuffer(newSize); int n = receiveIntoNativeBuffer(fd, bb, newSize, 0); bb.flip(); if (n > 0 && rem > 0) @@ -482,9 +481,8 @@ class DatagramChannelImpl assert (pos <= lim); int rem = (pos <= lim ? lim - pos : 0); - ByteBuffer bb = null; + ByteBuffer bb = Util.getTemporaryDirectBuffer(rem); try { - bb = Util.getTemporaryDirectBuffer(rem); bb.put(src); bb.flip(); // Do not update src until we see how many bytes were written @@ -766,10 +764,10 @@ class DatagramChannelImpl // check multicast address is compatible with this socket if (group instanceof Inet4Address) { if (family == StandardProtocolFamily.INET6 && !Net.canIPv6SocketJoinIPv4Group()) - throw new IllegalArgumentException("Group is not IPv4 multicast address"); + throw new IllegalArgumentException("IPv6 socket cannot join IPv4 multicast group"); } else if (group instanceof Inet6Address) { if (family != StandardProtocolFamily.INET6) - throw new IllegalArgumentException("Group is not IPv6 multicast address"); + throw new IllegalArgumentException("Only IPv6 sockets can join IPv6 multicast group"); } else { throw new IllegalArgumentException("Address type not supported"); } diff --git a/jdk/src/share/classes/sun/nio/ch/IOUtil.java b/jdk/src/share/classes/sun/nio/ch/IOUtil.java index 7ea8eca6c73..559d647c8ff 100644 --- a/jdk/src/share/classes/sun/nio/ch/IOUtil.java +++ b/jdk/src/share/classes/sun/nio/ch/IOUtil.java @@ -50,9 +50,8 @@ class IOUtil { int lim = src.limit(); assert (pos <= lim); int rem = (pos <= lim ? lim - pos : 0); - ByteBuffer bb = null; + ByteBuffer bb = Util.getTemporaryDirectBuffer(rem); try { - bb = Util.getTemporaryDirectBuffer(rem); bb.put(src); bb.flip(); // Do not update src until we see how many bytes were written @@ -187,9 +186,8 @@ class IOUtil { return readIntoNativeBuffer(fd, dst, position, nd, lock); // Substitute a native buffer - ByteBuffer bb = null; + ByteBuffer bb = Util.getTemporaryDirectBuffer(dst.remaining()); try { - bb = Util.getTemporaryDirectBuffer(dst.remaining()); int n = readIntoNativeBuffer(fd, bb, position, nd, lock); bb.flip(); if (n > 0) diff --git a/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java b/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java index acfa3a93c34..8c3e5cf2900 100644 --- a/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java +++ b/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java @@ -175,25 +175,26 @@ public final class ObjectTable { DGCImpl.dgcLog.log(Log.VERBOSE, "add object " + oe); } - Remote impl = target.getImpl(); - if (impl == null) { - throw new ExportException( - "internal error: attempt to export collected object"); - } - synchronized (tableLock) { - if (objTable.containsKey(oe)) { - throw new ExportException( - "internal error: ObjID already in use"); - } else if (implTable.containsKey(weakImpl)) { - throw new ExportException("object already exported"); - } + /** + * Do nothing if impl has already been collected (see 6597112). Check while + * holding tableLock to ensure that Reaper cannot process weakImpl in between + * null check and put/increment effects. + */ + if (target.getImpl() != null) { + if (objTable.containsKey(oe)) { + throw new ExportException( + "internal error: ObjID already in use"); + } else if (implTable.containsKey(weakImpl)) { + throw new ExportException("object already exported"); + } - objTable.put(oe, target); - implTable.put(weakImpl, target); + objTable.put(oe, target); + implTable.put(weakImpl, target); - if (!target.isPermanent()) { - incrementKeepAliveCount(); + if (!target.isPermanent()) { + incrementKeepAliveCount(); + } } } } diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java b/jdk/src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java index 4ad41ba1169..8e35ef8db29 100644 --- a/jdk/src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java +++ b/jdk/src/share/classes/sun/security/jgss/krb5/InitSecContextToken.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 @@ -127,8 +127,8 @@ class InitSecContextToken extends InitialToken { //System.out.println("Sub-Session Key Missing in Authenticator.\n"); } - OverloadedChecksum gssChecksum = - new OverloadedChecksum(context, apReq.getChecksum(), sessionKey); + OverloadedChecksum gssChecksum = new OverloadedChecksum( + context, apReq.getChecksum(), sessionKey, subKey); gssChecksum.setContextFlags(context); Credentials delegCred = gssChecksum.getDelegatedCreds(); if (delegCred != null) { diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java b/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java index 309e611a89e..8e462fdc486 100644 --- a/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.java +++ b/jdk/src/share/classes/sun/security/jgss/krb5/InitialToken.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 @@ -210,8 +210,8 @@ abstract class InitialToken extends Krb5Token { // be passed in if this checksum type denotes a // raw_checksum. In that case, make Checksum class krb5 // internal. - public OverloadedChecksum(Krb5Context context, - Checksum checksum, EncryptionKey key) + public OverloadedChecksum(Krb5Context context, Checksum checksum, + EncryptionKey key, EncryptionKey subKey) throws GSSException, KrbException, IOException { int pos = 0; @@ -283,9 +283,17 @@ abstract class InitialToken extends Krb5Token { new KrbCred(credBytes, EncryptionKey.NULL_KEY). getDelegatedCreds()[0]; } else { - delegCreds = - new KrbCred(credBytes, key). - getDelegatedCreds()[0]; + KrbCred cred; + try { + cred = new KrbCred(credBytes, key); + } catch (KrbException e) { + if (subKey != null) { + cred = new KrbCred(credBytes, subKey); + } else { + throw e; + } + } + delegCreds = cred.getDelegatedCreds()[0]; } } } diff --git a/jdk/src/share/classes/sun/security/krb5/KrbApReq.java b/jdk/src/share/classes/sun/security/krb5/KrbApReq.java index 409ca4e8205..4854cd3d825 100644 --- a/jdk/src/share/classes/sun/security/krb5/KrbApReq.java +++ b/jdk/src/share/classes/sun/security/krb5/KrbApReq.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 @@ -37,6 +37,7 @@ import sun.security.krb5.internal.rcache.*; import java.net.InetAddress; import sun.security.util.*; import java.io.IOException; +import java.util.Arrays; /** * This class encapsulates a KRB-AP-REQ that a client sends to a @@ -54,9 +55,6 @@ public class KrbApReq { private static CacheTable table = new CacheTable(); private static boolean DEBUG = Krb5.DEBUG; - // default is address-less tickets - private boolean KDC_EMPTY_ADDRESSES_ALLOWED = true; - /** * Contructs a AP-REQ message to send to the peer. * @param tgsCred the <code>Credentials</code> to be used to construct the @@ -312,23 +310,19 @@ public class KrbApReq { table.put(client, time, currTime.getTime()); } - // check to use addresses in tickets - if (Config.getInstance().useAddresses()) { - KDC_EMPTY_ADDRESSES_ALLOWED = false; - } - - // sender host address - HostAddress sender = null; if (initiator != null) { - sender = new HostAddress(initiator); - } - - if (sender != null || !KDC_EMPTY_ADDRESSES_ALLOWED) { - if (enc_ticketPart.caddr != null) { - if (sender == null) - throw new KrbApErrException(Krb5.KRB_AP_ERR_BADADDR); - if (!enc_ticketPart.caddr.inList(sender)) - throw new KrbApErrException(Krb5.KRB_AP_ERR_BADADDR); + // sender host address + HostAddress sender = new HostAddress(initiator); + if (enc_ticketPart.caddr != null + && !enc_ticketPart.caddr.inList(sender)) { + if (DEBUG) { + System.out.println(">>> KrbApReq: initiator is " + + sender.getInetAddress() + + ", but caddr is " + + Arrays.toString( + enc_ticketPart.caddr.getInetAddresses())); + } + throw new KrbApErrException(Krb5.KRB_AP_ERR_BADADDR); } } diff --git a/jdk/src/share/classes/sun/security/krb5/internal/NetClient.java b/jdk/src/share/classes/sun/security/krb5/internal/NetClient.java index 36e9a5c59c1..2e9da75fb21 100644 --- a/jdk/src/share/classes/sun/security/krb5/internal/NetClient.java +++ b/jdk/src/share/classes/sun/security/krb5/internal/NetClient.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 @@ -59,7 +59,8 @@ class TCPClient extends NetClient { TCPClient(String hostname, int port, int timeout) throws IOException { - tcpSocket = new Socket(hostname, port); + tcpSocket = new Socket(); + tcpSocket.connect(new InetSocketAddress(hostname, port), timeout); out = new BufferedOutputStream(tcpSocket.getOutputStream()); in = new BufferedInputStream(tcpSocket.getInputStream()); tcpSocket.setSoTimeout(timeout); diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java index e80beb7372c..72a2e5f9f3e 100644 --- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.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 @@ -38,6 +38,7 @@ 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; @@ -492,7 +493,7 @@ public class PKCS7 { // CRLs (optional) if (crls != null && crls.length != 0) { // cast to X509CRLImpl[] since X509CRLImpl implements DerEncoder - Set<X509CRLImpl> implCRLs = new HashSet<X509CRLImpl>(crls.length); + Set<X509CRLImpl> implCRLs = new HashSet<>(crls.length); for (X509CRL crl: crls) { if (crl instanceof X509CRLImpl) implCRLs.add((X509CRLImpl) crl); @@ -529,6 +530,168 @@ 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. * @@ -554,19 +717,16 @@ public class PKCS7 { public SignerInfo[] verify(byte[] bytes) throws NoSuchAlgorithmException, SignatureException { - Vector<SignerInfo> intResult = new Vector<SignerInfo>(); + List<SignerInfo> intResult = new ArrayList<>(); for (int i = 0; i < signerInfos.length; i++) { SignerInfo signerInfo = verify(signerInfos[i], bytes); if (signerInfo != null) { - intResult.addElement(signerInfo); + intResult.add(signerInfo); } } - if (intResult.size() != 0) { - - SignerInfo[] result = new SignerInfo[intResult.size()]; - intResult.copyInto(result); - return result; + if (!intResult.isEmpty()) { + return intResult.toArray(new SignerInfo[intResult.size()]); } 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 af574962678..6addf69e416 100644 --- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java +++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2009, 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 @@ -230,7 +230,7 @@ public class SignerInfo implements DerEncoder { if (userCert == null) return null; - ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>(); + ArrayList<X509Certificate> certList = new ArrayList<>(); certList.add(userCert); X509Certificate[] pkcsCerts = block.getCertificates(); @@ -276,132 +276,20 @@ 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 { - try { - - ContentInfo content = block.getContentInfo(); - if (data == null) { - data = content.getContentBytes(); + 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()); } - - 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()); - } - return null; + p7v.update(data, 0, data.length); + return p7v.verify(); } /* Verify the content of the pkcs7 block. */ diff --git a/jdk/src/share/classes/sun/security/pkcs11/Config.java b/jdk/src/share/classes/sun/security/pkcs11/Config.java index ecaadccfdc4..6506e40e966 100644 --- a/jdk/src/share/classes/sun/security/pkcs11/Config.java +++ b/jdk/src/share/classes/sun/security/pkcs11/Config.java @@ -343,6 +343,7 @@ final class Config { st.wordChars('{', '{'); // need {} for property subst st.wordChars('}', '}'); st.wordChars('*', '*'); + st.wordChars('+', '+'); st.wordChars('~', '~'); // XXX check ASCII table and add all other characters except special diff --git a/jdk/src/share/classes/sun/security/pkcs11/SessionManager.java b/jdk/src/share/classes/sun/security/pkcs11/SessionManager.java index 8831e4e9600..348de3a1dce 100644 --- a/jdk/src/share/classes/sun/security/pkcs11/SessionManager.java +++ b/jdk/src/share/classes/sun/security/pkcs11/SessionManager.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 @@ -76,6 +76,9 @@ final class SessionManager { // maximum number of sessions to open with this token private final int maxSessions; + // total number of active sessions + private int activeSessions; + // pool of available object sessions private final Pool objSessions; @@ -115,11 +118,6 @@ final class SessionManager { return (maxSessions <= DEFAULT_MAX_SESSIONS); } - // returns the total number of active sessions - int totalSessionCount() { - return SessionRef.totalCount(); - } - synchronized Session getObjSession() throws PKCS11Exception { Session session = objSessions.poll(); if (session != null) { @@ -141,7 +139,7 @@ final class SessionManager { // create a new session rather than re-using an obj session // that avoids potential expensive cancels() for Signatures & RSACipher if (maxSessions == Integer.MAX_VALUE || - totalSessionCount() < maxSessions) { + activeSessions < maxSessions) { session = openSession(); return ensureValid(session); } @@ -164,7 +162,7 @@ final class SessionManager { if (debug != null) { String location = new Exception().getStackTrace()[2].toString(); System.out.println("Killing session (" + location + ") active: " - + totalSessionCount()); + + activeSessions); } closeSession(session); return null; @@ -189,7 +187,7 @@ final class SessionManager { } if (debug != null) { System.out.println("Demoting session, active: " + - totalSessionCount()); + activeSessions); } boolean present = objSessions.remove(session); if (present == false) { @@ -202,16 +200,16 @@ final class SessionManager { private Session openSession() throws PKCS11Exception { if ((maxSessions != Integer.MAX_VALUE) && - (totalSessionCount() >= maxSessions)) { + (activeSessions >= maxSessions)) { throw new ProviderException("No more sessions available"); } long id = token.p11.C_OpenSession (token.provider.slotID, openSessionFlags, null, null); Session session = new Session(token, id); + activeSessions++; if (debug != null) { - int currTotal = totalSessionCount(); - if (currTotal > maxActiveSessions) { - maxActiveSessions = currTotal; + if (activeSessions > maxActiveSessions) { + maxActiveSessions = activeSessions; if (maxActiveSessions % 10 == 0) { System.out.println("Open sessions: " + maxActiveSessions); } @@ -222,6 +220,7 @@ final class SessionManager { private void closeSession(Session session) { session.close(); + activeSessions--; } private static final class Pool { @@ -275,7 +274,7 @@ final class SessionManager { } if (debug != null) { System.out.println("Closing " + i + " idle sessions, active: " - + mgr.totalSessionCount()); + + mgr.activeSessions); } List<Session> subList = pool.subList(0, i); subList.clear(); 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 6738c39260f..1f692f235b6 100644 --- a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java +++ b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.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 @@ -249,7 +249,7 @@ class CrlRevocationChecker extends PKIXCertPathChecker { throws CertPathValidatorException { verifyRevocationStatus(currCert, prevKey, signFlag, - allowSeparateKey, null); + allowSeparateKey, null, mParams.getTrustAnchors()); } /** @@ -260,11 +260,12 @@ class CrlRevocationChecker extends PKIXCertPathChecker { * circular dependencies, we assume they're * revoked while checking the revocation * status of this cert. + * @param trustAnchors a <code>Set</code> of <code>TrustAnchor</code>s */ private void verifyRevocationStatus(X509Certificate currCert, PublicKey prevKey, boolean signFlag, boolean allowSeparateKey, - Set<X509Certificate> stackedCerts) throws CertPathValidatorException - { + Set<X509Certificate> stackedCerts, + Set<TrustAnchor> trustAnchors) throws CertPathValidatorException { String msg = "revocation status"; if (debug != null) { @@ -311,7 +312,7 @@ 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, mAnchor)); + mSigProvider, mStores, reasonsMask, trustAnchors)); } catch (Exception e) { if (debug != null) { debug.println("CrlRevocationChecker.verifyRevocationStatus() " @@ -328,7 +329,7 @@ class CrlRevocationChecker extends PKIXCertPathChecker { // Now that we have a list of possible CRLs, see which ones can // be approved mApprovedCRLs.addAll(verifyPossibleCRLs(mPossibleCRLs, currCert, - signFlag, prevKey, reasonsMask)); + signFlag, prevKey, reasonsMask, trustAnchors)); } if (debug != null) { debug.println("CrlRevocationChecker.verifyRevocationStatus() " + @@ -353,9 +354,10 @@ class CrlRevocationChecker extends PKIXCertPathChecker { // See if the cert is in the set of approved crls. if (debug != null) { BigInteger sn = currCert.getSerialNumber(); - debug.println("starting the final sweep..."); + debug.println("CrlRevocationChecker.verifyRevocationStatus() " + + "starting the final sweep..."); debug.println("CrlRevocationChecker.verifyRevocationStatus" + - " cert SN: " + sn.toString()); + " cert SN: " + sn.toString()); } CRLReason reasonCode = CRLReason.UNSPECIFIED; @@ -497,9 +499,9 @@ class CrlRevocationChecker extends PKIXCertPathChecker { certSel.setSubject(currCert.getIssuerX500Principal()); certSel.setKeyUsage(mCrlSignUsage); - Set<TrustAnchor> newAnchors = mAnchor == null - ? mParams.getTrustAnchors() - : Collections.singleton(mAnchor); + Set<TrustAnchor> newAnchors = + (mAnchor == null ? mParams.getTrustAnchors() : + Collections.singleton(mAnchor)); PKIXBuilderParameters builderParams; if (mParams instanceof PKIXBuilderParameters) { @@ -617,8 +619,8 @@ class CrlRevocationChecker extends PKIXCertPathChecker { debug.println("CrlRevocationChecker.buildToNewKey()" + " index " + i + " checking " + cert); } - verifyRevocationStatus(cert, prevKey2, signFlag, - true, stackedCerts); + verifyRevocationStatus(cert, prevKey2, signFlag, true, + stackedCerts, newAnchors); signFlag = certCanSignCrl(cert); prevKey2 = cert.getPublicKey(); } @@ -727,12 +729,14 @@ class CrlRevocationChecker extends PKIXCertPathChecker { * @param signFlag <code>true</code> if prevKey was trusted to sign CRLs * @param prevKey the public key of the issuer of cert * @param reasonsMask the reason code mask + * @param trustAnchors a <code>Set</code> of <code>TrustAnchor</code>s> * @return a collection of approved crls (or an empty collection) */ private Collection<X509CRL> verifyPossibleCRLs(Set<X509CRL> crls, X509Certificate cert, boolean signFlag, PublicKey prevKey, - boolean[] reasonsMask) throws CertPathValidatorException - { + boolean[] reasonsMask, + Set<TrustAnchor> trustAnchors) throws CertPathValidatorException { + try { X509CertImpl certImpl = X509CertImpl.toImpl(cert); if (debug != null) { @@ -764,7 +768,8 @@ class CrlRevocationChecker extends PKIXCertPathChecker { DistributionPoint point = t.next(); for (X509CRL crl : crls) { if (dpf.verifyCRL(certImpl, point, crl, reasonsMask, - signFlag, prevKey, mSigProvider, mAnchor, mStores)) { + signFlag, prevKey, mSigProvider, + trustAnchors, mStores)) { 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 e367a1faef4..56c5ab91c43 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,9 @@ class DistributionPointFetcher { */ Collection<X509CRL> getCRLs(X509CRLSelector selector, boolean signFlag, PublicKey prevKey, String provider, List<CertStore> certStores, - boolean[] reasonsMask, TrustAnchor anchor) throws CertStoreException - { + boolean[] reasonsMask, + Set<TrustAnchor> trustAnchors) throws CertStoreException { + if (USE_CRLDP == false) { return Collections.emptySet(); } @@ -121,7 +122,7 @@ class DistributionPointFetcher { DistributionPoint point = t.next(); Collection<X509CRL> crls = getCRLs(selector, certImpl, point, reasonsMask, signFlag, prevKey, provider, - certStores, anchor); + certStores, trustAnchors); results.addAll(crls); } if (debug != null) { @@ -142,8 +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, TrustAnchor anchor) - { + List<CertStore> certStores, Set<TrustAnchor> trustAnchors) { + // check for full name GeneralNames fullName = point.getFullName(); if (fullName == null) { @@ -194,7 +195,7 @@ class DistributionPointFetcher { // we check the issuer in verifyCRLs method selector.setIssuerNames(null); if (selector.match(crl) && verifyCRL(certImpl, point, crl, - reasonsMask, signFlag, prevKey, provider, anchor, + reasonsMask, signFlag, prevKey, provider, trustAnchors, certStores)) { crls.add(crl); } @@ -276,12 +277,17 @@ class DistributionPointFetcher { * @param signFlag true if prevKey can be used to verify the CRL * @param prevKey the public key that verifies the certificate's signature * @param provider the Signature provider to use + * @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 * @return true if ok, false if not */ boolean verifyCRL(X509CertImpl certImpl, DistributionPoint point, X509CRL crl, boolean[] reasonsMask, boolean signFlag, - PublicKey prevKey, String provider, TrustAnchor anchor, + PublicKey prevKey, String provider, + Set<TrustAnchor> trustAnchors, List<CertStore> certStores) throws CRLException, IOException { + boolean indirectCRL = false; X509CRLImpl crlImpl = X509CRLImpl.toImpl(crl); IssuingDistributionPointExtension idpExt = @@ -335,7 +341,16 @@ class DistributionPointFetcher { byte[] crlAKID = crlImpl.getExtensionValue( PKIXExtensions.AuthorityKey_Id.toString()); - if (!Arrays.equals(certAKID, crlAKID)) { + if (certAKID == null || crlAKID == null) { + // cannot recognize indirect CRL without AKID + + // we accept the case that a CRL issuer provide status + // information for itself. + if (issues(certImpl, crlImpl, provider)) { + // reset the public key used to verify the CRL's signature + prevKey = certImpl.getPublicKey(); + } + } else if (!Arrays.equals(certAKID, crlAKID)) { // we accept the case that a CRL issuer provide status // information for itself. if (issues(certImpl, crlImpl, provider)) { @@ -572,46 +587,19 @@ class DistributionPointFetcher { // Except the performance improvement, another benefit is to break // the dead loop while looking for the issuer back and forth // between the delegated self-issued certificate and its issuer. - Set<TrustAnchor> trustAnchors = new HashSet<TrustAnchor>(); - if (anchor != null) { - trustAnchors.add(anchor); - } + Set<TrustAnchor> newTrustAnchors = new HashSet<>(trustAnchors); if (prevKey != null) { - // if the previous key is of the anchor, don't bother to - // duplicate the trust. - boolean duplicated = false; - PublicKey publicKey = prevKey; + // Add the previous certificate as a trust anchor. X500Principal principal = certImpl.getIssuerX500Principal(); - - if (anchor != null) { - X509Certificate trustedCert = anchor.getTrustedCert(); - X500Principal trustedPrincipal; - PublicKey trustedPublicKey; - if (trustedCert != null) { - trustedPrincipal = trustedCert.getSubjectX500Principal(); - trustedPublicKey = trustedCert.getPublicKey(); - } else { - trustedPrincipal = anchor.getCA(); - trustedPublicKey = anchor.getCAPublicKey(); - } - - if (principal.equals(trustedPrincipal) && - publicKey.equals(trustedPublicKey)) { - duplicated = true; - } - } - - if (!duplicated) { - TrustAnchor temporary = - new TrustAnchor(principal, publicKey, null); - trustAnchors.add(temporary); - } + TrustAnchor temporary = + new TrustAnchor(principal, prevKey, null); + newTrustAnchors.add(temporary); } PKIXBuilderParameters params = null; try { - params = new PKIXBuilderParameters(trustAnchors, certSel); + params = new PKIXBuilderParameters(newTrustAnchors, certSel); } catch (InvalidAlgorithmParameterException iape) { throw new CRLException(iape); } @@ -697,6 +685,8 @@ class DistributionPointFetcher { private static boolean issues(X509CertImpl cert, X509CRLImpl crl, String provider) throws IOException { + boolean matched = false; + AdaptableX509CertSelector issuerSelector = new AdaptableX509CertSelector(); @@ -719,9 +709,24 @@ class DistributionPointFetcher { * and MUST include authority key identifier extension in all CRLs * issued. [section 5.2.1, RFC 2459] */ - issuerSelector.parseAuthorityKeyIdentifierExtension( - crl.getAuthKeyIdExtension()); + AuthorityKeyIdentifierExtension crlAKID = crl.getAuthKeyIdExtension(); + if (crlAKID != null) { + issuerSelector.parseAuthorityKeyIdentifierExtension(crlAKID); + } - return issuerSelector.match(cert); + matched = issuerSelector.match(cert); + + // if AKID is unreliable, verify the CRL signature with the cert + if (matched && (crlAKID == null || + cert.getAuthorityKeyIdentifierExtension() == null)) { + try { + crl.verify(cert.getPublicKey(), provider); + matched = true; + } catch (Exception e) { + matched = false; + } + } + + return matched; } } diff --git a/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java index b6cda76e269..bf69b35aaca 100644 --- a/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java +++ b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java @@ -40,10 +40,6 @@ import javax.net.ssl.SSLException; */ final class CipherSuiteList { - // lists of supported and default enabled ciphersuites - // created on demand - private static CipherSuiteList supportedSuites, defaultSuites; - private final Collection<CipherSuite> cipherSuites; private String[] suiteNames; @@ -206,57 +202,8 @@ final class CipherSuiteList { */ static synchronized void clearAvailableCache() { if (CipherSuite.DYNAMIC_AVAILABILITY) { - supportedSuites = null; - defaultSuites = null; CipherSuite.BulkCipher.clearAvailableCache(); JsseJce.clearEcAvailable(); } } - - /** - * Return the list of all available CipherSuites with a priority of - * minPriority or above. - * Should be called with the Class lock held. - */ - private static CipherSuiteList buildAvailableCache(int minPriority) { - // SortedSet automatically arranges ciphersuites in default - // preference order - Set<CipherSuite> cipherSuites = new TreeSet<>(); - Collection<CipherSuite> allowedCipherSuites = - CipherSuite.allowedCipherSuites(); - for (CipherSuite c : allowedCipherSuites) { - if ((c.allowed == false) || (c.priority < minPriority)) { - continue; - } - - if (c.isAvailable()) { - cipherSuites.add(c); - } - } - - return new CipherSuiteList(cipherSuites); - } - - /** - * Return supported CipherSuites in preference order. - */ - static synchronized CipherSuiteList getSupported() { - if (supportedSuites == null) { - supportedSuites = - buildAvailableCache(CipherSuite.SUPPORTED_SUITES_PRIORITY); - } - return supportedSuites; - } - - /** - * Return default enabled CipherSuites in preference order. - */ - static synchronized CipherSuiteList getDefault() { - if (defaultSuites == null) { - defaultSuites = - buildAvailableCache(CipherSuite.DEFAULT_SUITES_PRIORITY); - } - return defaultSuites; - } - } diff --git a/jdk/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java deleted file mode 100644 index d848d11da58..00000000000 --- a/jdk/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * 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 - * 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.ssl; - -import java.io.*; -import java.util.*; - -import java.security.*; - -import javax.net.ssl.*; - -/** - * "Default" SSLContext as returned by SSLContext.getDefault(). It comes - * initialized with default KeyManagers and TrustManagers created using - * various system properties. - * - * @since 1.6 - */ -public final class DefaultSSLContextImpl extends SSLContextImpl { - - private static final String NONE = "NONE"; - private static final String P11KEYSTORE = "PKCS11"; - private static final Debug debug = Debug.getInstance("ssl"); - - private static volatile SSLContextImpl defaultImpl; - - private static TrustManager[] defaultTrustManagers; - - private static KeyManager[] defaultKeyManagers; - - public DefaultSSLContextImpl() throws Exception { - super(defaultImpl); - try { - super.engineInit(getDefaultKeyManager(), getDefaultTrustManager(), null); - } catch (Exception e) { - if (debug != null && Debug.isOn("defaultctx")) { - System.out.println("default context init failed: " + e); - } - throw e; - } - if (defaultImpl == null) { - defaultImpl = this; - } - } - - protected void engineInit(KeyManager[] km, TrustManager[] tm, - SecureRandom sr) throws KeyManagementException { - throw new KeyManagementException - ("Default SSLContext is initialized automatically"); - } - - static synchronized SSLContextImpl getDefaultImpl() throws Exception { - if (defaultImpl == null) { - new DefaultSSLContextImpl(); - } - return defaultImpl; - } - - private static synchronized TrustManager[] getDefaultTrustManager() throws Exception { - if (defaultTrustManagers != null) { - return defaultTrustManagers; - } - - KeyStore ks = TrustManagerFactoryImpl.getCacertsKeyStore("defaultctx"); - - TrustManagerFactory tmf = TrustManagerFactory.getInstance( - TrustManagerFactory.getDefaultAlgorithm()); - tmf.init(ks); - defaultTrustManagers = tmf.getTrustManagers(); - return defaultTrustManagers; - } - - private static synchronized KeyManager[] getDefaultKeyManager() throws Exception { - if (defaultKeyManagers != null) { - return defaultKeyManagers; - } - - final Map<String,String> props = new HashMap<>(); - AccessController.doPrivileged( - new PrivilegedExceptionAction<Object>() { - public Object run() throws Exception { - props.put("keyStore", System.getProperty( - "javax.net.ssl.keyStore", "")); - props.put("keyStoreType", System.getProperty( - "javax.net.ssl.keyStoreType", - KeyStore.getDefaultType())); - props.put("keyStoreProvider", System.getProperty( - "javax.net.ssl.keyStoreProvider", "")); - props.put("keyStorePasswd", System.getProperty( - "javax.net.ssl.keyStorePassword", "")); - return null; - } - }); - - final String defaultKeyStore = props.get("keyStore"); - String defaultKeyStoreType = props.get("keyStoreType"); - String defaultKeyStoreProvider = props.get("keyStoreProvider"); - if (debug != null && Debug.isOn("defaultctx")) { - System.out.println("keyStore is : " + defaultKeyStore); - System.out.println("keyStore type is : " + - defaultKeyStoreType); - System.out.println("keyStore provider is : " + - defaultKeyStoreProvider); - } - - if (P11KEYSTORE.equals(defaultKeyStoreType) && - !NONE.equals(defaultKeyStore)) { - throw new IllegalArgumentException("if keyStoreType is " - + P11KEYSTORE + ", then keyStore must be " + NONE); - } - - FileInputStream fs = null; - if (defaultKeyStore.length() != 0 && !NONE.equals(defaultKeyStore)) { - fs = AccessController.doPrivileged( - new PrivilegedExceptionAction<FileInputStream>() { - public FileInputStream run() throws Exception { - return new FileInputStream(defaultKeyStore); - } - }); - } - - String defaultKeyStorePassword = props.get("keyStorePasswd"); - char[] passwd = null; - if (defaultKeyStorePassword.length() != 0) { - passwd = defaultKeyStorePassword.toCharArray(); - } - - /** - * Try to initialize key store. - */ - KeyStore ks = null; - if ((defaultKeyStoreType.length()) != 0) { - if (debug != null && Debug.isOn("defaultctx")) { - System.out.println("init keystore"); - } - if (defaultKeyStoreProvider.length() == 0) { - ks = KeyStore.getInstance(defaultKeyStoreType); - } else { - ks = KeyStore.getInstance(defaultKeyStoreType, - defaultKeyStoreProvider); - } - - // if defaultKeyStore is NONE, fs will be null - ks.load(fs, passwd); - } - if (fs != null) { - fs.close(); - fs = null; - } - - /* - * Try to initialize key manager. - */ - if (debug != null && Debug.isOn("defaultctx")) { - System.out.println("init keymanager of type " + - KeyManagerFactory.getDefaultAlgorithm()); - } - KeyManagerFactory kmf = KeyManagerFactory.getInstance( - KeyManagerFactory.getDefaultAlgorithm()); - - if (P11KEYSTORE.equals(defaultKeyStoreType)) { - kmf.init(ks, null); // do not pass key passwd if using token - } else { - kmf.init(ks, passwd); - } - - defaultKeyManagers = kmf.getKeyManagers(); - return defaultKeyManagers; - } -} diff --git a/jdk/src/share/classes/sun/security/ssl/JsseJce.java b/jdk/src/share/classes/sun/security/ssl/JsseJce.java index 375f3bde3d7..fbbbf5d2b38 100644 --- a/jdk/src/share/classes/sun/security/ssl/JsseJce.java +++ b/jdk/src/share/classes/sun/security/ssl/JsseJce.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, 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 @@ -247,9 +247,9 @@ final class JsseJce { // the SunJSSE implementation does the actual crypto using // a NONEwithRSA signature obtained from the cryptoProvider. if (cryptoProvider.getService("Signature", algorithm) == null) { - // Calling Signature.getInstance() and catching the exception - // would be cleaner, but exceptions are a little expensive. - // So we check directly via getService(). + // Calling Signature.getInstance() and catching the + // exception would be cleaner, but exceptions are a little + // expensive. So we check directly via getService(). try { return Signature.getInstance(algorithm, "SunJSSE"); } catch (NoSuchProviderException e) { diff --git a/jdk/src/share/classes/sun/security/ssl/ProtocolList.java b/jdk/src/share/classes/sun/security/ssl/ProtocolList.java index 09f051822fd..a57a9bdfdff 100644 --- a/jdk/src/share/classes/sun/security/ssl/ProtocolList.java +++ b/jdk/src/share/classes/sun/security/ssl/ProtocolList.java @@ -37,10 +37,6 @@ import java.util.*; */ final class ProtocolList { - private static final ProtocolList SUPPORTED; - private static final ProtocolList CLIENT_DEFAULT; - private static final ProtocolList SERVER_DEFAULT; - // the sorted protocol version list private final ArrayList<ProtocolVersion> protocols; @@ -154,66 +150,4 @@ final class ProtocolList { public String toString() { return protocols.toString(); } - - /** - * Return the list of default enabled protocols. - */ - static ProtocolList getDefault(boolean isServer) { - return isServer ? SERVER_DEFAULT : CLIENT_DEFAULT; - } - - /** - * Return whether a protocol list is the original default enabled - * protocols. See: SSLSocket/SSLEngine.setEnabledProtocols() - */ - static boolean isDefaultProtocolList(ProtocolList protocols) { - return protocols == CLIENT_DEFAULT || protocols == SERVER_DEFAULT; - } - - /** - * Return the list of supported protocols. - */ - static ProtocolList getSupported() { - return SUPPORTED; - } - - static { - if (SunJSSE.isFIPS()) { - SUPPORTED = new ProtocolList(new String[] { - ProtocolVersion.TLS10.name, - ProtocolVersion.TLS11.name, - ProtocolVersion.TLS12.name - }); - - SERVER_DEFAULT = SUPPORTED; - CLIENT_DEFAULT = new ProtocolList(new String[] { - ProtocolVersion.TLS10.name - }); - } else { - SUPPORTED = new ProtocolList(new String[] { - ProtocolVersion.SSL20Hello.name, - ProtocolVersion.SSL30.name, - ProtocolVersion.TLS10.name, - ProtocolVersion.TLS11.name, - ProtocolVersion.TLS12.name - }); - - SERVER_DEFAULT = SUPPORTED; - - /* - * RFC 5246 says that sending SSLv2 backward-compatible - * hello SHOULD NOT be done any longer. - * - * We are not enabling TLS 1.1/1.2 by default yet on clients - * out of concern for interop with existing - * SSLv3/TLS1.0-only servers. When these versions of TLS - * gain more traction, we'll enable them. - */ - CLIENT_DEFAULT = new ProtocolList(new String[] { - ProtocolVersion.SSL30.name, - ProtocolVersion.TLS10.name - }); - } - } - } diff --git a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java index cfbab4cb4e4..205c80e484b 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLContextImpl.java @@ -1,5 +1,5 @@ /* - * 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 @@ -27,6 +27,7 @@ package sun.security.ssl; import java.net.Socket; +import java.io.*; import java.util.*; import java.security.*; import java.security.cert.*; @@ -36,7 +37,7 @@ import javax.net.ssl.*; import sun.security.provider.certpath.AlgorithmChecker; -public class SSLContextImpl extends SSLContextSpi { +public abstract class SSLContextImpl extends SSLContextSpi { private static final Debug debug = Debug.getInstance("ssl"); @@ -50,20 +51,24 @@ public class SSLContextImpl extends SSLContextSpi { private X509TrustManager trustManager; private SecureRandom secureRandom; - public SSLContextImpl() { - this(null); - } + // The default algrithm constraints + private AlgorithmConstraints defaultAlgorithmConstraints = + new SSLAlgorithmConstraints(null); - SSLContextImpl(SSLContextImpl other) { - if (other == null) { - ephemeralKeyManager = new EphemeralKeyManager(); - clientCache = new SSLSessionContextImpl(); - serverCache = new SSLSessionContextImpl(); - } else { - ephemeralKeyManager = other.ephemeralKeyManager; - clientCache = other.clientCache; - serverCache = other.serverCache; - } + // supported and default protocols + private ProtocolList defaultServerProtocolList; + private ProtocolList defaultClientProtocolList; + private ProtocolList supportedProtocolList; + + // supported and default cipher suites + private CipherSuiteList defaultServerCipherSuiteList; + private CipherSuiteList defaultClientCipherSuiteList; + private CipherSuiteList supportedCipherSuiteList; + + SSLContextImpl() { + ephemeralKeyManager = new EphemeralKeyManager(); + clientCache = new SSLSessionContextImpl(); + serverCache = new SSLSessionContextImpl(); } protected void engineInit(KeyManager[] km, TrustManager[] tm, @@ -177,7 +182,7 @@ public class SSLContextImpl extends SSLContextSpi { throw new IllegalStateException( "SSLContextImpl is not initialized"); } - return new SSLSocketFactoryImpl(this); + return new SSLSocketFactoryImpl(this); } protected SSLServerSocketFactory engineGetServerSocketFactory() { @@ -227,6 +232,535 @@ public class SSLContextImpl extends SSLContextSpi { return ephemeralKeyManager; } + abstract SSLParameters getDefaultServerSSLParams(); + abstract SSLParameters getDefaultClientSSLParams(); + abstract SSLParameters getSupportedSSLParams(); + + // Get suported ProtoclList. + ProtocolList getSuportedProtocolList() { + if (supportedProtocolList == null) { + supportedProtocolList = + new ProtocolList(getSupportedSSLParams().getProtocols()); + } + + return supportedProtocolList; + } + + // Get default ProtoclList. + ProtocolList getDefaultProtocolList(boolean roleIsServer) { + if (roleIsServer) { + if (defaultServerProtocolList == null) { + defaultServerProtocolList = new ProtocolList( + getDefaultServerSSLParams().getProtocols()); + } + + return defaultServerProtocolList; + } else { + if (defaultClientProtocolList == null) { + defaultClientProtocolList = new ProtocolList( + getDefaultClientSSLParams().getProtocols()); + } + + return defaultClientProtocolList; + } + } + + // Get suported CipherSuiteList. + CipherSuiteList getSuportedCipherSuiteList() { + // Clear cache of available ciphersuites. + clearAvailableCache(); + + if (supportedCipherSuiteList == null) { + supportedCipherSuiteList = + getApplicableCipherSuiteList(getSuportedProtocolList(), false); + } + + return supportedCipherSuiteList; + } + + // Get default CipherSuiteList. + CipherSuiteList getDefaultCipherSuiteList(boolean roleIsServer) { + // Clear cache of available ciphersuites. + clearAvailableCache(); + + if (roleIsServer) { + if (defaultServerCipherSuiteList == null) { + defaultServerCipherSuiteList = getApplicableCipherSuiteList( + getDefaultProtocolList(true), true); + } + + return defaultServerCipherSuiteList; + } else { + if (defaultClientCipherSuiteList == null) { + defaultClientCipherSuiteList = getApplicableCipherSuiteList( + getDefaultProtocolList(false), true); + } + + return defaultClientCipherSuiteList; + } + } + + /** + * Return whether a protocol list is the original default enabled + * protocols. See: SSLSocket/SSLEngine.setEnabledProtocols() + */ + boolean isDefaultProtocolList(ProtocolList protocols) { + return (protocols == defaultServerProtocolList) || + (protocols == defaultClientProtocolList); + } + + + /* + * Return the list of all available CipherSuites with a priority of + * minPriority or above. + */ + private CipherSuiteList getApplicableCipherSuiteList( + ProtocolList protocols, boolean onlyEnabled) { + + int minPriority = CipherSuite.SUPPORTED_SUITES_PRIORITY; + if (onlyEnabled) { + minPriority = CipherSuite.DEFAULT_SUITES_PRIORITY; + } + + Collection<CipherSuite> allowedCipherSuites = + CipherSuite.allowedCipherSuites(); + + ArrayList<CipherSuite> suites = new ArrayList<>(); + if (!(protocols.collection().isEmpty()) && + protocols.min.v != ProtocolVersion.NONE.v) { + for (CipherSuite suite : allowedCipherSuites) { + if (suite.allowed == false || suite.priority < minPriority) { + continue; + } + + if (suite.isAvailable() && + suite.obsoleted > protocols.min.v && + suite.supported <= protocols.max.v) { + if (defaultAlgorithmConstraints.permits( + EnumSet.of(CryptoPrimitive.KEY_AGREEMENT), + suite.name, null)) { + suites.add(suite); + } + } else if (debug != null && + Debug.isOn("sslctx") && Debug.isOn("verbose")) { + if (suite.obsoleted <= protocols.min.v) { + System.out.println( + "Ignoring obsoleted cipher suite: " + suite); + } else if (suite.supported > protocols.max.v) { + System.out.println( + "Ignoring unsupported cipher suite: " + suite); + } else { + System.out.println( + "Ignoring unavailable cipher suite: " + suite); + } + } + } + } + + return new CipherSuiteList(suites); + } + + /** + * Clear cache of available ciphersuites. If we support all ciphers + * internally, there is no need to clear the cache and calling this + * method has no effect. + */ + synchronized void clearAvailableCache() { + if (CipherSuite.DYNAMIC_AVAILABILITY) { + supportedCipherSuiteList = null; + defaultServerCipherSuiteList = null; + defaultClientCipherSuiteList = null; + CipherSuite.BulkCipher.clearAvailableCache(); + JsseJce.clearEcAvailable(); + } + } + + /* + * The SSLContext implementation for TLS/SSL algorithm + * + * SSL/TLS protocols specify the forward compatibility and version + * roll-back attack protections, however, a number of SSL/TLS server + * vendors did not implement these aspects properly, and some current + * SSL/TLS servers may refuse to talk to a TLS 1.1 or later client. + * + * Considering above interoperability issues, SunJSSE will not set + * TLS 1.1 and TLS 1.2 as the enabled protocols for client by default. + * + * For SSL/TLS servers, there is no such interoperability issues as + * SSL/TLS clients. In SunJSSE, TLS 1.1 or later version will be the + * enabled protocols for server by default. + * + * We may change the behavior when popular TLS/SSL vendors support TLS + * forward compatibility properly. + * + * SSLv2Hello is no longer necessary. This interoperability option was + * put in place in the late 90's when SSLv3/TLS1.0 were relatively new + * and there were a fair number of SSLv2-only servers deployed. Because + * of the security issues in SSLv2, it is rarely (if ever) used, as + * deployments should now be using SSLv3 and TLSv1. + * + * Considering the issues of SSLv2Hello, we should not enable SSLv2Hello + * by default. Applications still can use it by enabling SSLv2Hello with + * the series of setEnabledProtocols APIs. + */ + + /* + * The conservative SSLContext implementation for TLS, SSL, SSLv3 and + * TLS10 algorithm. + * + * This is a super class of DefaultSSLContext and TLS10Context. + * + * @see SSLContext + */ + private static class ConservativeSSLContext extends SSLContextImpl { + // parameters + private static SSLParameters defaultServerSSLParams; + private static SSLParameters defaultClientSSLParams; + private static SSLParameters supportedSSLParams; + + static { + if (SunJSSE.isFIPS()) { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name + }); + + } else { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL20Hello.name, + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name + }); + } + } + + SSLParameters getDefaultServerSSLParams() { + return defaultServerSSLParams; + } + + SSLParameters getDefaultClientSSLParams() { + return defaultClientSSLParams; + } + + SSLParameters getSupportedSSLParams() { + return supportedSSLParams; + } + } + + /* + * The SSLContext implementation for default algorithm + * + * @see SSLContext + */ + public static final class DefaultSSLContext extends ConservativeSSLContext { + private static final String NONE = "NONE"; + private static final String P11KEYSTORE = "PKCS11"; + + private static volatile SSLContextImpl defaultImpl; + + private static TrustManager[] defaultTrustManagers; + private static KeyManager[] defaultKeyManagers; + + public DefaultSSLContext() throws Exception { + try { + super.engineInit(getDefaultKeyManager(), + getDefaultTrustManager(), null); + } catch (Exception e) { + if (debug != null && Debug.isOn("defaultctx")) { + System.out.println("default context init failed: " + e); + } + throw e; + } + + if (defaultImpl == null) { + defaultImpl = this; + } + } + + protected void engineInit(KeyManager[] km, TrustManager[] tm, + SecureRandom sr) throws KeyManagementException { + throw new KeyManagementException + ("Default SSLContext is initialized automatically"); + } + + static synchronized SSLContextImpl getDefaultImpl() throws Exception { + if (defaultImpl == null) { + new DefaultSSLContext(); + } + return defaultImpl; + } + + private static synchronized TrustManager[] getDefaultTrustManager() + throws Exception { + if (defaultTrustManagers != null) { + return defaultTrustManagers; + } + + KeyStore ks = + TrustManagerFactoryImpl.getCacertsKeyStore("defaultctx"); + + TrustManagerFactory tmf = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + tmf.init(ks); + defaultTrustManagers = tmf.getTrustManagers(); + return defaultTrustManagers; + } + + private static synchronized KeyManager[] getDefaultKeyManager() + throws Exception { + if (defaultKeyManagers != null) { + return defaultKeyManagers; + } + + final Map<String,String> props = new HashMap<>(); + AccessController.doPrivileged( + new PrivilegedExceptionAction<Object>() { + public Object run() throws Exception { + props.put("keyStore", System.getProperty( + "javax.net.ssl.keyStore", "")); + props.put("keyStoreType", System.getProperty( + "javax.net.ssl.keyStoreType", + KeyStore.getDefaultType())); + props.put("keyStoreProvider", System.getProperty( + "javax.net.ssl.keyStoreProvider", "")); + props.put("keyStorePasswd", System.getProperty( + "javax.net.ssl.keyStorePassword", "")); + return null; + } + }); + + final String defaultKeyStore = props.get("keyStore"); + String defaultKeyStoreType = props.get("keyStoreType"); + String defaultKeyStoreProvider = props.get("keyStoreProvider"); + if (debug != null && Debug.isOn("defaultctx")) { + System.out.println("keyStore is : " + defaultKeyStore); + System.out.println("keyStore type is : " + + defaultKeyStoreType); + System.out.println("keyStore provider is : " + + defaultKeyStoreProvider); + } + + if (P11KEYSTORE.equals(defaultKeyStoreType) && + !NONE.equals(defaultKeyStore)) { + throw new IllegalArgumentException("if keyStoreType is " + + P11KEYSTORE + ", then keyStore must be " + NONE); + } + + FileInputStream fs = null; + if (defaultKeyStore.length() != 0 && !NONE.equals(defaultKeyStore)) { + fs = AccessController.doPrivileged( + new PrivilegedExceptionAction<FileInputStream>() { + public FileInputStream run() throws Exception { + return new FileInputStream(defaultKeyStore); + } + }); + } + + String defaultKeyStorePassword = props.get("keyStorePasswd"); + char[] passwd = null; + if (defaultKeyStorePassword.length() != 0) { + passwd = defaultKeyStorePassword.toCharArray(); + } + + /** + * Try to initialize key store. + */ + KeyStore ks = null; + if ((defaultKeyStoreType.length()) != 0) { + if (debug != null && Debug.isOn("defaultctx")) { + System.out.println("init keystore"); + } + if (defaultKeyStoreProvider.length() == 0) { + ks = KeyStore.getInstance(defaultKeyStoreType); + } else { + ks = KeyStore.getInstance(defaultKeyStoreType, + defaultKeyStoreProvider); + } + + // if defaultKeyStore is NONE, fs will be null + ks.load(fs, passwd); + } + if (fs != null) { + fs.close(); + fs = null; + } + + /* + * Try to initialize key manager. + */ + if (debug != null && Debug.isOn("defaultctx")) { + System.out.println("init keymanager of type " + + KeyManagerFactory.getDefaultAlgorithm()); + } + KeyManagerFactory kmf = KeyManagerFactory.getInstance( + KeyManagerFactory.getDefaultAlgorithm()); + + if (P11KEYSTORE.equals(defaultKeyStoreType)) { + kmf.init(ks, null); // do not pass key passwd if using token + } else { + kmf.init(ks, passwd); + } + + defaultKeyManagers = kmf.getKeyManagers(); + return defaultKeyManagers; + } + } + + /* + * The SSLContext implementation for TLS, SSL, SSLv3 and TLS10 algorithm + * + * @see SSLContext + */ + public static final class TLS10Context extends ConservativeSSLContext { + // use the default constructor and methods + } + + /* + * The SSLContext implementation for TLS11 algorithm + * + * @see SSLContext + */ + public static final class TLS11Context extends SSLContextImpl { + // parameters + private static SSLParameters defaultServerSSLParams; + private static SSLParameters defaultClientSSLParams; + private static SSLParameters supportedSSLParams; + + static { + if (SunJSSE.isFIPS()) { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name + }); + + } else { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL20Hello.name, + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name + }); + } + } + + SSLParameters getDefaultServerSSLParams() { + return defaultServerSSLParams; + } + + SSLParameters getDefaultClientSSLParams() { + return defaultClientSSLParams; + } + + SSLParameters getSupportedSSLParams() { + return supportedSSLParams; + } + } + + /* + * The SSLContext implementation for TLS12 algorithm + * + * @see SSLContext + */ + public static final class TLS12Context extends SSLContextImpl { + // parameters + private static SSLParameters defaultServerSSLParams; + private static SSLParameters defaultClientSSLParams; + private static SSLParameters supportedSSLParams; + + static { + if (SunJSSE.isFIPS()) { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + } else { + supportedSSLParams = new SSLParameters(); + supportedSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL20Hello.name, + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + + defaultServerSSLParams = supportedSSLParams; + + defaultClientSSLParams = new SSLParameters(); + defaultClientSSLParams.setProtocols(new String[] { + ProtocolVersion.SSL30.name, + ProtocolVersion.TLS10.name, + ProtocolVersion.TLS11.name, + ProtocolVersion.TLS12.name + }); + } + } + + SSLParameters getDefaultServerSSLParams() { + return defaultServerSSLParams; + } + + SSLParameters getDefaultClientSSLParams() { + return defaultClientSSLParams; + } + + SSLParameters getSupportedSSLParams() { + return supportedSSLParams; + } + } + } diff --git a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java index 76b781806fd..ce78c10cc3c 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.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 @@ -374,8 +374,10 @@ final public class SSLEngineImpl extends SSLEngine { clientVerifyData = new byte[0]; serverVerifyData = new byte[0]; - enabledCipherSuites = CipherSuiteList.getDefault(); - enabledProtocols = ProtocolList.getDefault(roleIsServer); + enabledCipherSuites = + sslContext.getDefaultCipherSuiteList(roleIsServer); + enabledProtocols = + sslContext.getDefaultProtocolList(roleIsServer); wrapLock = new Object(); unwrapLock = new Object(); @@ -1883,8 +1885,8 @@ final public class SSLEngineImpl extends SSLEngine { * change them to the corresponding default ones. */ if (roleIsServer != (!flag) && - ProtocolList.isDefaultProtocolList(enabledProtocols)) { - enabledProtocols = ProtocolList.getDefault(!flag); + sslContext.isDefaultProtocolList(enabledProtocols)) { + enabledProtocols = sslContext.getDefaultProtocolList(!flag); } roleIsServer = !flag; @@ -1907,8 +1909,8 @@ final public class SSLEngineImpl extends SSLEngine { * change them to the corresponding default ones. */ if (roleIsServer != (!flag) && - ProtocolList.isDefaultProtocolList(enabledProtocols)) { - enabledProtocols = ProtocolList.getDefault(!flag); + sslContext.isDefaultProtocolList(enabledProtocols)) { + enabledProtocols = sslContext.getDefaultProtocolList(!flag); } roleIsServer = !flag; @@ -1951,8 +1953,7 @@ final public class SSLEngineImpl extends SSLEngine { * @return an array of cipher suite names */ public String[] getSupportedCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getSupported().toStringArray(); + return sslContext.getSuportedCipherSuiteList().toStringArray(); } /** @@ -1992,7 +1993,7 @@ final public class SSLEngineImpl extends SSLEngine { * @return an array of protocol names. */ public String[] getSupportedProtocols() { - return ProtocolList.getSupported().toStringArray(); + return sslContext.getSuportedProtocolList().toStringArray(); } /** diff --git a/jdk/src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java index f53d48a795b..c73271c316a 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, 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 @@ -49,7 +49,7 @@ public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory * java.security file is set. */ public SSLServerSocketFactoryImpl() throws Exception { - this.context = DefaultSSLContextImpl.getDefaultImpl(); + this.context = SSLContextImpl.DefaultSSLContext.getDefaultImpl(); } /** @@ -99,8 +99,7 @@ public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory * is encrypted to provide confidentiality. */ public String[] getDefaultCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getDefault().toStringArray(); + return context.getDefaultCipherSuiteList(true).toStringArray(); } /** @@ -114,8 +113,7 @@ public class SSLServerSocketFactoryImpl extends SSLServerSocketFactory * @return an array of cipher suite names */ public String[] getSupportedCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getSupported().toStringArray(); + return context.getSuportedCipherSuiteList().toStringArray(); } } diff --git a/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java index 0ea3cfa9fba..1423714659b 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLServerSocketImpl.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 @@ -153,8 +153,8 @@ class SSLServerSocketImpl extends SSLServerSocket throw new SSLException("No Authentication context given"); } sslContext = context; - enabledCipherSuites = CipherSuiteList.getDefault(); - enabledProtocols = ProtocolList.getDefault(true); + enabledCipherSuites = sslContext.getDefaultCipherSuiteList(true); + enabledProtocols = sslContext.getDefaultProtocolList(true); } /** @@ -168,8 +168,7 @@ class SSLServerSocketImpl extends SSLServerSocket * @return an array of cipher suite names */ public String[] getSupportedCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getSupported().toStringArray(); + return sslContext.getSuportedCipherSuiteList().toStringArray(); } /** @@ -194,7 +193,7 @@ class SSLServerSocketImpl extends SSLServerSocket } public String[] getSupportedProtocols() { - return ProtocolList.getSupported().toStringArray(); + return sslContext.getSuportedProtocolList().toStringArray(); } /** @@ -253,8 +252,8 @@ class SSLServerSocketImpl extends SSLServerSocket * change them to the corresponding default ones. */ if (useServerMode != (!flag) && - ProtocolList.isDefaultProtocolList(enabledProtocols)) { - enabledProtocols = ProtocolList.getDefault(!flag); + sslContext.isDefaultProtocolList(enabledProtocols)) { + enabledProtocols = sslContext.getDefaultProtocolList(!flag); } useServerMode = !flag; diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java index 8f2c68e5d1c..a4759545b24 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2007, 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,20 +42,18 @@ import javax.net.ssl.SSLSocket; * * @author David Brownell */ -final -public class SSLSocketFactoryImpl extends SSLSocketFactory -{ +final public class SSLSocketFactoryImpl extends SSLSocketFactory { + private static SSLContextImpl defaultContext; private SSLContextImpl context; - /** * Constructor used to instantiate the default factory. This method is * only called if the old "ssl.SocketFactory.provider" property in the * java.security file is set. */ public SSLSocketFactoryImpl() throws Exception { - this.context = DefaultSSLContextImpl.getDefaultImpl(); + this.context = SSLContextImpl.DefaultSSLContext.getDefaultImpl(); } /** @@ -167,11 +165,9 @@ public class SSLSocketFactoryImpl extends SSLSocketFactory * is encrypted to provide confidentiality. */ public String[] getDefaultCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getDefault().toStringArray(); + return context.getDefaultCipherSuiteList(false).toStringArray(); } - /** * Returns the names of the cipher suites which could be enabled for use * on an SSL connection. Normally, only a subset of these will actually @@ -181,7 +177,6 @@ public class SSLSocketFactoryImpl extends SSLSocketFactory * certain kinds of certificates to use certain cipher suites. */ public String[] getSupportedCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getSupported().toStringArray(); + return context.getSuportedCipherSuiteList().toStringArray(); } } diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java index 010f4cbce9a..8bc8c22a9fd 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.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 @@ -562,8 +562,11 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { clientVerifyData = new byte[0]; serverVerifyData = new byte[0]; - enabledCipherSuites = CipherSuiteList.getDefault(); - enabledProtocols = ProtocolList.getDefault(roleIsServer); + enabledCipherSuites = + sslContext.getDefaultCipherSuiteList(roleIsServer); + enabledProtocols = + sslContext.getDefaultProtocolList(roleIsServer); + inrec = null; // save the acc @@ -2170,8 +2173,8 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * change them to the corresponding default ones. */ if (roleIsServer != (!flag) && - ProtocolList.isDefaultProtocolList(enabledProtocols)) { - enabledProtocols = ProtocolList.getDefault(!flag); + sslContext.isDefaultProtocolList(enabledProtocols)) { + enabledProtocols = sslContext.getDefaultProtocolList(!flag); } roleIsServer = !flag; break; @@ -2192,8 +2195,8 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * change them to the corresponding default ones. */ if (roleIsServer != (!flag) && - ProtocolList.isDefaultProtocolList(enabledProtocols)) { - enabledProtocols = ProtocolList.getDefault(!flag); + sslContext.isDefaultProtocolList(enabledProtocols)) { + enabledProtocols = sslContext.getDefaultProtocolList(!flag); } roleIsServer = !flag; connectionState = cs_START; @@ -2230,8 +2233,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * @return an array of cipher suite names */ public String[] getSupportedCipherSuites() { - CipherSuiteList.clearAvailableCache(); - return CipherSuiteList.getSupported().toStringArray(); + return sslContext.getSuportedCipherSuiteList().toStringArray(); } /** @@ -2271,7 +2273,7 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * @return an array of protocol names. */ public String[] getSupportedProtocols() { - return ProtocolList.getSupported().toStringArray(); + return sslContext.getSuportedProtocolList().toStringArray(); } /** diff --git a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java index bba258670d8..16cb35cd42e 100644 --- a/jdk/src/share/classes/sun/security/ssl/SunJSSE.java +++ b/jdk/src/share/classes/sun/security/ssl/SunJSSE.java @@ -204,22 +204,21 @@ public abstract class SunJSSE extends java.security.Provider { put("Alg.Alias.TrustManagerFactory.SunPKIX", "PKIX"); put("Alg.Alias.TrustManagerFactory.X509", "PKIX"); put("Alg.Alias.TrustManagerFactory.X.509", "PKIX"); - if (isfips == false) { - put("SSLContext.SSL", - "sun.security.ssl.SSLContextImpl"); - put("SSLContext.SSLv3", - "sun.security.ssl.SSLContextImpl"); - } - put("SSLContext.TLS", - "sun.security.ssl.SSLContextImpl"); + put("SSLContext.TLSv1", - "sun.security.ssl.SSLContextImpl"); + "sun.security.ssl.SSLContextImpl$TLS10Context"); + put("Alg.Alias.SSLContext.TLS", "TLSv1"); + if (isfips == false) { + put("Alg.Alias.SSLContext.SSL", "TLSv1"); + put("Alg.Alias.SSLContext.SSLv3", "TLSv1"); + } + put("SSLContext.TLSv1.1", - "sun.security.ssl.SSLContextImpl"); + "sun.security.ssl.SSLContextImpl$TLS11Context"); put("SSLContext.TLSv1.2", - "sun.security.ssl.SSLContextImpl"); + "sun.security.ssl.SSLContextImpl$TLS12Context"); put("SSLContext.Default", - "sun.security.ssl.DefaultSSLContextImpl"); + "sun.security.ssl.SSLContextImpl$DefaultSSLContext"); /* * KeyStore diff --git a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java index 9eee5421da5..4fa1826cb37 100644 --- a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java +++ b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.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 @@ -191,8 +191,8 @@ public class ManifestEntryVerifier { * * */ - public CodeSigner[] verify(Hashtable<String, CodeSigner[]> verifiedSigners, - Hashtable<String, CodeSigner[]> sigFileSigners) + public CodeSigner[] verify(Map<String, CodeSigner[]> verifiedSigners, + Map<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 new file mode 100644 index 00000000000..fd00c1299a3 --- /dev/null +++ b/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java @@ -0,0 +1,251 @@ +/* + * 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 96f425a46b5..6c4439d4c1a 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 raw bytes of the .SF file */ - private byte sfBytes[]; + // the content of the raw .SF file as an InputStream + private InputStream sfStream; /** the name of the signature block file, uppercased and without * the extension (.DSA/.RSA/.EC) @@ -66,6 +66,9 @@ public class SignatureFileVerifier { /** the ManifestDigester */ private ManifestDigester md; + /** The MANIFEST.MF */ + private Manifest man; + /** cache of created MessageDigest objects */ private HashMap<String, MessageDigest> createdDigests; @@ -83,6 +86,7 @@ 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[]) @@ -94,13 +98,18 @@ public class SignatureFileVerifier { try { obj = Providers.startJarVerification(); block = new PKCS7(rawBytes); - sfBytes = block.getContentInfo().getData(); + byte[] contentData = block.getContentInfo().getData(); + if (contentData != null) { + sfStream = new ByteArrayInputStream(contentData); + } 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; } @@ -108,31 +117,13 @@ public class SignatureFileVerifier { /** * returns true if we need the .SF file */ - public boolean needSignatureFileBytes() + public boolean needSignatureFile() { - - return sfBytes == null; + return sfStream == null; } - - /** - * 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; + public void setSignatureFile(InputStream ins) { + this.sfStream = ins; } /** @@ -145,12 +136,18 @@ public class SignatureFileVerifier { * Signature File or PKCS7 block file name */ public static boolean isBlockOrSF(String s) { - // 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; + 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"); } /** get digest from cache */ @@ -180,7 +177,7 @@ public class SignatureFileVerifier { * * */ - public void process(Hashtable<String, CodeSigner[]> signers, + public void process(Map<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException @@ -197,31 +194,86 @@ public class SignatureFileVerifier { } - private void processImpl(Hashtable<String, CodeSigner[]> signers, + private void processImpl(Map<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException { - Manifest sf = new Manifest(); - sf.read(new ByteArrayInputStream(sfBytes)); + SignatureFileManifest sf = new SignatureFileManifest(); + InputStream ins = sfStream; - String version = - sf.getMainAttributes().getValue(Attributes.Name.SIGNATURE_VERSION); + 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(); - if ((version == null) || !(version.equalsIgnoreCase("1.0"))) { - // XXX: should this be an exception? - // for now we just ignore this signature file - return; + PKCS7.PKCS7Verifier[] pvs = new PKCS7.PKCS7Verifier[sLen]; + for (int i=0; i<sLen; i++) { + pvs[i] = PKCS7.PKCS7Verifier.from(block, block.getSignerInfos()[i]); } - SignerInfo[] infos = block.verify(sfBytes); + /* + * 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); - if (infos == null) { + 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()) { throw new SecurityException("cannot verify signature block file " + name); } - BASE64Decoder decoder = new BASE64Decoder(); + SignerInfo[] infos = + intResult.toArray(new SignerInfo[intResult.size()]); CodeSigner[] newSigners = getSigners(infos, block); @@ -229,26 +281,37 @@ 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"); } - // go through each section in the signature file + 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 + 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); @@ -593,7 +656,6 @@ 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; @@ -613,8 +675,6 @@ 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; @@ -638,7 +698,7 @@ public class SignatureFileVerifier { } void updateSigners(CodeSigner[] newSigners, - Hashtable<String, CodeSigner[]> signers, String name) { + Map<String, CodeSigner[]> signers, String name) { CodeSigner[] oldSigners = signers.get(name); 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"}, diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties index b77e202a121..5e8f14b8de1 100644 --- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties +++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_de.properties @@ -65,6 +65,8 @@ # adp=Andorranische Pesete aed=UAE Dirham +afa=Afghani (1927-2002) +afn=Afghani all=Lek amd=Dram ang=Niederl. Antillen Gulden @@ -85,6 +87,7 @@ bhd=Bahrain-Dinar bif=Burundi-Franc bmd=Bermuda-Dollar bnd=Brunei-Dollar +bob=Boliviano bov=Mvdol brl=Real bsd=Bahama-Dollar @@ -106,6 +109,7 @@ cup=Kubanischer Peso cve=Kap Verde Escudo cyp=Zypern-Pfund czk=Tschechische Krone +dem=Deutsche Mark djf=Dschibuti-Franc dkk=D\u00e4nische Krone dop=Dominikanischer Peso @@ -176,7 +180,9 @@ mro=Ouguiya mtl=Maltesische Lira mur=Mauritius-Rupie mvr=Rufiyaa +mwk=Malawi Kwacha mxn=Mexikanischer Peso +mxv=Mexican Unidad de Inversion (UDI) myr=Malaysischer Ringgit mzm=Alter Metical mzn=Metical @@ -217,6 +223,7 @@ sos=Somalia-Schilling srd=Surinamischer Dollar srg=Suriname Gulden std=Dobra +svc=El Salvador Colon syp=Syrisches Pfund szl=Lilangeni thb=Baht diff --git a/jdk/src/share/classes/sun/util/resources/CurrencyNames_it.properties b/jdk/src/share/classes/sun/util/resources/CurrencyNames_it.properties index b2953430b5a..9e3ad2a2ff2 100644 --- a/jdk/src/share/classes/sun/util/resources/CurrencyNames_it.properties +++ b/jdk/src/share/classes/sun/util/resources/CurrencyNames_it.properties @@ -86,6 +86,7 @@ bhd=Dinaro del Bahraini bif=Franco del Burundi bmd=Dollaro delle Bermuda bnd=Dollaro del Brunei +bob=Boliviano bov=Mvdol Boliviano brl=Real Brasiliano bsd=Dollaro delle Bahamas diff --git a/jdk/src/share/javavm/export/jvm.h b/jdk/src/share/javavm/export/jvm.h index 303f66089eb..d1dfefca47f 100644 --- a/jdk/src/share/javavm/export/jvm.h +++ b/jdk/src/share/javavm/export/jvm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2008, 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 @@ -1423,7 +1423,8 @@ typedef struct { * the new bit is also added in the main/baseline. */ unsigned int thread_park_blocker : 1; - unsigned int : 31; + unsigned int post_vm_init_hook_enabled : 1; + unsigned int : 30; unsigned int : 32; unsigned int : 32; } jdk_version_info; diff --git a/jdk/src/share/native/common/jdk_util.c b/jdk/src/share/native/common/jdk_util.c index 2fb3366d740..e737982893e 100644 --- a/jdk/src/share/native/common/jdk_util.c +++ b/jdk/src/share/native/common/jdk_util.c @@ -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 @@ -98,4 +98,8 @@ JDK_GetVersionInfo0(jdk_version_info* info, size_t info_size) { info->update_version = jdk_update_version; info->special_update_version = (unsigned int) jdk_special_version; info->thread_park_blocker = 1; + // Advertise presence of sun.misc.PostVMInitHook: + // future optimization: detect if this is enabled. + info->post_vm_init_hook_enabled = 1; + } diff --git a/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java b/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java new file mode 100644 index 00000000000..f7daf05244f --- /dev/null +++ b/jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java @@ -0,0 +1,287 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.util.Arrays; +import java.util.Random; + +import static java.lang.Integer.parseInt; + +/** + * MergeExample is a class that runs a demo benchmark of the {@code ForkJoin} framework + * by benchmarking a {@link MergeSort} algorithm that is implemented using + * {@link java.util.concurrent.RecursiveAction}. + * The {@code ForkJoin} framework is setup with different parallelism levels + * and the sort is executed with arrays of different sizes to see the + * trade offs by using multiple threads for different sizes of the array. + */ +public class MergeDemo { + // Use a fixed seed to always get the same random values back + private final Random random = new Random(759123751834L); + private static final int ITERATIONS = 10; + + /** + * Represents the formula {@code f(n) = start + (step * n)} for n = 0 & n < iterations + */ + private static class Range { + private final int start; + private final int step; + private final int iterations; + + private Range(int start, int step, int iterations) { + this.start = start; + this.step = step; + this.iterations = iterations; + } + + /** + * Parses start, step and iterations from args + * @param args the string array containing the arguments + * @param start which element to start the start argument from + * @return the constructed range + */ + public static Range parse(String[] args, int start) { + if (args.length < start + 3) { + throw new IllegalArgumentException("Too few elements in array"); + } + return new Range(parseInt(args[start]), parseInt(args[start + 1]), parseInt(args[start + 2])); + } + + public int get(int iteration) { + return start + (step * iteration); + } + + public int getIterations() { + return iterations; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append(start).append(" ").append(step).append(" ").append(iterations); + return builder.toString(); + } + } + + /** + * Wraps the different parameters that is used when running the MergeExample. + * {@code sizes} represents the different array sizes + * {@code parallelism} represents the different parallelism levels + */ + private static class Configuration { + private final Range sizes; + private final Range parallelism; + + private final static Configuration defaultConfig = new Configuration(new Range(20000, 20000, 10), + new Range(2, 2, 10)); + + private Configuration(Range sizes, Range parallelism) { + this.sizes = sizes; + this.parallelism = parallelism; + } + + /** + * Parses the arguments and attempts to create a configuration containing the + * parameters for creating the array sizes and parallelism sizes + * @param args the input arguments + * @return the configuration + */ + public static Configuration parse(String[] args) { + if (args.length == 0) { + return defaultConfig; + } else { + try { + if (args.length == 6) { + return new Configuration(Range.parse(args, 0), Range.parse(args, 3)); + } + } catch (NumberFormatException e) { + System.err.println("MergeExample: error: Argument was not a number."); + } + System.err.println("MergeExample <size start> <size step> <size steps> <parallel start> <parallel step>" + + " <parallel steps>"); + System.err.println("example: MergeExample 20000 10000 3 1 1 4"); + System.err.println("example: will run with arrays of sizes 20000, 30000, 40000" + + " and parallelism: 1, 2, 3, 4"); + return null; + } + } + + /** + * Creates an array for reporting the test result time in + * @return an array containing {@code sizes.iterations * parallelism.iterations} elements + */ + private long[][] createTimesArray() { + return new long[sizes.getIterations()][parallelism.getIterations()]; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(""); + if (this == defaultConfig) { + builder.append("Default configuration. "); + } + builder.append("Running with parameters: "); + builder.append(sizes); + builder.append(" "); + builder.append(parallelism); + return builder.toString(); + } + } + + /** + * Generates an array of {@code elements} random elements + * @param elements the number of elements requested in the array + * @return an array of {@code elements} random elements + */ + private int[] generateArray(int elements) { + int[] array = new int[elements]; + for (int i = 0; i < elements; ++i) { + array[i] = random.nextInt(); + } + return array; + } + + /** + * Runs the test + * @param config contains the settings for the test + */ + private void run(Configuration config) { + Range sizes = config.sizes; + Range parallelism = config.parallelism; + + // Run a couple of sorts to make the JIT compile / optimize the code + // which should produce somewhat more fair times + warmup(); + + long[][] times = config.createTimesArray(); + + for (int size = 0; size < sizes.getIterations(); size++) { + runForSize(parallelism, sizes.get(size), times, size); + } + + printResults(sizes, parallelism, times); + } + + /** + * Prints the results as a table + * @param sizes the different sizes of the arrays + * @param parallelism the different parallelism levels used + * @param times the median times for the different sizes / parallelism + */ + private void printResults(Range sizes, Range parallelism, long[][] times) { + System.out.println("Time in milliseconds. Y-axis: number of elements. X-axis parallelism used."); + long[] sums = new long[times[0].length]; + System.out.format("%8s ", ""); + for (int i = 0; i < times[0].length; i++) { + System.out.format("%4d ", parallelism.get(i)); + } + System.out.println(""); + for (int size = 0; size < sizes.getIterations(); size++) { + System.out.format("%8d: ", sizes.get(size)); + for (int i = 0; i < times[size].length; i++) { + sums[i] += times[size][i]; + System.out.format("%4d ", times[size][i]); + } + System.out.println(""); + } + System.out.format("%8s: ", "Total"); + for (long sum : sums) { + System.out.format("%4d ", sum); + } + System.out.println(""); + } + + private void runForSize(Range parallelism, int elements, long[][] times, int size) { + for (int step = 0; step < parallelism.getIterations(); step++) { + long time = runForParallelism(ITERATIONS, elements, parallelism.get(step)); + times[size][step] = time; + } + } + + /** + * Runs <i>iterations</i> number of test sorts of a random array of <i>element</i> length + * @param iterations number of iterations + * @param elements number of elements in the random array + * @param parallelism parallelism for the ForkJoin framework + * @return the median time of runs + */ + private long runForParallelism(int iterations, int elements, int parallelism) { + MergeSort mergeSort = new MergeSort(parallelism); + long[] times = new long[iterations]; + + for (int i = 0; i < iterations; i++) { + // Suggest the VM to run a garbage collection to reduce the risk of getting one + // while running the test run + System.gc(); + long start = System.currentTimeMillis(); + mergeSort.sort(generateArray(elements)); + times[i] = System.currentTimeMillis() - start; + } + + return medianValue(times); + } + + /** + * Calculates the median value of the array + * @param times array of times + * @return the median value + */ + private long medianValue(long[] times) { + if (times.length == 0) { + throw new IllegalArgumentException("Empty array"); + } + // Make a copy of times to avoid having side effects on the parameter value + Arrays.sort(times.clone()); + long median = times[times.length / 2]; + if (times.length > 1 && times.length % 2 != 0) { + median = (median + times[times.length / 2 + 1]) / 2; + } + return median; + } + + /** + * Generates 1000 arrays of 1000 elements and sorts them as a warmup + */ + private void warmup() { + MergeSort mergeSort = new MergeSort(Runtime.getRuntime().availableProcessors()); + for (int i = 0; i < 1000; i++) { + mergeSort.sort(generateArray(1000)); + } + } + + public static void main(String[] args) { + Configuration configuration = Configuration.parse(args); + if (configuration == null) { + System.exit(1); + } + System.out.println(configuration); + new MergeDemo().run(configuration); + } +} diff --git a/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java b/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java new file mode 100644 index 00000000000..b9cf0f50c16 --- /dev/null +++ b/jdk/src/share/sample/forkjoin/mergesort/MergeSort.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.util.Arrays; +import java.util.concurrent.ForkJoinPool; +import java.util.concurrent.ForkJoinTask; +import java.util.concurrent.RecursiveAction; + +/** + * A class for sorting an array of {@code ints} in parallel. + * A {@code ForkJoinPool} is used for the parallelism, using the merge sort + * algorithm the array is split into halves and a new sub task is created + * for each part. Each sub task is dispatched to the {@code ForkJoinPool} + * which will schedule the task to a {@code Thread}. + * This happens until the size of the array is at most 2 + * elements long. At this point the array is sorted using a simple compare + * and possibly a swap. The tasks then finish by using insert sort to + * merge the two just sorted arrays. + * + * The idea of this class is to demonstrate the usage of RecursiveAction not + * to implement the best possible parallel merge sort. This version creates + * a small array for each merge (creating a lot of objects), this could + * be avoided by keeping a single array. + */ +public class MergeSort { + private final ForkJoinPool pool; + + private static class MergeSortTask extends RecursiveAction { + private final int[] array; + private final int low; + private final int high; + private static final int THRESHOLD = 8; + + /** + * Creates a {@code MergeSortTask} containing the array and the bounds of the array + * + * @param array the array to sort + * @param low the lower element to start sorting at + * @param high the non-inclusive high element to sort to + */ + protected MergeSortTask(int[] array, int low, int high) { + this.array = array; + this.low = low; + this.high = high; + } + + @Override + protected void compute() { + if (high - low <= THRESHOLD) { + Arrays.sort(array, low, high); + } else { + int middle = low + ((high - low) >> 1); + // Execute the sub tasks and wait for them to finish + invokeAll(new MergeSortTask(array, low, middle), new MergeSortTask(array, middle, high)); + // Then merge the results + merge(middle); + } + } + + /** + * Merges the two sorted arrays this.low, middle - 1 and middle, this.high - 1 + * @param middle the index in the array where the second sorted list begins + */ + private void merge(int middle) { + if (array[middle - 1] < array[middle]) { + return; // the arrays are already correctly sorted, so we can skip the merge + } + int[] copy = new int[high - low]; + System.arraycopy(array, low, copy, 0, copy.length); + int copyLow = 0; + int copyHigh = high - low; + int copyMiddle = middle - low; + + for (int i = low, p = copyLow, q = copyMiddle; i < high; i++) { + if (q >= copyHigh || (p < copyMiddle && copy[p] < copy[q]) ) { + array[i] = copy[p++]; + } else { + array[i] = copy[q++]; + } + } + } + } + + /** + * Creates a {@code MergeSort} containing a ForkJoinPool with the indicated parallelism level + * @param parallelism the parallelism level used + */ + public MergeSort(int parallelism) { + pool = new ForkJoinPool(parallelism); + } + + /** + * Sorts all the elements of the given array using the ForkJoin framework + * @param array the array to sort + */ + public void sort(int[] array) { + ForkJoinTask<Void> job = pool.submit(new MergeSortTask(array, 0, array.length)); + job.join(); + } +} diff --git a/jdk/src/share/sample/nio/chatserver/ChatServer.java b/jdk/src/share/sample/nio/chatserver/ChatServer.java new file mode 100644 index 00000000000..09d7c26b868 --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/ChatServer.java @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.net.StandardSocketOption; +import java.nio.channels.*; +import java.util.*; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +/** + * Implements a chat server, this class holds the list of {@code clients} connected to the server. + * It sets up a server socket using AsynchronousServerSocketChannel listening to a specified port. + */ +public class ChatServer implements Runnable { + private final List<Client> connections = Collections.synchronizedList(new ArrayList<Client>()); + private int port; + private final AsynchronousServerSocketChannel listener; + private final AsynchronousChannelGroup channelGroup; + + /** + * + * @param port to listen to + * @throws java.io.IOException when failing to start the server + */ + public ChatServer(int port) throws IOException { + channelGroup = AsynchronousChannelGroup.withFixedThreadPool(Runtime.getRuntime().availableProcessors(), + Executors.defaultThreadFactory()); + this.port = port; + listener = createListener(channelGroup); + } + + /** + * + * @return The socket address that the server is bound to + * @throws java.io.IOException if an I/O error occurs + */ + public SocketAddress getSocketAddress() throws IOException { + return listener.getLocalAddress(); + } + + /** + * Start accepting connections + */ + public void run() { + + // call accept to wait for connections, tell it to call our CompletionHandler when there + // is a new incoming connection + listener.accept(null, new CompletionHandler<AsynchronousSocketChannel, Void>() { + @Override + public void completed(AsynchronousSocketChannel result, Void attachment) { + // request a new accept and handle the incoming connection + listener.accept(null, this); + handleNewConnection(result); + } + + @Override + public void failed(Throwable exc, Void attachment) { + } + }); + } + + /** + * Shuts down the server + * @throws InterruptedException if terminated while waiting for shutdown + * @throws IOException if failing to shutdown the channel group + */ + public void shutdown() throws InterruptedException, IOException { + channelGroup.shutdownNow(); + channelGroup.awaitTermination(1, TimeUnit.SECONDS); + } + + /* + * Creates a listener and starts accepting connections + */ + private AsynchronousServerSocketChannel createListener(AsynchronousChannelGroup channelGroup) throws IOException { + final AsynchronousServerSocketChannel listener = openChannel(channelGroup); + listener.setOption(StandardSocketOption.SO_REUSEADDR, true); + listener.bind(new InetSocketAddress(port)); + return listener; + } + + private AsynchronousServerSocketChannel openChannel(AsynchronousChannelGroup channelGroup) throws IOException { + return AsynchronousServerSocketChannel.open(channelGroup); + } + + /** + * Creates a new client and adds it to the list of connections. + * Sets the clients handler to the initial state of NameReader + * + * @param channel the newly accepted channel + */ + private void handleNewConnection(AsynchronousSocketChannel channel) { + Client client = new Client(channel, new ClientReader(this, new NameReader(this))); + try { + channel.setOption(StandardSocketOption.TCP_NODELAY, true); + } catch (IOException e) { + // ignore + } + connections.add(client); + client.run(); + } + + /** + * Sends a message to all clients except the source. + * The method is synchronized as it is desired that messages are sent to + * all clients in the same order as received. + * + * @param client the message source + * @param message the message to be sent + */ + public void writeMessageToClients(Client client, String message) { + synchronized (connections) { + for (Client clientConnection : connections) { + if (clientConnection != client) { + clientConnection.writeMessageFrom(client, message); + } + } + } + } + + public void removeClient(Client client) { + connections.remove(client); + } + + private static void usage() { + System.err.println("ChatServer [-port <port number>]"); + System.exit(1); + } + + public static void main(String[] args) throws IOException { + int port = 5000; + if (args.length != 0 && args.length != 2) { + usage(); + } else if (args.length == 2) { + try { + if (args[0].equals("-port")) { + port = Integer.parseInt(args[1]); + } else { + usage(); + } + } catch (NumberFormatException e) { + usage(); + } + } + System.out.println("Running on port " + port); + new ChatServer(port).run(); + } +} diff --git a/jdk/src/share/sample/nio/chatserver/Client.java b/jdk/src/share/sample/nio/chatserver/Client.java new file mode 100644 index 00000000000..d89516a22d9 --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/Client.java @@ -0,0 +1,204 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.AsynchronousSocketChannel; +import java.nio.channels.CompletionHandler; +import java.util.LinkedList; +import java.util.Queue; +import java.util.concurrent.atomic.AtomicReference; + +/** + * Client represents a remote connection to the chat server. + * It contains methods for reading and writing messages from the + * channel. + * Messages are considered to be separated by newline, so incomplete + * messages are buffered in the {@code Client}. + * + * All reads and writes are asynchronous and uses the nio2 asynchronous + * elements. + */ +class Client { + private final AsynchronousSocketChannel channel; + private AtomicReference<ClientReader> reader; + private String userName; + private final StringBuilder messageBuffer = new StringBuilder(); + + private final Queue<ByteBuffer> queue = new LinkedList<ByteBuffer>(); + private boolean writing = false; + + public Client(AsynchronousSocketChannel channel, ClientReader reader) { + this.channel = channel; + this.reader = new AtomicReference<ClientReader>(reader); + } + + /** + * Enqueues a write of the buffer to the channel. + * The call is asynchronous so the buffer is not safe to modify after + * passing the buffer here. + * + * @param buffer the buffer to send to the channel + */ + private void writeMessage(final ByteBuffer buffer) { + boolean threadShouldWrite = false; + + synchronized(queue) { + queue.add(buffer); + // Currently no thread writing, make this thread dispatch a write + if (!writing) { + writing = true; + threadShouldWrite = true; + } + } + + if (threadShouldWrite) { + writeFromQueue(); + } + } + + private void writeFromQueue() { + ByteBuffer buffer; + + synchronized (queue) { + buffer = queue.poll(); + if (buffer == null) { + writing = false; + } + } + + // No new data in buffer to write + if (writing) { + writeBuffer(buffer); + } + } + + private void writeBuffer(ByteBuffer buffer) { + channel.write(buffer, buffer, new CompletionHandler<Integer, ByteBuffer>() { + @Override + public void completed(Integer result, ByteBuffer buffer) { + if (buffer.hasRemaining()) { + channel.write(buffer, buffer, this); + } else { + // Go back and check if there is new data to write + writeFromQueue(); + } + } + + @Override + public void failed(Throwable exc, ByteBuffer attachment) { + } + }); + } + + /** + * Sends a message + * @param string the message + */ + public void writeStringMessage(String string) { + writeMessage(ByteBuffer.wrap(string.getBytes())); + } + + /** + * Send a message from a specific client + * @param client the message is sent from + * @param message to send + */ + public void writeMessageFrom(Client client, String message) { + if (reader.get().acceptsMessages()) { + writeStringMessage(client.getUserName() + ": " + message); + } + } + + /** + * Enqueue a read + * @param completionHandler callback on completed read + */ + public void read(CompletionHandler<Integer, ? super ByteBuffer> completionHandler) { + ByteBuffer input = ByteBuffer.allocate(256); + if (!channel.isOpen()) { + return; + } + channel.read(input, input, completionHandler); + } + + /** + * Closes the channel + */ + public void close() { + try { + channel.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Run the current states actions. + */ + public void run() { + reader.get().run(this); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public void setReader(ClientReader reader) { + this.reader.set(reader); + } + + public String getUserName() { + return userName; + } + + public void appendMessage(String message) { + synchronized (messageBuffer) { + messageBuffer.append(message); + } + } + + /** + * @return the next newline separated message in the buffer. null is returned if the buffer + * doesn't contain any newline. + */ + public String nextMessage() { + synchronized(messageBuffer) { + int nextNewline = messageBuffer.indexOf("\n"); + if (nextNewline == -1) { + return null; + } + String message = messageBuffer.substring(0, nextNewline + 1); + messageBuffer.delete(0, nextNewline + 1); + return message; + } + } +} diff --git a/jdk/src/share/sample/nio/chatserver/ClientReader.java b/jdk/src/share/sample/nio/chatserver/ClientReader.java new file mode 100644 index 00000000000..5308805ea04 --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/ClientReader.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.nio.ByteBuffer; +import java.nio.channels.CompletionHandler; + +/** + * Handles a cycle of reading / writing on the {@code Client}. + */ +class ClientReader { + private final DataReader callback; + private final ChatServer chatServer; + + ClientReader(ChatServer chatServer, DataReader callback) { + this.chatServer = chatServer; + this.callback = callback; + } + + public boolean acceptsMessages() { + return callback.acceptsMessages(); + } + + /** + * Runs a cycle of doing a beforeRead action and then enqueing a new + * read on the client. Handles closed channels and errors while reading. + * If the client is still connected a new round of actions are called. + */ + public void run(final Client client) { + callback.beforeRead(client); + client.read(new CompletionHandler<Integer, ByteBuffer>() { + @Override + public void completed(Integer result, ByteBuffer buffer) { + // if result is negative or zero the connection has been closed or something gone wrong + if (result < 1) { + client.close(); + System.out.println("Closing connection to " + client); + chatServer.removeClient(client); + } else { + callback.onData(client, buffer, result); + // enqueue next round of actions + client.run(); + } + } + + @Override + public void failed(Throwable exc, ByteBuffer buffer) { + client.close(); + chatServer.removeClient(client); + } + }); + } +} diff --git a/jdk/src/share/sample/nio/chatserver/DataReader.java b/jdk/src/share/sample/nio/chatserver/DataReader.java new file mode 100644 index 00000000000..574c69dd1bf --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/DataReader.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.nio.ByteBuffer; + +public interface DataReader { + void beforeRead(Client client); + void onData(Client client, ByteBuffer buffer, int bytes); + boolean acceptsMessages(); +} diff --git a/jdk/src/share/sample/nio/chatserver/MessageReader.java b/jdk/src/share/sample/nio/chatserver/MessageReader.java new file mode 100644 index 00000000000..46fde6f06f5 --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/MessageReader.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.nio.ByteBuffer; + +/** + * Writes all messages in our buffer to the other clients + * and appends new data read from the socket to our buffer + */ +class MessageReader implements DataReader { + private final ChatServer chatServer; + + public MessageReader(ChatServer chatServer) { + this.chatServer = chatServer; + } + + public boolean acceptsMessages() { + return true; + } + + /** + * Write all full messages in our buffer to + * the other clients + * + * @param client the client to read messages from + */ + @Override + public void beforeRead(Client client) { + // Check if we have any messages buffered and send them + String message = client.nextMessage(); + while (message != null) { + chatServer.writeMessageToClients(client, message); + message = client.nextMessage(); + } + } + + /** + * Append the read buffer to the clients message buffer + * @param client the client to append messages to + * @param buffer the buffer we received from the socket + * @param bytes the number of bytes read into the buffer + */ + @Override + public void onData(Client client, ByteBuffer buffer, int bytes) { + buffer.flip(); + // Just append the message on the buffer + client.appendMessage(new String(buffer.array(), 0, bytes)); + } +} diff --git a/jdk/src/share/sample/nio/chatserver/NameReader.java b/jdk/src/share/sample/nio/chatserver/NameReader.java new file mode 100644 index 00000000000..d0484d0fd04 --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/NameReader.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Oracle nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import java.nio.ByteBuffer; + +/** + * The first state a newly connected {@code Client} is in, this + * handles writing out the welcoming message and reads the response + * up to a newline. When a newline character have been received + * it changes the handler from NameReader to MessageReader on the + * client. + */ +class NameReader implements DataReader { + private final StringBuilder buffer = new StringBuilder(); + private final ChatServer chatServer; + private boolean once = true; + private static final String NEWLINE = "\n"; + + public NameReader(ChatServer chatServer) { + this.chatServer = chatServer; + } + + /** + * Writes the welcoming message to the client the first time this method + * is called. + * + * @param client the client to receive the message + */ + @Override + public void beforeRead(Client client) { + // if it is a long name that takes more than one read we only want to display Name: once. + if (once) { + client.writeStringMessage("Name: "); + once = false; + } + } + + public boolean acceptsMessages() { + return false; + } + + /** + * Receives incoming data from the socket, searches for a newline + * and tries to set the username if one is found + */ + @Override + public void onData(Client client, ByteBuffer buffer, int bytes) { + buffer.flip(); + String name; + name = this.buffer.append(new String(buffer.array(), 0, bytes)).toString(); + if (name.contains(NEWLINE)) { + onUserNameRead(client, name); + } + } + + /** + * Splits the name on the newlines, takes the first as the username + * and appends everything else to the clients message buffer. + * Sets the clients handler to MessageReader. + * + * @param client the client to set the username for + * @param name the string containing the buffered input + */ + private void onUserNameRead(Client client, String name) { + String[] strings = name.split(NEWLINE, 2); + client.setUserName(strings[0].trim()); + sendRemainingParts(client, strings); + client.setReader(new ClientReader(chatServer, new MessageReader(chatServer))); + client.writeStringMessage("Welcome " + client.getUserName() + "\n"); + } + + /** + * Appends the remaining parts to the clients message buffer + * + * @param client the client + * @param strings the messages to append to the buffer + */ + private void sendRemainingParts(Client client, String[] strings) { + for (int i = 1; i < strings.length; ++i) { + client.appendMessage(strings[i]); + } + } +} diff --git a/jdk/src/share/sample/nio/chatserver/README.txt b/jdk/src/share/sample/nio/chatserver/README.txt new file mode 100644 index 00000000000..ec9b4764a1c --- /dev/null +++ b/jdk/src/share/sample/nio/chatserver/README.txt @@ -0,0 +1,62 @@ +A Simple Chat Server Example + +INTRODUCTION +============ +This directory contains a very simple chat server, the server takes input from a +socket ("user") and sends it to all other connected sockets ("users") along with +the provided name the user was asked for when first connecting. + +The server was written to demonstrate the asynchronous I/O API in JDK 7. +The sample assumes the reader has some familiarity with the subject matter. + +SETUP +===== + +The server must be built with version 7 (or later) of the JDK. +The server is built with: + + % mkdir build + % javac -source 7 -target 7 -d build *.java + +EXECUTION +========= + + % java -classpath build ChatServer [-port <port number>] + + Usage: ChatServer [options] + options: + -port port port number + default: 5000 + +CLIENT EXECUTION +================ + +No client binary is included in the sample. +Connections can be made using for example the telnet command or any program +that supports a raw TCP connection to a port. + +SOURCE CODE OVERVIEW +==================== +ChatServer is the main class, it handles the startup and handles incoming +connections on the listening sockets. It keeps a list of connected client +and provides methods for sending a message to them. + +Client represents a connected user, it provides methods for reading/writing +from/to the underlying socket. It also contains a buffer of input read from +the user. + +DataReader provides the interface of the two states a user can +be in. Waiting for a name (and not receiving any messages while doing so, implemented +by NameReader) and waiting for messages from the user (implemented by MessageReader). + +ClientReader contains the "main loop" for a connected client. + +NameReader is the initial state for a new client, it sends the user a string and +waits for a response before changing the state to MessageReader. + +MessageReader is the main state for a client, it checks for new messages to send to +other clients and reads messages from the client. + +FINALLY +======= +This is a sample: it is not production quality and isn't optimized for performance. diff --git a/jdk/src/solaris/bin/java_md.c b/jdk/src/solaris/bin/java_md.c index 441d41efe25..361454f3136 100644 --- a/jdk/src/solaris/bin/java_md.c +++ b/jdk/src/solaris/bin/java_md.c @@ -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 @@ -46,6 +46,10 @@ #define JVM_DLL "libjvm.so" #define JAVA_DLL "libjava.so" +/* help jettison the LD_LIBRARY_PATH settings in the future */ +#ifndef SETENV_REQUIRED +#define SETENV_REQUIRED +#endif /* * If a processor / os combination has the ability to run binaries of * two data models and cohabitation of jre/jdk bits with both data @@ -106,10 +110,22 @@ static char *execname = NULL; * Previously the launcher modified the LD_LIBRARY_PATH appropriately for the * desired data model path, regardless if data models matched or not. The * launcher subsequently exec'ed the desired executable, in order to make the - * LD_LIBRARY_PATH path available for the runtime linker. This is no longer the - * case, the launcher dlopens the target libjvm.so. All other required - * libraries are loaded by the runtime linker, by virtue of the $ORIGIN paths - * baked into the shared libraries, by the build infrastructure at compile time. + * LD_LIBRARY_PATH path available, for the runtime linker. + * + * Now, in most cases,the launcher will dlopen the target libjvm.so. All + * required libraries are loaded by the runtime linker, using the + * $RPATH/$ORIGIN baked into the shared libraries at compile time. Therefore, + * in most cases, the launcher will only exec, if the data models are + * mismatched, and will not set any environment variables, regardless of the + * data models. + * + * However, if the environment contains a LD_LIBRARY_PATH, this will cause the + * launcher to inspect the LD_LIBRARY_PATH. The launcher will check + * a. if the LD_LIBRARY_PATH's first component is the the path to the desired + * libjvm.so + * b. if any other libjvm.so is found in any of the paths. + * If case b is true, then the launcher will set the LD_LIBRARY_PATH to the + * desired JRE and reexec, in order to propagate the environment. * * Main * (incoming argv) @@ -137,11 +153,11 @@ static char *execname = NULL; * | | * | | * \|/ \|/ - * YES (find the desired executable and exec child) + * YES Find the desired executable/library * | | * | | * \|/ \|/ - * CheckJvmType Main + * CheckJvmType RequiresSetenv * (removes -client, -server, etc.) * | * | @@ -156,7 +172,42 @@ static char *execname = NULL; * processes version options, * creates argument list for vm, * etc.) - * + * | + * | + * \|/ + * RequiresSetenv + * Is LD_LIBRARY_PATH + * and friends set ? --> NO --> Have Desired Model ? NO --> Re-exec --> Main + * YES YES --> Continue + * | + * | + * \|/ + * Path is desired JRE ? YES --> Have Desired Model ? NO --> Re-exec --> Main + * NO YES --> Continue + * | + * | + * \|/ + * Paths have well known + * jvm paths ? --> NO --> Have Desired Model ? NO --> Re-exec --> Main + * YES YES --> Continue + * | + * | + * \|/ + * Does libjvm.so exit + * in any of them ? --> NO --> Have Desired Model ? NO --> Re-exec --> Main + * YES YES --> Continue + * | + * | + * \|/ + * Set the LD_LIBRARY_PATH + * | + * | + * \|/ + * Re-exec + * | + * | + * \|/ + * Main */ static const char * SetExecname(char **argv); @@ -182,6 +233,130 @@ GetArchPath(int nbits) } } +#ifdef SETENV_REQUIRED +static jboolean +JvmExists(const char *path) { + char tmp[PATH_MAX + 1]; + struct stat statbuf; + JLI_Snprintf(tmp, PATH_MAX, "%s/%s", path, JVM_DLL); + if (stat(tmp, &statbuf) == 0) { + return JNI_TRUE; + } + return JNI_FALSE; +} +/* + * contains a lib/$LIBARCH/{server,client}/libjvm.so ? + */ +static jboolean +ContainsLibJVM(int wanted, const char *env) { + char clientPattern[PATH_MAX + 1]; + char serverPattern[PATH_MAX + 1]; + char *envpath; + char *path; + jboolean clientPatternFound; + jboolean serverPatternFound; + + /* fastest path */ + if (env == NULL) { + return JNI_FALSE; + } + + /* the usual suspects */ + JLI_Snprintf(clientPattern, PATH_MAX, "lib/%s/client", GetArchPath(wanted)); + JLI_Snprintf(serverPattern, PATH_MAX, "lib/%s/server", GetArchPath(wanted)); + + /* to optimize for time, test if any of our usual suspects are present. */ + clientPatternFound = JLI_StrStr(env, clientPattern) != NULL; + serverPatternFound = JLI_StrStr(env, serverPattern) != NULL; + if (clientPatternFound == JNI_FALSE && serverPatternFound == JNI_FALSE) { + return JNI_FALSE; + } + + /* + * we have a suspicious path component, check if it contains a libjvm.so + */ + envpath = JLI_StringDup(env); + for (path = JLI_StrTok(envpath, ":"); path != NULL; path = JLI_StrTok(NULL, ":")) { + if (clientPatternFound && JLI_StrStr(path, clientPattern) != NULL) { + if (JvmExists(path)) { + JLI_MemFree(envpath); + return JNI_TRUE; + } + } + if (serverPatternFound && JLI_StrStr(path, serverPattern) != NULL) { + if (JvmExists(path)) { + JLI_MemFree(envpath); + return JNI_TRUE; + } + } + } + JLI_MemFree(envpath); + return JNI_FALSE; +} + +/* + * Test whether the environment variable needs to be set, see flowchart. + */ +static jboolean +RequiresSetenv(int wanted, const char *jvmpath) { + char jpath[PATH_MAX + 1]; + char *llp; + char *dmllp = NULL; + char *p; /* a utility pointer */ + + llp = getenv("LD_LIBRARY_PATH"); +#ifdef __solaris__ + dmllp = (CURRENT_DATA_MODEL == 32) + ? getenv("LD_LIBRARY_PATH_32") + : getenv("LD_LIBRARY_PATH_64"); +#endif /* __solaris__ */ + /* no environment variable is a good environment variable */ + if (llp == NULL && dmllp == NULL) { + return JNI_FALSE; + } +#ifdef __linux + /* + * On linux, if a binary is running as sgid or suid, glibc sets + * LD_LIBRARY_PATH to the empty string for security purposes. (In contrast, + * on Solaris the LD_LIBRARY_PATH variable for a privileged binary does not + * lose its settings; but the dynamic linker does apply more scrutiny to the + * path.) The launcher uses the value of LD_LIBRARY_PATH to prevent an exec + * loop, here and further downstream. Therefore, if we are running sgid or + * suid, this function's setting of LD_LIBRARY_PATH will be ineffective and + * we should case a return from the calling function. Getting the right + * libraries will be handled by the RPATH. In reality, this check is + * redundant, as the previous check for a non-null LD_LIBRARY_PATH will + * return back to the calling function forthwith, it is left here to safe + * guard against any changes, in the glibc's existing security policy. + */ + if ((getgid() != getegid()) || (getuid() != geteuid())) { + return JNI_FALSE; + } +#endif /* __linux */ + + /* + * Prevent recursions. Since LD_LIBRARY_PATH is the one which will be set by + * previous versions of the JRE, thus it is the only path that matters here. + * So we check to see if the desired JRE is set. + */ + JLI_StrNCpy(jpath, jvmpath, PATH_MAX); + p = JLI_StrRChr(jpath, '/'); + *p = '\0'; + if (llp != NULL && JLI_StrNCmp(llp, jpath, JLI_StrLen(jpath)) == 0) { + return JNI_FALSE; + } + + /* scrutinize all the paths further */ + if (llp != NULL && ContainsLibJVM(wanted, llp)) { + return JNI_TRUE; + } + if (dmllp != NULL && ContainsLibJVM(wanted, dmllp)) { + return JNI_TRUE; + } + return JNI_FALSE; +} +#endif /* SETENV_REQUIRED */ + void CreateExecutionEnvironment(int *pargc, char ***pargv, char jrepath[], jint so_jrepath, @@ -195,7 +370,6 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, * informative to issue an error message based on whether or not the * os/processor combination has dual mode capabilities. */ - jboolean jvmpathExists; /* Compute/set the name of the executable */ @@ -207,13 +381,24 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, char * jvmtype = NULL; int argc = *pargc; char **argv = *pargv; - int running = CURRENT_DATA_MODEL; int wanted = running; /* What data mode is being asked for? Current model is fine unless another model is asked for */ +#ifdef SETENV_REQUIRED + jboolean mustsetenv = JNI_FALSE; + char *runpath = NULL; /* existing effective LD_LIBRARY_PATH setting */ + char* new_runpath = NULL; /* desired new LD_LIBRARY_PATH string */ + char* newpath = NULL; /* path on new LD_LIBRARY_PATH */ + char* lastslash = NULL; + char** newenvp = NULL; /* current environment */ +#ifdef __solaris__ + char* dmpath = NULL; /* data model specific LD_LIBRARY_PATH, + Solaris only */ +#endif /* __solaris__ */ +#endif /* SETENV_REQUIRED */ char** newargv = NULL; int newargc = 0; @@ -300,9 +485,18 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, } /* * we seem to have everything we need, so without further ado - * we return back. + * we return back, otherwise proceed to set the environment. */ +#ifdef SETENV_REQUIRED + mustsetenv = RequiresSetenv(wanted, jvmpath); + JLI_TraceLauncher("mustsetenv: %s\n", mustsetenv ? "TRUE" : "FALSE"); + + if (mustsetenv == JNI_FALSE) { + return; + } +#else return; +#endif /* SETENV_REQUIRED */ } else { /* do the same speculatively or exit */ #ifdef DUAL_MODE if (running != wanted) { @@ -331,67 +525,240 @@ CreateExecutionEnvironment(int *pargc, char ***pargv, /* exec child can do error checking on the existence of the path */ jvmpathExists = GetJVMPath(jrepath, jvmtype, jvmpath, so_jvmpath, GetArchPath(wanted)); - +#ifdef SETENV_REQUIRED + mustsetenv = RequiresSetenv(wanted, jvmpath); +#endif /* SETENV_REQUIRED */ } #else JLI_ReportErrorMessage(JRE_ERROR2, wanted); exit(1); #endif - } - - { - char *newexec = execname; -#ifdef DUAL_MODE - /* - * If the data model is being changed, the path to the - * executable must be updated accordingly; the executable name - * and directory the executable resides in are separate. In the - * case of 32 => 64, the new bits are assumed to reside in, e.g. - * "olddir/LIBARCH64NAME/execname"; in the case of 64 => 32, - * the bits are assumed to be in "olddir/../execname". For example, - * - * olddir/sparcv9/execname - * olddir/amd64/execname - * - * for Solaris SPARC and Linux amd64, respectively. - */ - - if (running != wanted) { - char *oldexec = JLI_StrCpy(JLI_MemAlloc(JLI_StrLen(execname) + 1), execname); - char *olddir = oldexec; - char *oldbase = JLI_StrRChr(oldexec, '/'); - - - newexec = JLI_MemAlloc(JLI_StrLen(execname) + 20); - *oldbase++ = 0; - sprintf(newexec, "%s/%s/%s", olddir, - ((wanted==64) ? LIBARCH64NAME : ".."), oldbase); - argv[0] = newexec; } +#ifdef SETENV_REQUIRED + if (mustsetenv) { + /* + * We will set the LD_LIBRARY_PATH as follows: + * + * o $JVMPATH (directory portion only) + * o $JRE/lib/$LIBARCHNAME + * o $JRE/../lib/$LIBARCHNAME + * + * followed by the user's previous effective LD_LIBRARY_PATH, if + * any. + */ + +#ifdef __solaris__ + /* + * Starting in Solaris 7, ld.so.1 supports three LD_LIBRARY_PATH + * variables: + * + * 1. LD_LIBRARY_PATH -- used for 32 and 64 bit searches if + * data-model specific variables are not set. + * + * 2. LD_LIBRARY_PATH_64 -- overrides and replaces LD_LIBRARY_PATH + * for 64-bit binaries. + * + * 3. LD_LIBRARY_PATH_32 -- overrides and replaces LD_LIBRARY_PATH + * for 32-bit binaries. + * + * The vm uses LD_LIBRARY_PATH to set the java.library.path system + * property. To shield the vm from the complication of multiple + * LD_LIBRARY_PATH variables, if the appropriate data model + * specific variable is set, we will act as if LD_LIBRARY_PATH had + * the value of the data model specific variant and the data model + * specific variant will be unset. Note that the variable for the + * *wanted* data model must be used (if it is set), not simply the + * current running data model. + */ + + switch (wanted) { + case 0: + if (running == 32) { + dmpath = getenv("LD_LIBRARY_PATH_32"); + wanted = 32; + } else { + dmpath = getenv("LD_LIBRARY_PATH_64"); + wanted = 64; + } + break; + + case 32: + dmpath = getenv("LD_LIBRARY_PATH_32"); + break; + + case 64: + dmpath = getenv("LD_LIBRARY_PATH_64"); + break; + + default: + JLI_ReportErrorMessage(JRE_ERROR3, __LINE__); + exit(1); /* unknown value in wanted */ + break; + } + + /* + * If dmpath is NULL, the relevant data model specific variable is + * not set and normal LD_LIBRARY_PATH should be used. + */ + if (dmpath == NULL) { + runpath = getenv("LD_LIBRARY_PATH"); + } else { + runpath = dmpath; + } +#else + /* + * If not on Solaris, assume only a single LD_LIBRARY_PATH + * variable. + */ + runpath = getenv("LD_LIBRARY_PATH"); +#endif /* __solaris__ */ + + /* runpath contains current effective LD_LIBRARY_PATH setting */ + + jvmpath = JLI_StringDup(jvmpath); + new_runpath = JLI_MemAlloc(((runpath != NULL) ? JLI_StrLen(runpath) : 0) + + 2 * JLI_StrLen(jrepath) + 2 * JLI_StrLen(arch) + + JLI_StrLen(jvmpath) + 52); + newpath = new_runpath + JLI_StrLen("LD_LIBRARY_PATH="); + + + /* + * Create desired LD_LIBRARY_PATH value for target data model. + */ + { + /* remove the name of the .so from the JVM path */ + lastslash = JLI_StrRChr(jvmpath, '/'); + if (lastslash) + *lastslash = '\0'; + + sprintf(new_runpath, "LD_LIBRARY_PATH=" + "%s:" + "%s/lib/%s:" + "%s/../lib/%s", + jvmpath, +#ifdef DUAL_MODE + jrepath, GetArchPath(wanted), + jrepath, GetArchPath(wanted) +#else + jrepath, arch, + jrepath, arch #endif - JLI_TraceLauncher("TRACER_MARKER:About to EXEC\n"); - (void)fflush(stdout); - (void)fflush(stderr); - execv(newexec, argv); - JLI_ReportErrorMessageSys(JRE_ERROR4, newexec); + ); -#ifdef DUAL_MODE - if (running != wanted) { - JLI_ReportErrorMessage(JRE_ERROR5, wanted, running); -# ifdef __solaris__ -# ifdef __sparc - JLI_ReportErrorMessage(JRE_ERROR6); -# else - JLI_ReportErrorMessage(JRE_ERROR7); -# endif - } -# endif + + /* + * Check to make sure that the prefix of the current path is the + * desired environment variable setting, though the RequiresSetenv + * checks if the desired runpath exists, this logic does a more + * comprehensive check. + */ + if (runpath != NULL && + JLI_StrNCmp(newpath, runpath, JLI_StrLen(newpath)) == 0 && + (runpath[JLI_StrLen(newpath)] == 0 || runpath[JLI_StrLen(newpath)] == ':') && + (running == wanted) /* data model does not have to be changed */ +#ifdef __solaris__ + && (dmpath == NULL) /* data model specific variables not set */ +#endif + ) { + + return; + + } + } + + /* + * Place the desired environment setting onto the prefix of + * LD_LIBRARY_PATH. Note that this prevents any possible infinite + * loop of execv() because we test for the prefix, above. + */ + if (runpath != 0) { + JLI_StrCat(new_runpath, ":"); + JLI_StrCat(new_runpath, runpath); + } + + if (putenv(new_runpath) != 0) { + exit(1); /* problem allocating memory; LD_LIBRARY_PATH not set + properly */ + } + + /* + * Unix systems document that they look at LD_LIBRARY_PATH only + * once at startup, so we have to re-exec the current executable + * to get the changed environment variable to have an effect. + */ + +#ifdef __solaris__ + /* + * If dmpath is not NULL, remove the data model specific string + * in the environment for the exec'ed child. + */ + if (dmpath != NULL) + (void)UnsetEnv((wanted == 32) ? "LD_LIBRARY_PATH_32" : "LD_LIBRARY_PATH_64"); #endif - } - exit(1); + newenvp = environ; + } +#endif /* SETENV_REQUIRED */ + { + char *newexec = execname; +#ifdef DUAL_MODE + /* + * If the data model is being changed, the path to the + * executable must be updated accordingly; the executable name + * and directory the executable resides in are separate. In the + * case of 32 => 64, the new bits are assumed to reside in, e.g. + * "olddir/LIBARCH64NAME/execname"; in the case of 64 => 32, + * the bits are assumed to be in "olddir/../execname". For example, + * + * olddir/sparcv9/execname + * olddir/amd64/execname + * + * for Solaris SPARC and Linux amd64, respectively. + */ + + if (running != wanted) { + char *oldexec = JLI_StrCpy(JLI_MemAlloc(JLI_StrLen(execname) + 1), execname); + char *olddir = oldexec; + char *oldbase = JLI_StrRChr(oldexec, '/'); + + + newexec = JLI_MemAlloc(JLI_StrLen(execname) + 20); + *oldbase++ = 0; + sprintf(newexec, "%s/%s/%s", olddir, + ((wanted == 64) ? LIBARCH64NAME : ".."), oldbase); + argv[0] = newexec; + } +#endif /* DUAL_MODE */ + JLI_TraceLauncher("TRACER_MARKER:About to EXEC\n"); + (void) fflush(stdout); + (void) fflush(stderr); +#ifdef SETENV_REQUIRED + if (mustsetenv) { + execve(newexec, argv, newenvp); + } else { + execv(newexec, argv); + } +#else + execv(newexec, argv); +#endif /* SETENV_REQUIRED */ + JLI_ReportErrorMessageSys(JRE_ERROR4, newexec); + +#ifdef DUAL_MODE + if (running != wanted) { + JLI_ReportErrorMessage(JRE_ERROR5, wanted, running); +#ifdef __solaris__ +#ifdef __sparc + JLI_ReportErrorMessage(JRE_ERROR6); +#else + JLI_ReportErrorMessage(JRE_ERROR7); +#endif /* __sparc */ + } +#endif /* __solaris__ */ +#endif /* DUAL_MODE */ + + } + exit(1); } - } /* 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 @ +\f4¡Öapt ÆþÌç¡×\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 㯠+¥µ¡¼¥Ð¡¼Â¦¤Ç²Äǽ¤Ê¥â¥Ç¥ë¤Ï 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 +\f2¡ÖJava °Å¹æ²½¥¢¡¼¥­¥Æ¥¯¥Á¥ã¡¼ÍÑ¥×¥í¥Ð¥¤¥À¤Î¼ÂÁõÊýË¡¡×\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 +\f2¡ÖKeyTool 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 ¥Õ¥¡¥¤¥ëÆâ¤Ë¥¨¥ó¥È¥ê¤ò»ý¤Ä³Æ¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤ß¤Þ¤¹¡£ÆÉ¤ß¹þ¤ßÃæ¤Ë¥Õ¥¡¥¤¥ë¤Î¥À¥¤¥¸¥§¥¹¥È¤ò·×»»¤·¡¢·ë²Ì¤ò¥Þ¥Ë¥Õ¥§¥¹¥È¥»¥¯¥·¥ç¥óÆâ¤Î³ºÅö¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥À¥¤¥¸¥§¥¹¥È¤ÈÈæ³Ó¤·¤Þ¤¹¡£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 +\f2¡ÖAppendix A ¡×\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤Ï¡¢JAR ¥Õ¥¡¥¤¥ë¤Î½ð̾¤Ë»ÈÍѤ¹¤ëÈëÌ©¸°¤È¸ß´¹À­¤Î¤¢¤ë¤â¤Î¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢ÈëÌ©¸°¤Î¥¿¥¤¥×¤Ë±þ¤¸¤Æ SHA1withDSA¡¢SHA256withRSA¡¢SHA256withECDSA ¤Î¤¤¤º¤ì¤«¤¬»ÈÍѤµ¤ì¤Þ¤¹¡£»ØÄꤵ¤ì¤¿¥¢¥ë¥´¥ê¥º¥à¤Î¼ÂÁõ¤òÄ󶡤¹¤ë¥×¥í¥Ð¥¤¥À¤¬ÀÅŪ¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¤«¡¢¤¢¤ë¤¤¤Ï¥æ¡¼¥¶¡¼¤¬¤½¤Î¤è¤¦¤Ê¥×¥í¥Ð¥¤¥À¤ò \f2\-providerClass\fP ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¥³¥Þ¥ó¥É¤Î¼Â¹Ô¤¬¼ºÇÔ¤·¤Þ¤¹¡£ +.TP 3 +\-digestalg algorithm +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¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¡¢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 @ +\f2¡ÖJava ¥Á¥å¡¼¥È¥ê¥¢¥ë¡×\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.html¡ÖSecurity¡×\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 @ +\f2¡ÖJVMTI ¥¨¡¼¥¸¥§¥ó¥È¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×\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 @ +\f2¡ÖJVMTI ¥¨¡¼¥¸¥§¥ó¥È¤Î¥³¥Þ¥ó¥É¹Ô¥ª¥×¥·¥ç¥ó¡×\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 ¥Õ¥¡¥¤¥ë¤Î¥Þ¥Ë¥Õ¥§¥¹¥È¤Ë\f3¡ÖMain\-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_13¡¢1.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 ¤Ï¡¢SIGHUP¡¢SIGINT¡¢¤ª¤è¤Ó 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 ¤ò»ÈÍѤ¹¤ë¤È¡¢SIGINT¡¢SIGTERM¡¢SIGHUP¡¢¤ª¤è¤Ó 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 @ +\f2¡ÖJava ³ÈÄ¥µ¡Ç½¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡×\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 @ +\f2¡ÖHotSpot 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 引数を格ç´ã™ã‚‹å ´åˆã¯ã€æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã—ã¾ã™ã€‚ +\f2¡Öargfile¡×¤È¤¤¤¦Ì¾Á°¤Î°ú¿ô¥Õ¥¡¥¤¥ë¤Ë\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 @ +\f2¡ÖThe 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 @ +\f2¡ÖJava ³ÈÄ¥µ¡Ç½¥Õ¥ì¡¼¥à¥ï¡¼¥¯¡×\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 @ +\f2¡ÖIdentifiers¡×\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 @ +\f2¡ÖIdentifiers¡×\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 ¥É¥­¥å¥á¥ó¥È¤òÀ¸À®¤·¤Þ¤¹¡£É¸½à¥É¥Ã¥¯¥ì¥Ã¥È¤ò½¤Àµ¤Þ¤¿¤Ï¥µ¥Ö¥¯¥é¥¹²½¤¹¤ë¤³¤È¤ä¡¢HTML¡¢XML¡¢MIF¡¢RTF ¤Ê¤É¤Î¹¥¤ß¤Î½ÐÎÏ·Á¼°¤òÀ¸À®¤¹¤ëÆÈ¼«¤Î¥É¥Ã¥¯¥ì¥Ã¥È¤òµ­½Ò¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£¥É¥Ã¥¯¥ì¥Ã¥È¤È¤½¤Î»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢¼¡¤Î¹àÌܤò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ .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 Gosling¡¢Bill Joy¡¢Guy 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 \- MIF¡¢FrameMaker¡¢PDF ¤Î½ñ¼°¤Ç 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¡¢\f2¡Ödoc ¥³¥á¥ó¥È¡×\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 ¥³¥Þ¥ó¥É¤ËÅϤµ¤ì¡¢¥¢¥¯¥»¥¹½¤¾þ»Ò (public¡¢protected¡¢package\-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 @ +\f2¡ÖIdentifiers¡×\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)¡£Ä¾Îó²½²Äǽ¤«¤Ä³°Éô²½²Äǽ¤Ê¥¯¥é¥¹¤Ë´Ø¤¹¤ë¾ðÊóÍѤǤ¹¡£¤³¤ì¤é¤Î³Æ¥¯¥é¥¹¤Ë¤Ï¡¢Ä¾Îó²½¥Õ¥£¡¼¥ë¥É¤ª¤è¤Ó¥á¥½¥Ã¥É¤Ë´Ø¤¹¤ëÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤é¤Î¾ðÊó¤Ï¡¢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 @ +\f2¡ÖProposed 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 +¤³¤Î¥¿¥°¤¬É¬ÍפÊÍýͳ¤Ï¡¢À¸À®¥É¥­¥å¥á¥ó¥È¤¬¡¢¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤ÈƱ¤¸¿¼¤µ¤ò»ý¤Ä³¬Áع½Â¤¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë³ÊǼ¤µ¤ì¤ë¤«¤é¤Ç¤¹¡£¼¡¤ËÎã¤ò¼¨¤·¤Þ¤¹¡£ .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 @ +\f2¡ÖSun ¤Î»ÅÍÍ¡×\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 ã®ã‚¯ãƒ©ã‚¹ã¨ãƒ¡ãƒ³ãƒãƒ¼ã ã‘を表示ã—ã¾ã™ã€‚ +package¡¢protected¡¢¤ª¤è¤Ó 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 ¤ò¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¥á¥ê¥Ã¥È¤è¤ê¤â¡¢¥Ç¥Õ¥©¥ë¥È¤Ë¤¹¤ë¤¿¤á¤ËɬÍפȤʤ롢¸ß´¹À­¤Î¤Ê¤¤¥½¡¼¥¹¤ÎÊѹ¹¤ÎÊý¤¬Ééô¤¬Â礭¤«¤Ã¤¿¤¿¤á¤Ç¤¹¡£¤³¤Î·ï¤Ç³§ÍͤË;ʬ¤Î¼ê´Ö¤ò¤ª¤«¤±¤·¡¢º®Íð¤ò¾·¤¤¤¿¤³¤È¤ò¤ªÏͤӤ¤¤¿¤·¤Þ¤¹¡£ .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 ¥Ð¥¤¥È¤Î¥á¥â¥ê¡¼¤ò¥·¥¹¥Æ¥à¤Ç³ÎÊݤ·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢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 ã®ä¸­ã§å¼•用符を使ã†å ´åˆã¯ã€å¼•用符をエスケープã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ +³Æ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎºÇ²¼Éô¤ËÇÛÃÖ¤¹¤ë¥Æ¥­¥¹¥È¤ò»ØÄꤷ¤Þ¤¹¡£¤³¤Î¥Æ¥­¥¹¥È¤Ï¡¢²¼Éô¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤è¤ê²¼¤Î¡¢¥Ú¡¼¥¸¤ÎºÇ²¼Éô¤ËÇÛÃÖ¤µ¤ì¤Þ¤¹¡£ \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 ¤ÈÁêÂÐ URL¡¢¡Öhttp:¡×¥Ù¡¼¥¹¤È¡Ö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 ¤Ä¤Î°ú¿ô¤ËÊÌ¡¹¤Î¥Ñ¥¹¤ò»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó\fP¡£2 ¤Ä¤Î°ú¿ô¤¬Æ±°ì¤Ç¤¢¤ë¾ì¹ç¤Ï¡¢ \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 -出力ã®å„ãƒšãƒ¼ã‚¸ã®æœ€ä¸Šéƒ¨ã¨æœ€ä¸‹éƒ¨ã«ã‚るナビゲーションãƒãƒ¼ã‹ã‚‰ [ヘルプ] リンクをçœç•¥ã—ã¾ã™ã€‚ +½ÐÎϤγƥڡ¼¥¸¤ÎºÇ¾åÉô¤ÈºÇ²¼Éô¤Ë¤¢¤ë¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¤«¤é¡Ö¥Ø¥ë¥×¡×¥ê¥ó¥¯¤ò¾Êά¤·¤Þ¤¹¡£ .LP .TP 3 \-nonavbar -生æˆã•ã‚Œã‚‹ãƒšãƒ¼ã‚¸ã®æœ€ä¸Šéƒ¨ã¨æœ€ä¸‹éƒ¨ã«è¡¨ç¤ºã•れるナビゲーションãƒãƒ¼ã€ãƒ˜ãƒƒãƒ€ãƒ¼ã€ãŠã‚ˆã³ãƒ•ッターを生æˆã—ãªã„よã†ã«ã—ã¾ã™ã€‚ã“ã®ã‚ªãƒ—ションã¯ã€bottom オプションã«ã¯å½±éŸ¿ã‚’与ãˆã¾ã›ã‚“。\f2\-nonavbar\fP オプションã¯ã€å°åˆ·ã™ã‚‹ãŸã‚ã ã‘ã«ãƒ•ァイルを PostScript ã¾ãŸã¯ PDF ã«å¤‰æ›ã™ã‚‹å ´åˆãªã©ã€å†…容ã ã‘ãŒé‡è¦ã§ã€ãƒŠãƒ“ゲーションã®å¿…è¦ãŒãªã„å ´åˆã«ä¾¿åˆ©ã§ã™ã€‚ +À¸À®¤µ¤ì¤ë¥Ú¡¼¥¸¤ÎºÇ¾åÉô¤ÈºÇ²¼Éô¤Ëɽ¼¨¤µ¤ì¤ë¥Ê¥Ó¥²¡¼¥·¥ç¥ó¥Ð¡¼¡¢¥Ø¥Ã¥À¡¼¡¢¤ª¤è¤Ó¥Õ¥Ã¥¿¡¼¤òÀ¸À®¤·¤Ê¤¤¤è¤¦¤Ë¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢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 ¤Ï¼¡¤Î¥­¡¼¥ï¡¼¥É¤Ç³«»Ï¤·¤Þ¤¹¡£ .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 ¤È¤¤¤¦Ì¾Á°¤Î¤è¤¦¤Ë¡¢¥É¥Ã¥È (.) ¤ò¶èÀڤ국¹æ¤È¤¹¤ë̾Á°¤ò»È¤¤¤Þ¤¹\fP¡£Oracle ¤Ï¡¢º£¸å¤â̾Á°¤Ë¥É¥Ã¥È¤ò´Þ¤Þ¤Ê¤¤É¸½à¥¿¥°¤òºîÀ®¤·¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤¬ºîÀ®¤·¤¿¥¿¥°¤Ï¡¢Oracle ¤¬Ä󶡤¹¤ëƱ¤¸Ì¾Á°¤Î¥¿¥°¤Îưºî¤ò¥ª¡¼¥Ð¡¼¥é¥¤¥É¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ \f2@todo\fP ¤È¤¤¤¦Ì¾Á°¤Î¥¿¥°¤Þ¤¿¤Ï¥¿¥°¥ì¥Ã¥È¤ò¥æ¡¼¥¶¡¼¤¬ºîÀ®¤·¤¿¾ì¹ç¡¢Oracle ¤¬¤½¤Î¸åƱ¤¸Ì¾Á°¤Îɸ½à¥¿¥°¤òºîÀ®¤·¤¿¤È¤·¤Æ¤â¡¢¤½¤Îưºî¤Ï¾ï¤Ë¥æ¡¼¥¶¡¼¤¬ÄêµÁ¤·¤¿Æ°ºî¤ÈƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£ .LP -\f3注釈 vs. Javadoc ã‚¿ã‚°\fP \- 一般ã«ã€è¿½åŠ ã™ã‚‹å¿…è¦ã®ã‚るマークアップãŒã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã«å½±éŸ¿ã‚’与ãˆãŸã‚Šãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’生æˆã—ãŸã‚Šã™ã‚‹ãŸã‚ã®ã‚‚ã®ã§ã‚ã‚‹å ´åˆã€ãã®ãƒžãƒ¼ã‚¯ã‚¢ãƒƒãƒ—㯠javadoc ã‚¿ã‚°ã«ã™ã¹ãã§ã™ã€‚ ãれ以外ã®å ´åˆã¯æ³¨é‡ˆã«ã™ã¹ãã§ã™ã€‚ +\f3Ãí¼á vs. Javadoc ¥¿¥°\fP \- °ìÈ̤ˡ¢Äɲ乤ëɬÍפΤ¢¤ë¥Þ¡¼¥¯¥¢¥Ã¥×¤¬¡¢¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤Ë±Æ¶Á¤òÍ¿¤¨¤¿¤ê¥É¥­¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¤òÀ¸À®¤·¤¿¤ê¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¾ì¹ç¡¢¤½¤Î¥Þ¡¼¥¯¥¢¥Ã¥×¤Ï javadoc ¥¿¥°¤Ë¤¹¤Ù¤­¤Ç¤¹¡£¤½¤ì°Ê³°¤Î¾ì¹ç¤ÏÃí¼á¤Ë¤¹¤Ù¤­¤Ç¤¹¡£ .na -\f2「Comparing Annotations and Javadoc Tagsã€\fP @ +\f2¡ÖComparing 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 +¥½¡¼¥¹Æâ¤Ç³Æ¥¿¥Ö¤¬³ÍÆÀ¤¹¤ë¶õÇò¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£ .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 ·Á¼°¤Î¥É¥­¥å¥á¥ó¥È¤¬À¸À®¤µ¤ì¤Þ¤¹\fP¡£Javadoc ¥Ä¡¼¥ë¤Ï¡¢ \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 @ +\f2¡ÖJavadoc 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 ã®ã‚¯ãƒ©ã‚¹ã¨ãƒ¡ãƒ³ãƒãƒ¼ã ã‘を表示ã—ã¾ã™ã€‚ã“れã¯ãƒ‡ãƒ•ォルトã®è¨­å®šã§ã™ã€‚ +package¡¢protected¡¢¤ª¤è¤Ó 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 @ +\f2¡ÖJava 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 @ +\f2¡ÖJava 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 ¤Î¥×¥í¥»¥¹ ID¡£Java VM ¤Ï¡¢jconsole ¤ò¼Â¹Ô¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼ ID ¤ÈƱ¤¸¥æ¡¼¥¶¡¼ ID ¤ò»ÈÍѤ·¤Æ¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ .na -\f2「JMX 監視ãŠã‚ˆã³ç®¡ç†ã€\fP @ +\f2¡ÖJMX ´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 @ +\f2¡ÖJMX ´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 @ +\f2¡ÖJava ¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î´Æ»ë¤ª¤è¤Ó´ÉÍý¡×\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 (i¡¢j¡¢¤ª¤è¤Ó 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 ã§ã™ã€‚ +¥ª¥Ö¥¸¥§¥¯¥È³ä¤êÅö¤Æ¸Æ¤Ó½Ð¤·¥¹¥¿¥Ã¥¯¤ÎÄÉÀפò̵¸ú¤Ë¤·¤Þ¤¹¡£¥Ò¡¼¥×¥À¥ó¥×Æâ¤Ç³ä¤êÅö¤Æ¥µ¥¤¥È¾ðÊ󤬻ÈÍѤǤ­¤Ê¤¤¾ì¹ç¡¢¤³¤Î¥Õ¥é¥°¤ò 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 ¤¬¼Â¹ÔÂоݤȤʤ륹¥¯¥ê¥×¥È¥Õ¥¡¥¤¥ë¤Ç¤¢¤ê¡¢arg1¡¢arg2¡¢¤ª¤è¤Ó 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 +\f2¡ÖJava 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)¡¢keyEncipherment¡¢dataEncipherment¡¢keyAgreement¡¢keyCertSign¡¢cRLSign¡¢encipherOnly¡¢decipherOnly ¤Î¤¤¤º¤ì¤«¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£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¡¢ serverAuth¡¢clientAuth¡¢codeSigning¡¢emailProtection¡¢ timeStamping¡¢OCSPSigning¡¢¤Þ¤¿¤ÏǤ°Õ¤Î 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 ¤Ë¤Ï¡¢EMAIL¡¢URI¡¢DNS¡¢IP¡¢¤Þ¤¿¤Ï 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\-9¡¢a\-f¡¢A\-F) °Ê³°¤Îʸ»ú¤Ï̵»ë¤µ¤ì¤Þ¤¹¡£¤·¤¿¤¬¤Ã¤Æ¡¢ \f2¡Ö01:02:03:04¡×\fP ¤È \f2¡Ö01020304¡×¤ÎξÊý¤È¤â\fP Ʊ°ì¤ÎÃͤȤ·¤Æ¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤¹¡£Ãͤ¬¤Ê¤¤¾ì¹ç¡¢¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤ÎÃÍ¥Õ¥£¡¼¥ë¥É¤Ï¶õ¤Ë¤Ê¤ê¤Þ¤¹¡£ +.LP +.LP +\f2\-gencert\fP ¤Ç¤Î¤ß»ÈÍѤ¹¤ë¡Öhonored¡×¤È¤¤¤¦ÆÃÊ̤Ê̾Á°¤Ï¡¢¾ÚÌÀ½ñÍ×µá¤Ë´Þ¤Þ¤ì¤ë¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤òÍ¥À褹¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£¤³¤Î̾Á°¤ÎÃͤϡ¢ \f2¡Öall¡×\fP (Í׵ᤵ¤ì¤ë¤¹¤Ù¤Æ¤Î¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤¬Í¥À褵¤ì¤ë)¡¢ \f2¡Öname{:[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 を使用ã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™ã€‚ +¼¡¤Î¥³¥Þ¥ó¥É¤Ï¡¢ca¡¢ca1¡¢ca2¡¢¤ª¤è¤Ó 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 ¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤Ë¤Ï ca¡¢ca1¡¢¤ª¤è¤Ó 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 v1¡¢v2¡¢v3 ¤Î¾ÚÌÀ½ñ¡¢¤ª¤è¤Ó¡¢PKCS#7 ·Á¼°¤Î¾ÚÌÀ½ñ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë PKCS#7 ·Á¼°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤ò¥¤¥ó¥Ý¡¼¥È¤Ç¤­¤Þ¤¹¡£¥¤¥ó¥Ý¡¼¥È¤¹¤ë¥Ç¡¼¥¿¤Ï¡¢¥Ð¥¤¥Ê¥êÉ乿²½Êý¼°¡¢¤Þ¤¿¤Ï½ÐÎϲÄǽÉ乿²½Êý¼° (Base64 É乿²½¤È¤â¸Æ¤Ð¤ì¤ë) ¤Î¤É¤Á¤é¤«¤ÇÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ½ÐÎϲÄǽÉ乿²½Êý¼°¤Ï¡¢¥¤¥ó¥¿¡¼¥Í¥Ã¥È RFC 1421 ¾ÚÌÀ½ñÉ乿²½µ¬³Ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¤³¤ÎÉ乿²½Êý¼°¤Î¾ì¹ç¡¢¾ÚÌÀ½ñ¤Ï¡Ö\-\-\-\-\-BEGIN¡×¤Ç»Ï¤Þ¤ëʸ»úÎó¤Ç³«»Ï¤µ¤ì¡¢¡Ö\-\-\-\-\-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 +\f2¡ÖJSSE ¥ê¥Õ¥¡¥ì¥ó¥¹¥¬¥¤¥É¡×\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 \- ³Æ¥¨¥ó¥È¥ê¤Ï¡¢Èó¾ï¤Ë½ÅÍפʰŹ沽¤Î¸°¤Î¾ðÊó¤òÊÝ»ý¤·¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢µö²Ä¤·¤Æ¤¤¤Ê¤¤¥¢¥¯¥»¥¹¤òËɤ°¤¿¤á¤Ë¡¢Êݸ¤ì¤¿·Á¤Ç³ÊǼ¤µ¤ì¤Þ¤¹¡£ °ìÈ̤ˡ¢¤³¤Î¼ï¤Î¥¨¥ó¥È¥ê¤È¤·¤Æ³ÊǼ¤µ¤ì¤ë¸°¤Ï¡¢ÈëÌ©¸°¤«¡¢Âбþ¤¹¤ë¸ø³«¸°¤Î¾ÚÌÀ½ñ¥Á¥§¡¼¥ó¤òȼ¤¦Èó¸ø³«¸°¤Ç¤¹¡£\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 @ +\f2¡ÖJava(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 ã§æŒ‡å®šå¯èƒ½ãªä»»æ„ã®å ´æ‰€ã‹ã‚‰ã‚­ãƒ¼ã‚¹ãƒˆã‚¢ã‚’読ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚ +¥­¡¼¥¹¥È¥¢¤Î¥¿¥¤¥×¤òÌÀ¼¨Åª¤Ë»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢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 +³Æ¥Ä¡¼¥ë¤Ï¡¢ \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 ¤Ç¤Ï¡¢v1¡¢v2¡¢¤ª¤è¤Ó 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 ã¯ã€ã©ã‚Œã‚‚åŒã˜ã‚‚ã®ã¨ã—ã¦æ‰±ã‚れã¾ã™ã€‚ +¥­¡¼¥ï¡¼¥É¤Îû½Ì·Á¤Ç¤Ï¡¢Âçʸ»ú¤È¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤Þ¤»¤ó¡£¤¿¤È¤¨¤Ð¡¢CN¡¢cn¡¢¤ª¤è¤Ó 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 +\f2¡ÖJava 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 @ +\f2¡ÖJava ÇÛÈ÷¥¬¥¤¥É \- 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 @ +\f2¡ÖDefault 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 @ +\f2¡ÖPolicy Tool Users' Guide¡×\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html .br .na -\f2「Security Permissionsã€\fP @ +\f2¡ÖSecurity Permissions¡×\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html .br .na -\f2「Security Overviewã€\fP @ +\f2¡ÖSecurity 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 Specification¡¢CORBA 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 @ +\f2¡ÖJava 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#classpath¡¢java(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 ¤Ç³«»Ï¤·¤Þ¤¹¡£\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 ã®ãƒãƒ¼ãƒŸãƒ³ã‚°ã‚µãƒ¼ãƒ“スプロセスãŒåœæ­¢ã—ã€å†èµ·å‹•ã•れるã¨å¤±ã‚れã¾ã™ã€‚ +¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤Ï̾Á°¶õ´Ö¤Ë̾Á°¤Ç³ÊǼ¤µ¤ì¡¢¥ª¥Ö¥¸¥§¥¯¥È»²¾È¤È̾Á°¤Î¥Ú¥¢¤Ï¡¢¤½¤ì¤¾¤ì¡Ö¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¡×¤È¸Æ¤Ð¤ì¤Þ¤¹¡£¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ï¡Ö¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¡×¤ËÁȤ߹þ¤à¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤Ï¤½¤ì¼«ÂΤ¬¥Í¡¼¥à¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÈƱ¤¸ÊÔÀ®µ¡Ç½¤ò»ý¤Á¤Þ¤¹¡£¤¹¤Ù¤Æ¤Î¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ï¡Ö½é´ü¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¡×¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£Ì¾Á°¶õ´Ö¤Ë¤ª¤¤¤Æ¡¢½é´ü¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤ÏÍ£°ì¤Î»ý³Ū¥Ð¥¤¥ó¥Ç¥£¥ó¥°¤Ç¤¹¡£¤½¤ì°Ê³°¤Î¥Í¡¼¥ß¥ó¥°¥³¥ó¥Æ¥­¥¹¥È¤Ï¡¢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 @ +\f2¡ÖRMI\-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 @ +\f2¡ÖJava 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 @ +\f2¡ÖJava ÇÛÈ÷¥¬¥¤¥É \- 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 ã®å„å½¢å¼ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã™ã€‚ +³°Éô¥¨¥ó¥Æ¥£¥Æ¥£¡¼»²¾È¤ò²ò·è¤¹¤ë¤¿¤á¤Î¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£TR9401¡¢XCatalog¡¢OASIS 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ã®ã‚µãƒ³ãƒ—ルアプリケーションを調ã¹ã¦ãã ã•ã„。 +³°Éô¥¨¥ó¥Æ¥£¥Æ¥£¡¼»²¾È¤ò²ò·è¤¹¤ë¥«¥¿¥í¥°¥Õ¥¡¥¤¥ë¤ò»ØÄꤷ¤Þ¤¹¡£TR9401¡¢XCatalog¡¢¤ª¤è¤Ó 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/native/sun/awt/awt_LoadLibrary.c b/jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c index a0e7b43b6d9..fa75aa2d053 100644 --- a/jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c +++ b/jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c @@ -128,12 +128,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved) } } - /* Calculate toolkit name, kind of toolkit (XAWT, Motif) and library to load */ + /* Calculate library name to load */ if (AWTIsHeadless()) { - strcpy(p, "/headless/libmawt"); + strncpy(p, "/headless/libmawt.so", MAXPATHLEN-len-1); } else { /* Default AWT Toolkit on Linux and Solaris is XAWT. */ - strcpy(p, "/xawt/libmawt"); + strncpy(p, "/xawt/libmawt.so", MAXPATHLEN-len-1); } if (toolkit) { @@ -143,23 +143,12 @@ AWT_OnLoad(JavaVM *vm, void *reserved) (*env)->DeleteLocalRef(env, propname); } - strcat(p, ".so"); - JNU_CallStaticMethodByName(env, NULL, "java/lang/System", "load", "(Ljava/lang/String;)V", JNU_NewStringPlatform(env, buf)); awtHandle = dlopen(buf, RTLD_LAZY | RTLD_GLOBAL); -/* - if (dlsym(awtHandle, "AWTCharRBearing") == NULL) { - printf("========= AWTCharRBearing not found\n"); fflush(stdout); - } - else { - printf("========= AWTCharRBearing was found\n"); fflush(stdout); - } -*/ - return JNI_VERSION_1_2; } diff --git a/jdk/src/solaris/native/sun/awt/awt_mgrsel.c b/jdk/src/solaris/native/sun/awt/awt_mgrsel.c index a326f3886f6..b0332278980 100644 --- a/jdk/src/solaris/native/sun/awt/awt_mgrsel.c +++ b/jdk/src/solaris/native/sun/awt/awt_mgrsel.c @@ -136,7 +136,7 @@ awt_mgrsel_select(const char *selname, long extra_mask, || per_scr_owners == NULL || mgrsel == NULL) { DTRACE_PRINTLN("MG: select: unable to allocate memory"); - if (namesbuf != NULL) free(per_scr_atoms); + if (namesbuf != NULL) free(namesbuf); if (names != NULL) free(names); if (per_scr_atoms != NULL) free(per_scr_atoms); if (per_scr_owners != NULL) free(per_scr_owners); diff --git a/jdk/src/solaris/native/sun/awt/gtk2_interface.c b/jdk/src/solaris/native/sun/awt/gtk2_interface.c index 3378dd00c2d..3c0c3cc46c3 100644 --- a/jdk/src/solaris/native/sun/awt/gtk2_interface.c +++ b/jdk/src/solaris/native/sun/awt/gtk2_interface.c @@ -443,6 +443,8 @@ void gtk2_file_chooser_load() "gtk_file_chooser_set_current_folder"); fp_gtk_file_chooser_set_filename = dl_symbol( "gtk_file_chooser_set_filename"); + fp_gtk_file_chooser_set_current_name = dl_symbol( + "gtk_file_chooser_set_current_name"); fp_gtk_file_filter_add_custom = dl_symbol("gtk_file_filter_add_custom"); fp_gtk_file_chooser_set_filter = dl_symbol("gtk_file_chooser_set_filter"); fp_gtk_file_chooser_get_type = dl_symbol("gtk_file_chooser_get_type"); diff --git a/jdk/src/solaris/native/sun/awt/gtk2_interface.h b/jdk/src/solaris/native/sun/awt/gtk2_interface.h index 9a6e2ca0f8f..1b46920a534 100644 --- a/jdk/src/solaris/native/sun/awt/gtk2_interface.h +++ b/jdk/src/solaris/native/sun/awt/gtk2_interface.h @@ -766,6 +766,8 @@ gboolean (*fp_gtk_file_chooser_set_current_folder)(GtkFileChooser *chooser, const gchar *filename); gboolean (*fp_gtk_file_chooser_set_filename)(GtkFileChooser *chooser, const char *filename); +void (*fp_gtk_file_chooser_set_current_name)(GtkFileChooser *chooser, + const gchar *name); void (*fp_gtk_file_filter_add_custom)(GtkFileFilter *filter, GtkFileFilterFlags needed, GtkFileFilterFunc func, gpointer data, GDestroyNotify notify); diff --git a/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c b/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c index a5bdbec6cdb..403a16e0311 100644 --- a/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c +++ b/jdk/src/solaris/native/sun/awt/sun_awt_X11_GtkFileDialogPeer.c @@ -4,6 +4,7 @@ #include <string.h> #include "gtk2_interface.h" #include "sun_awt_X11_GtkFileDialogPeer.h" +#include "java_awt_FileDialog.h" #include "debug_assert.h" static JavaVM *jvm; @@ -220,7 +221,7 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer, const char *title = jtitle == NULL? "": (*env)->GetStringUTFChars(env, jtitle, 0); - if (mode == 1) { + if (mode == java_awt_FileDialog_SAVE) { /* Save action */ dialog = fp_gtk_file_chooser_dialog_new(title, NULL, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, @@ -253,7 +254,11 @@ Java_sun_awt_X11_GtkFileDialogPeer_run(JNIEnv * env, jobject jpeer, /* Set the filename */ if (jfile != NULL) { const char *filename = (*env)->GetStringUTFChars(env, jfile, 0); - fp_gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), filename); + if (mode == java_awt_FileDialog_SAVE) { + fp_gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename); + } else { + fp_gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), filename); + } (*env)->ReleaseStringUTFChars(env, jfile, filename); } diff --git a/jdk/src/windows/classes/sun/awt/Win32FontManager.java b/jdk/src/windows/classes/sun/awt/Win32FontManager.java index 9c6eab17011..5e925f3ce45 100644 --- a/jdk/src/windows/classes/sun/awt/Win32FontManager.java +++ b/jdk/src/windows/classes/sun/awt/Win32FontManager.java @@ -62,8 +62,11 @@ public class Win32FontManager extends SunFontManager { String eudcFile = getEUDCFontFile(); if (eudcFile != null) { try { + /* Must use Java rasteriser since GDI doesn't + * enumerate (allow direct use) of EUDC fonts. + */ eudcFont = new TrueTypeFont(eudcFile, null, 0, - false); + true); } catch (FontFormatException e) { } } diff --git a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java index 4580e8eea06..a3a48e2d7b4 100644 --- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java +++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java @@ -71,12 +71,6 @@ public class Win32GraphicsEnvironment SurfaceManagerFactory.setInstance(new WindowsSurfaceManagerFactory()); } - /** - * Noop function that just acts as an entry point for someone to force - * a static initialization of this class. - */ - public static void init() {} - /** * Initializes native components of the graphics environment. This * includes everything from the native GraphicsDevice elements to diff --git a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java index f87f5859bf7..57f889e72f9 100644 --- a/jdk/src/windows/classes/sun/awt/windows/WToolkit.java +++ b/jdk/src/windows/classes/sun/awt/windows/WToolkit.java @@ -103,9 +103,6 @@ public class WToolkit extends SunToolkit implements Runnable { static { loadLibraries(); - // Force Win32GE to load if it is not already loaded; this loads - // various other classes that are required for basic awt functionality - Win32GraphicsEnvironment.init(); initIDs(); // Print out which version of Windows is running diff --git a/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java b/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java index 6dba2bc9394..1604d77a24d 100644 --- a/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java +++ b/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java @@ -56,8 +56,9 @@ class WindowsFileSystem // parse default directory and check it is absolute WindowsPathParser.Result result = WindowsPathParser.parse(dir); - if (result.type() != WindowsPathType.ABSOLUTE) - throw new AssertionError("Default directory must be absolute/non-UNC"); + if ((result.type() != WindowsPathType.ABSOLUTE) && + (result.type() != WindowsPathType.UNC)) + throw new AssertionError("Default directory is not an absolute path"); this.defaultDirectory = result.path(); this.defaultRoot = result.root(); diff --git a/jdk/src/windows/native/sun/windows/awt_Button.cpp b/jdk/src/windows/native/sun/windows/awt_Button.cpp index b62069035c1..672d3540c1d 100644 --- a/jdk/src/windows/native/sun/windows/awt_Button.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Button.cpp @@ -317,7 +317,9 @@ void AwtButton::_SetLabel(void *param) badAlloc = 1; } else { c->SetText(labelStr); - JNU_ReleaseStringPlatformChars(env, label, labelStr); + if (label != NULL) { + JNU_ReleaseStringPlatformChars(env, label, labelStr); + } } } diff --git a/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp b/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp index 21f42bea3dd..362c857b88d 100644 --- a/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Checkbox.cpp @@ -384,7 +384,9 @@ void AwtCheckbox::_SetLabel(void *param) { c->SetText(labelStr); c->VerifyState(); - JNU_ReleaseStringPlatformChars(env, label, labelStr); + if (label != NULL) { + JNU_ReleaseStringPlatformChars(env, label, labelStr); + } } } diff --git a/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp index a0762b4eaaf..8e2c4996ece 100644 --- a/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp +++ b/jdk/src/windows/native/sun/windows/awt_FileDialog.cpp @@ -225,7 +225,6 @@ AwtFileDialog::Show(void *p) { JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); jobject peer; - WCHAR unicodeChar = L' '; LPTSTR fileBuffer = NULL; LPTSTR currentDirectory = NULL; jint mode = 0; @@ -263,7 +262,7 @@ AwtFileDialog::Show(void *p) HWND hwndOwner = awtParent ? awtParent->GetHWnd() : NULL; if (title == NULL || env->GetStringLength(title)==0) { - title = JNU_NewStringPlatform(env, &unicodeChar); + title = JNU_NewStringPlatform(env, L" "); } JavaStringBuffer titleBuffer(env, title); diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index 78ca9534f84..07bd29aecbf 100644 --- a/jdk/test/ProblemList.txt +++ b/jdk/test/ProblemList.txt @@ -288,12 +288,6 @@ javax/management/monitor/AttributeArbitraryDataTypeTest.java generic-all # jdk_math -# Problems with rounding add failures on solaris-sparcv9 and -server -java/math/BigDecimal/AddTests.java solaris-sparcv9 - -# Should be samevm? But seems problematic with samevm on windows -java/math/BigInteger/ModPow65537.java generic-all - ############################################################################ # jdk_misc diff --git a/jdk/test/com/sun/tools/attach/ApplicationSetup.sh b/jdk/test/com/sun/tools/attach/ApplicationSetup.sh index 9e40c5ddc26..0537cb6e401 100644 --- a/jdk/test/com/sun/tools/attach/ApplicationSetup.sh +++ b/jdk/test/com/sun/tools/attach/ApplicationSetup.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# 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 @@ -40,7 +40,8 @@ rm -f ${OUTPUTFILE} startApplication() { - ${JAVA} $1 $2 $3 -jar "${TESTCLASSES}"/Application.jar > ${OUTPUTFILE} & + # put all output from the app into ${OUTPUTFILE} + ${JAVA} $1 $2 $3 -jar "${TESTCLASSES}"/Application.jar > ${OUTPUTFILE} 2>&1 & pid="$!" # MKS creates an intermediate shell to launch ${JAVA} so diff --git a/jdk/test/com/sun/tools/attach/BasicTests.java b/jdk/test/com/sun/tools/attach/BasicTests.java index 39c1c2d56bf..79056e614b3 100644 --- a/jdk/test/com/sun/tools/attach/BasicTests.java +++ b/jdk/test/com/sun/tools/attach/BasicTests.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 @@ -75,14 +75,23 @@ public class BasicTests { // Test 3 - load an "bad" agent (agentmain throws an exception) System.out.println(" - Test: Load a bad agent"); + System.out.println("INFO: This test will cause error messages " + + "to appear in the application log about SilverBullet.jar " + + "not being found and an agent failing to start."); try { vm.loadAgent(badagent); + throw new RuntimeException( + "AgentInitializationException not thrown as expected!"); } catch (AgentInitializationException x) { - System.out.println(" - AgentInitializationException throws as expected!"); + System.out.println( + " - AgentInitializationException thrown as expected!"); } // Test 4 - detach from the VM and attempt a load (should throw IOE) System.out.println(" - Test: Detach from VM"); + System.out.println("INFO: This test will cause error messages " + + "to appear in the application log about a BadAgent including " + + "a RuntimeException and an InvocationTargetException."); vm.detach(); try { vm.loadAgent(agent); diff --git a/jdk/test/com/sun/tools/attach/BasicTests.sh b/jdk/test/com/sun/tools/attach/BasicTests.sh index a95060de40e..b63d7528ff9 100644 --- a/jdk/test/com/sun/tools/attach/BasicTests.sh +++ b/jdk/test/com/sun/tools/attach/BasicTests.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# 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 @@ -39,11 +39,9 @@ fi # Windows 2000 is a problem here, so we skip it, see 6962615 osrev=`uname -a` -if [ "`echo ${osrev} | grep 'CYGWIN'`" != "" ] ; then - if [ "`echo ${osrev} | grep '5.0'`" != "" ] ; then - echo "Treating as a pass, not testing Windows 2000" - exit 0 - fi +if [ "`echo ${osrev} | grep 'CYGWIN[^ ]*-5\.0'`" != "" ] ; then + echo "Treating as a pass, not testing Windows 2000" + exit 0 fi if [ "`echo ${osrev} | grep 'Windows'`" != "" ] ; then if [ "`echo ${osrev} | grep '5 00'`" != "" ] ; then @@ -58,7 +56,7 @@ fi startApplication -Dattach.test=true # pid = process-id, port = shutdown port - + failures=0 echo "Running tests ..." @@ -69,6 +67,18 @@ if [ $? != 0 ]; then failures=`expr $failures + 1`; fi stopApplication $port +# Add these info messages to $OUTPUTFILE just in case someone +# looks at it and wonders about the failures. We have to do +# this after the application is stopped because it is writing +# to $OUTPUTFILE. +( +echo "" +echo "INFO: Test 2 will cause error messages about SilverBullet.jar" \ + "and an agent failing to start." +echo "INFO: Test 3 will cause error messages about BadAgent" \ + "including a RuntimeException and an InvocationTargetException." +) >> ${OUTPUTFILE} + if [ $failures = 0 ]; then echo "All tests passed."; else echo "$failures test(s) failed:"; cat ${OUTPUTFILE}; diff --git a/jdk/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.java b/jdk/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.java new file mode 100644 index 00000000000..9f72f2a14bf --- /dev/null +++ b/jdk/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.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 7027013 + @summary Dialog.show() should validate the window unconditionally + @author anthony.petrov@oracle.com: area=awt.toplevel + @run main ValidateOnShow +*/ + +import java.awt.*; + +public class ValidateOnShow { + private static Dialog dialog = new Dialog((Frame)null); + 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 test() { + System.out.println("Before showing: panel.isValid=" + panel.isValid() + " dialog.isValid=" + dialog.isValid()); + dialog.setVisible(true); + sleep(); + System.out.println("After showing: panel.isValid=" + panel.isValid() + " dialog.isValid=" + dialog.isValid()); + + if (!panel.isValid()) { + dialog.dispose(); + throw new RuntimeException("The panel hasn't been validated upon showing the dialog"); + } + + dialog.setVisible(false); + sleep(); + } + + public static void main(String[] args) { + // setup + dialog.add(panel); + panel.add(button); + + dialog.setBounds(200, 200, 300, 200); + + // The first test should always succeed since the dialog is invalid initially + test(); + + // now invalidate the button and the panel + button.setBounds(1, 1, 30, 30); + sleep(); + // since the panel is a validate root, the dialog is still valid + + // w/o a fix this would fail + test(); + + // cleanup + dialog.dispose(); + } +} diff --git a/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html b/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html new file mode 100644 index 00000000000..56e616362be --- /dev/null +++ b/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html @@ -0,0 +1,22 @@ +<html> +<!-- + @test + @bug 6260659 + @summary File Name set programmatically in FileDialog is overridden during navigation, XToolkit + @author Dmitry.Cherepanov@SUN.COM area=awt.filedialog + @library ../../regtesthelpers + @build Sysout + @run applet/manual=yesno FileNameOverrideTest.html + --> +<head> +<title> FileNameOverrideTest + + + +

FileNameOverrideTest
Bug ID: 6260659

+ +

See the dialog box (usually in upper left corner) for instructions

+ + + + diff --git a/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java b/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java new file mode 100644 index 00000000000..38fbbccca90 --- /dev/null +++ b/jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java @@ -0,0 +1,73 @@ +/* + test + @bug 6260659 + @summary File Name set programmatically in FileDialog is overridden during navigation, XToolkit + @author Dmitry.Cherepanov@SUN.COM area=awt.filedialog + @library ../../regtesthelpers + @build Sysout + @run applet/manual=yesno FileNameOverrideTest.html +*/ + +import test.java.awt.regtesthelpers.Sysout; + +import java.applet.Applet; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.IOException; + +public class FileNameOverrideTest extends Applet implements ActionListener { + private final static String fileName = "input"; + private final static String clickDirName = "Directory for double click"; + private final static String dirPath = "."; + private Button showBtn; + private FileDialog fd; + + public void init() { + this.setLayout(new GridLayout(1, 1)); + + fd = new FileDialog(new Frame(), "Open"); + + showBtn = new Button("Show File Dialog"); + showBtn.addActionListener(this); + add(showBtn); + + try { + File tmpFileUp = new File(dirPath + File.separator + fileName); + File tmpDir = new File(dirPath + File.separator + clickDirName); + File tmpFileIn = new File(tmpDir.getAbsolutePath() + File.separator + fileName); + tmpDir.mkdir(); + tmpFileUp.createNewFile(); + tmpFileIn.createNewFile(); + } catch (IOException ex) { + throw new RuntimeException("Cannot create test folder", ex); + } + + String[] instructions = { + "1) Click on 'Show File Dialog' button. A file dialog will come up.", + "2) Double-click on '" + clickDirName + "' and click OK.", + "3) See result of the test below" + }; + Sysout.createDialogWithInstructions(instructions); + }//End init() + + public void start() { + setSize(200, 200); + show(); + }// start() + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == showBtn) { + fd.setFile(fileName); + fd.setDirectory(dirPath); + fd.setVisible(true); + String output = fd.getFile(); + if (fileName.equals(output)) { + Sysout.println("TEST PASSED"); + } else { + Sysout.println("TEST FAILED (output file - " + output + ")"); + } + } + } +}// class ManualYesNoTest diff --git a/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html b/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html new file mode 100644 index 00000000000..561e780969a --- /dev/null +++ b/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html @@ -0,0 +1,22 @@ + + + + SaveFileNameOverrideTest + + + +

SaveFileNameOverrideTest
Bug ID: 6260659

+ +

See the dialog box (usually in upper left corner) for instructions

+ + + + diff --git a/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java b/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java new file mode 100644 index 00000000000..19c2feb4e69 --- /dev/null +++ b/jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java @@ -0,0 +1,65 @@ +/* + test + @bug 6998877 + @summary After double-click on the folder names, FileNameOverrideTest FAILED + @author Sergey.Bylokhov@oracle.com area=awt.filedialog + @library ../../regtesthelpers + @build Sysout + @run applet/manual=yesno SaveFileNameOverrideTest.html +*/ + +import test.java.awt.regtesthelpers.Sysout; + +import java.applet.Applet; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; + +public class SaveFileNameOverrideTest extends Applet implements ActionListener { + private final static String clickDirName = "Directory for double click"; + private final static String dirPath = "."; + private Button showBtn; + private FileDialog fd; + + public void init() { + this.setLayout(new GridLayout(1, 1)); + + fd = new FileDialog(new Frame(), "Save", FileDialog.SAVE); + + showBtn = new Button("Show File Dialog"); + showBtn.addActionListener(this); + add(showBtn); + + File tmpDir = new File(dirPath + File.separator + clickDirName); + tmpDir.mkdir(); + + String[] instructions = { + "1) Click on 'Show File Dialog' button. A file dialog will come up.", + "2) Double-click on '" + clickDirName + "' and click OK.", + "3) See result of the test below" + }; + + Sysout.createDialogWithInstructions(instructions); + + }//End init() + + public void start() { + setSize(200, 200); + show(); + }// start() + + public void actionPerformed(ActionEvent e) { + if (e.getSource() == showBtn) { + fd.setFile("input"); + fd.setDirectory(dirPath); + fd.setVisible(true); + String output = fd.getFile(); + if ("input".equals(output)) { + Sysout.println("TEST PASSED"); + } else { + Sysout.println("TEST FAILED (output file - " + output + ")"); + } + } + } +}// class ManualYesNoTest diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init1.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init1.java new file mode 100644 index 00000000000..1aef7874ce8 --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init1.java @@ -0,0 +1,37 @@ +/* + * 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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main GE_init1 + */ + +import java.awt.Toolkit; + +public class GE_init1 { + public static void main(String[] args) { + Toolkit.getDefaultToolkit(); + } +} diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init2.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init2.java new file mode 100644 index 00000000000..306c3c46c9d --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init2.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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main GE_init2 + */ + + +import java.awt.GraphicsEnvironment; + +public class GE_init2 { + public static void main(String[] args) { + GraphicsEnvironment.getLocalGraphicsEnvironment(); + } +} diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init3.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init3.java new file mode 100644 index 00000000000..68a64f88002 --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init3.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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main GE_init3 + */ + + +import java.awt.Frame; + +public class GE_init3 { + public static void main(String[] args) { + new Frame("Test3").setVisible(true); + } +} diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init4.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init4.java new file mode 100644 index 00000000000..534424b1f4e --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init4.java @@ -0,0 +1,37 @@ +/* + * 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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main/othervm -Djava.awt.headless=true GE_init4 + */ + +import java.awt.Toolkit; + +public class GE_init4 { + public static void main(String[] args) { + Toolkit.getDefaultToolkit(); + } +} diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init5.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init5.java new file mode 100644 index 00000000000..d0b40315ef0 --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init5.java @@ -0,0 +1,37 @@ +/* + * 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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main/othervm -Djava.awt.headless=true GE_init4 + */ + +import java.awt.Toolkit; + +public class GE_init5 { + public static void main(String[] args) { + GraphicsEnvironment.getLocalGraphicsEnvironment(); + } +} diff --git a/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init6.java b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init6.java new file mode 100644 index 00000000000..355b0f6c65a --- /dev/null +++ b/jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init6.java @@ -0,0 +1,45 @@ +/* + * 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 7002839 + * @summary Static init deadlock Win32GraphicsEnvironment and WToolkit + * @run main/othervm -Djava.awt.headless=true GE_init6 + */ + +import java.awt.*; + +public class GE_init6 { + private static boolean passed = false; + public static void main(String[] args) { + try { + new Frame("Test3").setVisible(true); + } catch (HeadlessException e){ + passed = true; + } + if (!passed){ + throw new RuntimeException("Should have thrown HE but it either didn't throw any or just passed through."); + } + } +} diff --git a/jdk/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java b/jdk/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java index a3a3f6cfe89..26112c89178 100644 --- a/jdk/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java +++ b/jdk/test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java @@ -43,6 +43,7 @@ public class TranslucentJAppletTest { private static void initAndShowGUI() { frame = new JFrame(); JApplet applet = new JApplet(); + applet.setBackground(new Color(0, 0, 0, 0)); JPanel panel = new JPanel() { protected void paintComponent(Graphics g) { paintComponentCalled = true; diff --git a/jdk/test/java/lang/Character/CheckScript.java b/jdk/test/java/lang/Character/CheckScript.java index 6d0f650d169..3c441d6257b 100644 --- a/jdk/test/java/lang/Character/CheckScript.java +++ b/jdk/test/java/lang/Character/CheckScript.java @@ -1,34 +1,58 @@ + +/* + * 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 + * 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 6945564 6959267 + * @bug 6945564 6959267 7033561 * @summary Check that the j.l.Character.UnicodeScript */ import java.io.*; -import java.lang.reflect.*; import java.util.*; import java.util.regex.*; import java.lang.Character.UnicodeScript; public class CheckScript { - static BufferedReader open(String[] args) throws FileNotFoundException { + public static void main(String[] args) throws Exception { + File fScripts; + File fAliases; if (args.length == 0) { - return new BufferedReader(new FileReader(new File(System.getProperty("test.src", "."), "Scripts.txt"))); - } else if (args.length == 1) { - return new BufferedReader(new FileReader(args[0])); + fScripts = new File(System.getProperty("test.src", "."), "Scripts.txt"); + fAliases = new File(System.getProperty("test.src", "."), "PropertyValueAliases.txt"); + } else if (args.length == 2) { + fScripts = new File(args[0]); + fAliases = new File(args[1]); } else { - System.out.println("java CharacterScript Scripts.txt"); + System.out.println("java CharacterScript Scripts.txt PropertyValueAliases.txt"); throw new RuntimeException("Datafile name should be specified."); } - } - - public static void main(String[] args) throws Exception { Matcher m = Pattern.compile("(\\p{XDigit}+)(?:\\.{2}(\\p{XDigit}+))?\\s+;\\s+(\\w+)\\s+#.*").matcher(""); String line = null; HashMap> scripts = new HashMap<>(); - try (BufferedReader sbfr = open(args)) { + try (BufferedReader sbfr = new BufferedReader(new FileReader(fScripts))) { while ((line = sbfr.readLine()) != null) { if (line.length() <= 1 || line.charAt(0) == '#') { continue; @@ -107,5 +131,29 @@ public class CheckScript { } } } + // check all aliases + m = Pattern.compile("sc\\s*;\\s*(\\p{Alpha}{4})\\s*;\\s*([\\p{Alpha}|_]+)\\s*.*").matcher(""); + line = null; + try (BufferedReader sbfr = new BufferedReader(new FileReader(fAliases))) { + while ((line = sbfr.readLine()) != null) { + if (line.length() <= 1 || line.charAt(0) == '#') { + continue; + } + m.reset(line); + if (m.matches()) { + String alias = m.group(1); + String name = m.group(2); + // HRKT -> Katakana_Or_Hiragana not supported + if ("HRKT".equals(alias.toUpperCase(Locale.ENGLISH))) + continue; + if (Character.UnicodeScript.forName(alias) != + Character.UnicodeScript.forName(name)) { + throw new RuntimeException( + "UnicodeScript failed: alias<" + alias + + "> does not map to <" + name + ">"); + } + } + } + } } } diff --git a/jdk/test/java/lang/Character/PropertyValueAliases.txt b/jdk/test/java/lang/Character/PropertyValueAliases.txt new file mode 100644 index 00000000000..01f18a0e61f --- /dev/null +++ b/jdk/test/java/lang/Character/PropertyValueAliases.txt @@ -0,0 +1,1178 @@ +# PropertyValueAliases-6.0.0.txt +# Date: 2010-07-17, 22:44:06 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/ +# +# This file contains aliases for property values used in the UCD. +# These names can be used for XML formats of UCD data, for regular-expression +# property tests, and other programmatic textual descriptions of Unicode data. +# For information on which properties are normative, see UCD.html. +# +# The names may be translated in appropriate environments, and additional +# aliases may be useful. +# +# FORMAT +# +# Each line describes a property value name. +# This consists of three or more fields, separated by semicolons. +# +# First Field: The first field describes the property for which that +# property value name is used. +# +# Second Field: The second field is an abbreviated name. +# If there is no abbreviated name available, the field is marked with "n/a". +# +# Third Field: The third field is a long name. +# +# In the case of ccc, there are 4 fields. The second field is numeric, third +# is abbreviated, and fourth is long. +# +# The above are the preferred aliases. Other aliases may be listed in additional fields. +# +# Loose matching should be applied to all property names and property values, with +# the exception of String Property values. With loose matching of property names and +# values, the case distinctions, whitespace, and '_' are ignored. For Numeric Property +# values, numeric equivalencies are applied: thus "01.00" is equivalent to "1". +# +# NOTE: Property value names are NOT unique across properties. For example: +# +# AL means Arabic Letter for the Bidi_Class property, and +# AL means Above_Left for the Combining_Class property, and +# AL means Alphabetic for the Line_Break property. +# +# In addition, some property names may be the same as some property value names. +# For example: +# +# sc means the Script property, and +# Sc means the General_Category property value Currency_Symbol (Sc) +# +# The combination of property value and property name is, however, unique. +# +# For more information, see UTS #18: Unicode Regular Expressions +# ================================================ + + +# ASCII_Hex_Digit (AHex) + +AHex; N ; No ; F ; False +AHex; Y ; Yes ; T ; True + +# Age (age) + +age; n/a ; 1.1 +age; n/a ; 2.0 +age; n/a ; 2.1 +age; n/a ; 3.0 +age; n/a ; 3.1 +age; n/a ; 3.2 +age; n/a ; 4.0 +age; n/a ; 4.1 +age; n/a ; 5.0 +age; n/a ; 5.1 +age; n/a ; 5.2 +age; n/a ; 6.0 +age; n/a ; unassigned + +# Alphabetic (Alpha) + +Alpha; N ; No ; F ; False +Alpha; Y ; Yes ; T ; True + +# Bidi_Class (bc) + +bc ; AL ; Arabic_Letter +bc ; AN ; Arabic_Number +bc ; B ; Paragraph_Separator +bc ; BN ; Boundary_Neutral +bc ; CS ; Common_Separator +bc ; EN ; European_Number +bc ; ES ; European_Separator +bc ; ET ; European_Terminator +bc ; L ; Left_To_Right +bc ; LRE ; Left_To_Right_Embedding +bc ; LRO ; Left_To_Right_Override +bc ; NSM ; Nonspacing_Mark +bc ; ON ; Other_Neutral +bc ; PDF ; Pop_Directional_Format +bc ; R ; Right_To_Left +bc ; RLE ; Right_To_Left_Embedding +bc ; RLO ; Right_To_Left_Override +bc ; S ; Segment_Separator +bc ; WS ; White_Space + +# Bidi_Control (Bidi_C) + +Bidi_C; N ; No ; F ; False +Bidi_C; Y ; Yes ; T ; True + +# Bidi_Mirrored (Bidi_M) + +Bidi_M; N ; No ; F ; False +Bidi_M; Y ; Yes ; T ; True + +# Bidi_Mirroring_Glyph (bmg) + +# @missing: 0000..10FFFF; Bidi_Mirroring_Glyph; + +# Block (blk) + +blk; n/a ; Aegean_Numbers +blk; n/a ; Alchemical_Symbols +blk; n/a ; Alphabetic_Presentation_Forms +blk; n/a ; Ancient_Greek_Musical_Notation +blk; n/a ; Ancient_Greek_Numbers +blk; n/a ; Ancient_Symbols +blk; n/a ; Arabic +blk; n/a ; Arabic_Presentation_Forms_A ; Arabic_Presentation_Forms-A +blk; n/a ; Arabic_Presentation_Forms_B +blk; n/a ; Arabic_Supplement +blk; n/a ; Armenian +blk; n/a ; Arrows +blk; n/a ; Avestan +blk; n/a ; Balinese +blk; n/a ; Bamum +blk; n/a ; Bamum_Supplement +blk; n/a ; Basic_Latin ; ASCII +blk; n/a ; Batak +blk; n/a ; Bengali +blk; n/a ; Block_Elements +blk; n/a ; Bopomofo +blk; n/a ; Bopomofo_Extended +blk; n/a ; Box_Drawing +blk; n/a ; Brahmi +blk; n/a ; Braille_Patterns +blk; n/a ; Buginese +blk; n/a ; Buhid +blk; n/a ; Byzantine_Musical_Symbols +blk; n/a ; Carian +blk; n/a ; Cham +blk; n/a ; Cherokee +blk; n/a ; CJK_Compatibility +blk; n/a ; CJK_Compatibility_Forms +blk; n/a ; CJK_Compatibility_Ideographs +blk; n/a ; CJK_Compatibility_Ideographs_Supplement +blk; n/a ; CJK_Radicals_Supplement +blk; n/a ; CJK_Strokes +blk; n/a ; CJK_Symbols_And_Punctuation +blk; n/a ; CJK_Unified_Ideographs +blk; n/a ; CJK_Unified_Ideographs_Extension_A +blk; n/a ; CJK_Unified_Ideographs_Extension_B +blk; n/a ; CJK_Unified_Ideographs_Extension_C +blk; n/a ; CJK_Unified_Ideographs_Extension_D +blk; n/a ; Combining_Diacritical_Marks +blk; n/a ; Combining_Diacritical_Marks_For_Symbols; Combining_Marks_For_Symbols +blk; n/a ; Combining_Diacritical_Marks_Supplement +blk; n/a ; Combining_Half_Marks +blk; n/a ; Common_Indic_Number_Forms +blk; n/a ; Control_Pictures +blk; n/a ; Coptic +blk; n/a ; Counting_Rod_Numerals +blk; n/a ; Cuneiform +blk; n/a ; Cuneiform_Numbers_And_Punctuation +blk; n/a ; Currency_Symbols +blk; n/a ; Cypriot_Syllabary +blk; n/a ; Cyrillic +blk; n/a ; Cyrillic_Extended_A +blk; n/a ; Cyrillic_Extended_B +blk; n/a ; Cyrillic_Supplement ; Cyrillic_Supplementary +blk; n/a ; Deseret +blk; n/a ; Devanagari +blk; n/a ; Devanagari_Extended +blk; n/a ; Dingbats +blk; n/a ; Domino_Tiles +blk; n/a ; Egyptian_Hieroglyphs +blk; n/a ; Emoticons +blk; n/a ; Enclosed_Alphanumeric_Supplement +blk; n/a ; Enclosed_Alphanumerics +blk; n/a ; Enclosed_CJK_Letters_And_Months +blk; n/a ; Enclosed_Ideographic_Supplement +blk; n/a ; Ethiopic +blk; n/a ; Ethiopic_Extended +blk; n/a ; Ethiopic_Extended_A +blk; n/a ; Ethiopic_Supplement +blk; n/a ; General_Punctuation +blk; n/a ; Geometric_Shapes +blk; n/a ; Georgian +blk; n/a ; Georgian_Supplement +blk; n/a ; Glagolitic +blk; n/a ; Gothic +blk; n/a ; Greek_And_Coptic ; Greek +blk; n/a ; Greek_Extended +blk; n/a ; Gujarati +blk; n/a ; Gurmukhi +blk; n/a ; Halfwidth_And_Fullwidth_Forms +blk; n/a ; Hangul_Compatibility_Jamo +blk; n/a ; Hangul_Jamo +blk; n/a ; Hangul_Jamo_Extended_A +blk; n/a ; Hangul_Jamo_Extended_B +blk; n/a ; Hangul_Syllables +blk; n/a ; Hanunoo +blk; n/a ; Hebrew +blk; n/a ; High_Private_Use_Surrogates +blk; n/a ; High_Surrogates +blk; n/a ; Hiragana +blk; n/a ; Ideographic_Description_Characters +blk; n/a ; Imperial_Aramaic +blk; n/a ; Inscriptional_Pahlavi +blk; n/a ; Inscriptional_Parthian +blk; n/a ; IPA_Extensions +blk; n/a ; Javanese +blk; n/a ; Kaithi +blk; n/a ; Kana_Supplement +blk; n/a ; Kanbun +blk; n/a ; Kangxi_Radicals +blk; n/a ; Kannada +blk; n/a ; Katakana +blk; n/a ; Katakana_Phonetic_Extensions +blk; n/a ; Kayah_Li +blk; n/a ; Kharoshthi +blk; n/a ; Khmer +blk; n/a ; Khmer_Symbols +blk; n/a ; Lao +blk; n/a ; Latin_1_Supplement ; Latin_1 +blk; n/a ; Latin_Extended_A +blk; n/a ; Latin_Extended_Additional +blk; n/a ; Latin_Extended_B +blk; n/a ; Latin_Extended_C +blk; n/a ; Latin_Extended_D +blk; n/a ; Lepcha +blk; n/a ; Letterlike_Symbols +blk; n/a ; Limbu +blk; n/a ; Linear_B_Ideograms +blk; n/a ; Linear_B_Syllabary +blk; n/a ; Lisu +blk; n/a ; Low_Surrogates +blk; n/a ; Lycian +blk; n/a ; Lydian +blk; n/a ; Mahjong_Tiles +blk; n/a ; Malayalam +blk; n/a ; Mandaic +blk; n/a ; Mathematical_Alphanumeric_Symbols +blk; n/a ; Mathematical_Operators +blk; n/a ; Meetei_Mayek +blk; n/a ; Miscellaneous_Mathematical_Symbols_A +blk; n/a ; Miscellaneous_Mathematical_Symbols_B +blk; n/a ; Miscellaneous_Symbols +blk; n/a ; Miscellaneous_Symbols_And_Arrows +blk; n/a ; Miscellaneous_Symbols_And_Pictographs +blk; n/a ; Miscellaneous_Technical +blk; n/a ; Modifier_Tone_Letters +blk; n/a ; Mongolian +blk; n/a ; Musical_Symbols +blk; n/a ; Myanmar +blk; n/a ; Myanmar_Extended_A +blk; n/a ; New_Tai_Lue +blk; n/a ; NKo +blk; n/a ; No_Block +blk; n/a ; Number_Forms +blk; n/a ; Ogham +blk; n/a ; Ol_Chiki +blk; n/a ; Old_Italic +blk; n/a ; Old_Persian +blk; n/a ; Old_South_Arabian +blk; n/a ; Old_Turkic +blk; n/a ; Optical_Character_Recognition +blk; n/a ; Oriya +blk; n/a ; Osmanya +blk; n/a ; Phags_Pa +blk; n/a ; Phaistos_Disc +blk; n/a ; Phoenician +blk; n/a ; Phonetic_Extensions +blk; n/a ; Phonetic_Extensions_Supplement +blk; n/a ; Playing_Cards +blk; n/a ; Private_Use_Area ; Private_Use +blk; n/a ; Rejang +blk; n/a ; Rumi_Numeral_Symbols +blk; n/a ; Runic +blk; n/a ; Samaritan +blk; n/a ; Saurashtra +blk; n/a ; Shavian +blk; n/a ; Sinhala +blk; n/a ; Small_Form_Variants +blk; n/a ; Spacing_Modifier_Letters +blk; n/a ; Specials +blk; n/a ; Sundanese +blk; n/a ; Superscripts_And_Subscripts +blk; n/a ; Supplemental_Arrows_A +blk; n/a ; Supplemental_Arrows_B +blk; n/a ; Supplemental_Mathematical_Operators +blk; n/a ; Supplemental_Punctuation +blk; n/a ; Supplementary_Private_Use_Area_A +blk; n/a ; Supplementary_Private_Use_Area_B +blk; n/a ; Syloti_Nagri +blk; n/a ; Syriac +blk; n/a ; Tagalog +blk; n/a ; Tagbanwa +blk; n/a ; Tags +blk; n/a ; Tai_Le +blk; n/a ; Tai_Tham +blk; n/a ; Tai_Viet +blk; n/a ; Tai_Xuan_Jing_Symbols +blk; n/a ; Tamil +blk; n/a ; Telugu +blk; n/a ; Thaana +blk; n/a ; Thai +blk; n/a ; Tibetan +blk; n/a ; Tifinagh +blk; n/a ; Transport_And_Map_Symbols +blk; n/a ; Ugaritic +blk; n/a ; Unified_Canadian_Aboriginal_Syllabics; Canadian_Syllabics +blk; n/a ; Unified_Canadian_Aboriginal_Syllabics_Extended +blk; n/a ; Vai +blk; n/a ; Variation_Selectors +blk; n/a ; Variation_Selectors_Supplement +blk; n/a ; Vedic_Extensions +blk; n/a ; Vertical_Forms +blk; n/a ; Yi_Radicals +blk; n/a ; Yi_Syllables +blk; n/a ; Yijing_Hexagram_Symbols + +# Canonical_Combining_Class (ccc) + +ccc; 0; NR ; Not_Reordered +ccc; 1; OV ; Overlay +ccc; 7; NK ; Nukta +ccc; 8; KV ; Kana_Voicing +ccc; 9; VR ; Virama +ccc; 200; ATBL ; Attached_Below_Left +ccc; 202; ATB ; Attached_Below +ccc; 214; ATA ; Attached_Above +ccc; 216; ATAR ; Attached_Above_Right +ccc; 218; BL ; Below_Left +ccc; 220; B ; Below +ccc; 222; BR ; Below_Right +ccc; 224; L ; Left +ccc; 226; R ; Right +ccc; 228; AL ; Above_Left +ccc; 230; A ; Above +ccc; 232; AR ; Above_Right +ccc; 233; DB ; Double_Below +ccc; 234; DA ; Double_Above +ccc; 240; IS ; Iota_Subscript + +# Case_Folding (cf) + +# @missing: 0000..10FFFF; Case_Folding; + +# Case_Ignorable (CI) + +CI ; N ; No ; F ; False +CI ; Y ; Yes ; T ; True + +# Cased (Cased) + +Cased; N ; No ; F ; False +Cased; Y ; Yes ; T ; True + +# Changes_When_Casefolded (CWCF) + +CWCF; N ; No ; F ; False +CWCF; Y ; Yes ; T ; True + +# Changes_When_Casemapped (CWCM) + +CWCM; N ; No ; F ; False +CWCM; Y ; Yes ; T ; True + +# Changes_When_Lowercased (CWL) + +CWL; N ; No ; F ; False +CWL; Y ; Yes ; T ; True + +# Changes_When_NFKC_Casefolded (CWKCF) + +CWKCF; N ; No ; F ; False +CWKCF; Y ; Yes ; T ; True + +# Changes_When_Titlecased (CWT) + +CWT; N ; No ; F ; False +CWT; Y ; Yes ; T ; True + +# Changes_When_Uppercased (CWU) + +CWU; N ; No ; F ; False +CWU; Y ; Yes ; T ; True + +# Composition_Exclusion (CE) + +CE ; N ; No ; F ; False +CE ; Y ; Yes ; T ; True + +# Dash (Dash) + +Dash; N ; No ; F ; False +Dash; Y ; Yes ; T ; True + +# Decomposition_Mapping (dm) + +# @missing: 0000..10FFFF; Decomposition_Mapping; + +# Decomposition_Type (dt) + +dt ; Can ; Canonical ; can +dt ; Com ; Compat ; com +dt ; Enc ; Circle ; enc +dt ; Fin ; Final ; fin +dt ; Font ; font +dt ; Fra ; Fraction ; fra +dt ; Init ; Initial ; init +dt ; Iso ; Isolated ; iso +dt ; Med ; Medial ; med +dt ; Nar ; Narrow ; nar +dt ; Nb ; Nobreak ; nb +dt ; None ; none +dt ; Sml ; Small ; sml +dt ; Sqr ; Square ; sqr +dt ; Sub ; sub +dt ; Sup ; Super ; sup +dt ; Vert ; Vertical ; vert +dt ; Wide ; wide + +# Default_Ignorable_Code_Point (DI) + +DI ; N ; No ; F ; False +DI ; Y ; Yes ; T ; True + +# Deprecated (Dep) + +Dep; N ; No ; F ; False +Dep; Y ; Yes ; T ; True + +# Diacritic (Dia) + +Dia; N ; No ; F ; False +Dia; Y ; Yes ; T ; True + +# East_Asian_Width (ea) + +ea ; A ; Ambiguous +ea ; F ; Fullwidth +ea ; H ; Halfwidth +ea ; N ; Neutral +ea ; Na ; Narrow +ea ; W ; Wide + +# Expands_On_NFC (XO_NFC) + +XO_NFC; N ; No ; F ; False +XO_NFC; Y ; Yes ; T ; True + +# Expands_On_NFD (XO_NFD) + +XO_NFD; N ; No ; F ; False +XO_NFD; Y ; Yes ; T ; True + +# Expands_On_NFKC (XO_NFKC) + +XO_NFKC; N ; No ; F ; False +XO_NFKC; Y ; Yes ; T ; True + +# Expands_On_NFKD (XO_NFKD) + +XO_NFKD; N ; No ; F ; False +XO_NFKD; Y ; Yes ; T ; True + +# Extender (Ext) + +Ext; N ; No ; F ; False +Ext; Y ; Yes ; T ; True + +# FC_NFKC_Closure (FC_NFKC) + +# @missing: 0000..10FFFF; FC_NFKC_Closure; + +# Full_Composition_Exclusion (Comp_Ex) + +Comp_Ex; N ; No ; F ; False +Comp_Ex; Y ; Yes ; T ; True + +# General_Category (gc) + +gc ; C ; Other # Cc | Cf | Cn | Co | Cs +gc ; Cc ; Control ; cntrl +gc ; Cf ; Format +gc ; Cn ; Unassigned +gc ; Co ; Private_Use +gc ; Cs ; Surrogate +gc ; L ; Letter # Ll | Lm | Lo | Lt | Lu +gc ; LC ; Cased_Letter # Ll | Lt | Lu +gc ; Ll ; Lowercase_Letter +gc ; Lm ; Modifier_Letter +gc ; Lo ; Other_Letter +gc ; Lt ; Titlecase_Letter +gc ; Lu ; Uppercase_Letter +gc ; M ; Mark # Mc | Me | Mn +gc ; Mc ; Spacing_Mark +gc ; Me ; Enclosing_Mark +gc ; Mn ; Nonspacing_Mark +gc ; N ; Number # Nd | Nl | No +gc ; Nd ; Decimal_Number ; digit +gc ; Nl ; Letter_Number +gc ; No ; Other_Number +gc ; P ; Punctuation ; punct # Pc | Pd | Pe | Pf | Pi | Po | Ps +gc ; Pc ; Connector_Punctuation +gc ; Pd ; Dash_Punctuation +gc ; Pe ; Close_Punctuation +gc ; Pf ; Final_Punctuation +gc ; Pi ; Initial_Punctuation +gc ; Po ; Other_Punctuation +gc ; Ps ; Open_Punctuation +gc ; S ; Symbol # Sc | Sk | Sm | So +gc ; Sc ; Currency_Symbol +gc ; Sk ; Modifier_Symbol +gc ; Sm ; Math_Symbol +gc ; So ; Other_Symbol +gc ; Z ; Separator # Zl | Zp | Zs +gc ; Zl ; Line_Separator +gc ; Zp ; Paragraph_Separator +gc ; Zs ; Space_Separator + +# Grapheme_Base (Gr_Base) + +Gr_Base; N ; No ; F ; False +Gr_Base; Y ; Yes ; T ; True + +# Grapheme_Cluster_Break (GCB) + +GCB; CN ; Control +GCB; CR ; CR +GCB; EX ; Extend +GCB; L ; L +GCB; LF ; LF +GCB; LV ; LV +GCB; LVT ; LVT +GCB; PP ; Prepend +GCB; SM ; SpacingMark +GCB; T ; T +GCB; V ; V +GCB; XX ; Other + +# Grapheme_Extend (Gr_Ext) + +Gr_Ext; N ; No ; F ; False +Gr_Ext; Y ; Yes ; T ; True + +# Grapheme_Link (Gr_Link) + +Gr_Link; N ; No ; F ; False +Gr_Link; Y ; Yes ; T ; True + +# Hangul_Syllable_Type (hst) + +hst; L ; Leading_Jamo +hst; LV ; LV_Syllable +hst; LVT ; LVT_Syllable +hst; NA ; Not_Applicable +hst; T ; Trailing_Jamo +hst; V ; Vowel_Jamo + +# Hex_Digit (Hex) + +Hex; N ; No ; F ; False +Hex; Y ; Yes ; T ; True + +# Hyphen (Hyphen) + +Hyphen; N ; No ; F ; False +Hyphen; Y ; Yes ; T ; True + +# IDS_Binary_Operator (IDSB) + +IDSB; N ; No ; F ; False +IDSB; Y ; Yes ; T ; True + +# IDS_Trinary_Operator (IDST) + +IDST; N ; No ; F ; False +IDST; Y ; Yes ; T ; True + +# ID_Continue (IDC) + +IDC; N ; No ; F ; False +IDC; Y ; Yes ; T ; True + +# ID_Start (IDS) + +IDS; N ; No ; F ; False +IDS; Y ; Yes ; T ; True + +# ISO_Comment (isc) + +# @missing: 0000..10FFFF; ISO_Comment; + +# Ideographic (Ideo) + +Ideo; N ; No ; F ; False +Ideo; Y ; Yes ; T ; True + +# Jamo_Short_Name (JSN) + +# @missing: 0000..10FFFF; Jamo_Short_Name; +JSN; A ; A +JSN; AE ; AE +JSN; B ; B +JSN; BB ; BB +JSN; BS ; BS +JSN; C ; C +JSN; D ; D +JSN; DD ; DD +JSN; E ; E +JSN; EO ; EO +JSN; EU ; EU +JSN; G ; G +JSN; GG ; GG +JSN; GS ; GS +JSN; H ; H +JSN; I ; I +JSN; J ; J +JSN; JJ ; JJ +JSN; K ; K +JSN; L ; L +JSN; LB ; LB +JSN; LG ; LG +JSN; LH ; LH +JSN; LM ; LM +JSN; LP ; LP +JSN; LS ; LS +JSN; LT ; LT +JSN; M ; M +JSN; N ; N +JSN; NG ; NG +JSN; NH ; NH +JSN; NJ ; NJ +JSN; O ; O +JSN; OE ; OE +JSN; P ; P +JSN; R ; R +JSN; S ; S +JSN; SS ; SS +JSN; T ; T +JSN; U ; U +JSN; WA ; WA +JSN; WAE ; WAE +JSN; WE ; WE +JSN; WEO ; WEO +JSN; WI ; WI +JSN; YA ; YA +JSN; YAE ; YAE +JSN; YE ; YE +JSN; YEO ; YEO +JSN; YI ; YI +JSN; YO ; YO +JSN; YU ; YU + +# Join_Control (Join_C) + +Join_C; N ; No ; F ; False +Join_C; Y ; Yes ; T ; True + +# Joining_Group (jg) + +jg ; n/a ; Ain +jg ; n/a ; Alaph +jg ; n/a ; Alef +jg ; n/a ; Beh +jg ; n/a ; Beth +jg ; n/a ; Burushaski_Yeh_Barree +jg ; n/a ; Dal +jg ; n/a ; Dalath_Rish +jg ; n/a ; E +jg ; n/a ; Farsi_Yeh +jg ; n/a ; Fe +jg ; n/a ; Feh +jg ; n/a ; Final_Semkath +jg ; n/a ; Gaf +jg ; n/a ; Gamal +jg ; n/a ; Hah +jg ; n/a ; He +jg ; n/a ; Heh +jg ; n/a ; Heh_Goal +jg ; n/a ; Heth +jg ; n/a ; Kaf +jg ; n/a ; Kaph +jg ; n/a ; Khaph +jg ; n/a ; Knotted_Heh +jg ; n/a ; Lam +jg ; n/a ; Lamadh +jg ; n/a ; Meem +jg ; n/a ; Mim +jg ; n/a ; No_Joining_Group +jg ; n/a ; Noon +jg ; n/a ; Nun +jg ; n/a ; Nya +jg ; n/a ; Pe +jg ; n/a ; Qaf +jg ; n/a ; Qaph +jg ; n/a ; Reh +jg ; n/a ; Reversed_Pe +jg ; n/a ; Sad +jg ; n/a ; Sadhe +jg ; n/a ; Seen +jg ; n/a ; Semkath +jg ; n/a ; Shin +jg ; n/a ; Swash_Kaf +jg ; n/a ; Syriac_Waw +jg ; n/a ; Tah +jg ; n/a ; Taw +jg ; n/a ; Teh_Marbuta +jg ; n/a ; Teh_Marbuta_Goal ; Hamza_On_Heh_Goal +jg ; n/a ; Teth +jg ; n/a ; Waw +jg ; n/a ; Yeh +jg ; n/a ; Yeh_Barree +jg ; n/a ; Yeh_With_Tail +jg ; n/a ; Yudh +jg ; n/a ; Yudh_He +jg ; n/a ; Zain +jg ; n/a ; Zhain + +# Joining_Type (jt) + +jt ; C ; Join_Causing +jt ; D ; Dual_Joining +jt ; L ; Left_Joining +jt ; R ; Right_Joining +jt ; T ; Transparent +jt ; U ; Non_Joining + +# Line_Break (lb) + +lb ; AI ; Ambiguous +lb ; AL ; Alphabetic +lb ; B2 ; Break_Both +lb ; BA ; Break_After +lb ; BB ; Break_Before +lb ; BK ; Mandatory_Break +lb ; CB ; Contingent_Break +lb ; CL ; Close_Punctuation +lb ; CM ; Combining_Mark +lb ; CP ; Close_Parenthesis +lb ; CR ; Carriage_Return +lb ; EX ; Exclamation +lb ; GL ; Glue +lb ; H2 ; H2 +lb ; H3 ; H3 +lb ; HY ; Hyphen +lb ; ID ; Ideographic +lb ; IN ; Inseparable ; Inseperable +lb ; IS ; Infix_Numeric +lb ; JL ; JL +lb ; JT ; JT +lb ; JV ; JV +lb ; LF ; Line_Feed +lb ; NL ; Next_Line +lb ; NS ; Nonstarter +lb ; NU ; Numeric +lb ; OP ; Open_Punctuation +lb ; PO ; Postfix_Numeric +lb ; PR ; Prefix_Numeric +lb ; QU ; Quotation +lb ; SA ; Complex_Context +lb ; SG ; Surrogate +lb ; SP ; Space +lb ; SY ; Break_Symbols +lb ; WJ ; Word_Joiner +lb ; XX ; Unknown +lb ; ZW ; ZWSpace + +# Logical_Order_Exception (LOE) + +LOE; N ; No ; F ; False +LOE; Y ; Yes ; T ; True + +# Lowercase (Lower) + +Lower; N ; No ; F ; False +Lower; Y ; Yes ; T ; True + +# Lowercase_Mapping (lc) + +# @missing: 0000..10FFFF; Lowercase_Mapping; + +# Math (Math) + +Math; N ; No ; F ; False +Math; Y ; Yes ; T ; True + +# NFC_Quick_Check (NFC_QC) + +NFC_QC; M ; Maybe +NFC_QC; N ; No +NFC_QC; Y ; Yes + +# NFD_Quick_Check (NFD_QC) + +NFD_QC; N ; No +NFD_QC; Y ; Yes + +# NFKC_Casefold (NFKC_CF) + +# @missing: 0000..10FFFF; NFKC_Casefold; + +# NFKC_Quick_Check (NFKC_QC) + +NFKC_QC; M ; Maybe +NFKC_QC; N ; No +NFKC_QC; Y ; Yes + +# NFKD_Quick_Check (NFKD_QC) + +NFKD_QC; N ; No +NFKD_QC; Y ; Yes + +# Name (na) + +# @missing: 0000..10FFFF; Name; + +# Name_Alias (Name_Alias) + +# @missing: 0000..10FFFF; Name_Alias; + +# Noncharacter_Code_Point (NChar) + +NChar; N ; No ; F ; False +NChar; Y ; Yes ; T ; True + +# Numeric_Type (nt) + +nt ; De ; Decimal +nt ; Di ; Digit +nt ; None ; None +nt ; Nu ; Numeric + +# Numeric_Value (nv) + +# @missing: 0000..10FFFF; Numeric_Value; NaN + +# Other_Alphabetic (OAlpha) + +OAlpha; N ; No ; F ; False +OAlpha; Y ; Yes ; T ; True + +# Other_Default_Ignorable_Code_Point (ODI) + +ODI; N ; No ; F ; False +ODI; Y ; Yes ; T ; True + +# Other_Grapheme_Extend (OGr_Ext) + +OGr_Ext; N ; No ; F ; False +OGr_Ext; Y ; Yes ; T ; True + +# Other_ID_Continue (OIDC) + +OIDC; N ; No ; F ; False +OIDC; Y ; Yes ; T ; True + +# Other_ID_Start (OIDS) + +OIDS; N ; No ; F ; False +OIDS; Y ; Yes ; T ; True + +# Other_Lowercase (OLower) + +OLower; N ; No ; F ; False +OLower; Y ; Yes ; T ; True + +# Other_Math (OMath) + +OMath; N ; No ; F ; False +OMath; Y ; Yes ; T ; True + +# Other_Uppercase (OUpper) + +OUpper; N ; No ; F ; False +OUpper; Y ; Yes ; T ; True + +# Pattern_Syntax (Pat_Syn) + +Pat_Syn; N ; No ; F ; False +Pat_Syn; Y ; Yes ; T ; True + +# Pattern_White_Space (Pat_WS) + +Pat_WS; N ; No ; F ; False +Pat_WS; Y ; Yes ; T ; True + +# Quotation_Mark (QMark) + +QMark; N ; No ; F ; False +QMark; Y ; Yes ; T ; True + +# Radical (Radical) + +Radical; N ; No ; F ; False +Radical; Y ; Yes ; T ; True + +# STerm (STerm) + +STerm; N ; No ; F ; False +STerm; Y ; Yes ; T ; True + +# Script (sc) + +sc ; Arab ; Arabic +sc ; Armi ; Imperial_Aramaic +sc ; Armn ; Armenian +sc ; Avst ; Avestan +sc ; Bali ; Balinese +sc ; Bamu ; Bamum +sc ; Batk ; Batak +sc ; Beng ; Bengali +sc ; Bopo ; Bopomofo +sc ; Brah ; Brahmi +sc ; Brai ; Braille +sc ; Bugi ; Buginese +sc ; Buhd ; Buhid +sc ; Cans ; Canadian_Aboriginal +sc ; Cari ; Carian +sc ; Cham ; Cham +sc ; Cher ; Cherokee +sc ; Copt ; Coptic ; Qaac +sc ; Cprt ; Cypriot +sc ; Cyrl ; Cyrillic +sc ; Deva ; Devanagari +sc ; Dsrt ; Deseret +sc ; Egyp ; Egyptian_Hieroglyphs +sc ; Ethi ; Ethiopic +sc ; Geor ; Georgian +sc ; Glag ; Glagolitic +sc ; Goth ; Gothic +sc ; Grek ; Greek +sc ; Gujr ; Gujarati +sc ; Guru ; Gurmukhi +sc ; Hang ; Hangul +sc ; Hani ; Han +sc ; Hano ; Hanunoo +sc ; Hebr ; Hebrew +sc ; Hira ; Hiragana +sc ; Hrkt ; Katakana_Or_Hiragana +sc ; Ital ; Old_Italic +sc ; Java ; Javanese +sc ; Kali ; Kayah_Li +sc ; Kana ; Katakana +sc ; Khar ; Kharoshthi +sc ; Khmr ; Khmer +sc ; Knda ; Kannada +sc ; Kthi ; Kaithi +sc ; Lana ; Tai_Tham +sc ; Laoo ; Lao +sc ; Latn ; Latin +sc ; Lepc ; Lepcha +sc ; Limb ; Limbu +sc ; Linb ; Linear_B +sc ; Lisu ; Lisu +sc ; Lyci ; Lycian +sc ; Lydi ; Lydian +sc ; Mand ; Mandaic +sc ; Mlym ; Malayalam +sc ; Mong ; Mongolian +sc ; Mtei ; Meetei_Mayek +sc ; Mymr ; Myanmar +sc ; Nkoo ; Nko +sc ; Ogam ; Ogham +sc ; Olck ; Ol_Chiki +sc ; Orkh ; Old_Turkic +sc ; Orya ; Oriya +sc ; Osma ; Osmanya +sc ; Phag ; Phags_Pa +sc ; Phli ; Inscriptional_Pahlavi +sc ; Phnx ; Phoenician +sc ; Prti ; Inscriptional_Parthian +sc ; Rjng ; Rejang +sc ; Runr ; Runic +sc ; Samr ; Samaritan +sc ; Sarb ; Old_South_Arabian +sc ; Saur ; Saurashtra +sc ; Shaw ; Shavian +sc ; Sinh ; Sinhala +sc ; Sund ; Sundanese +sc ; Sylo ; Syloti_Nagri +sc ; Syrc ; Syriac +sc ; Tagb ; Tagbanwa +sc ; Tale ; Tai_Le +sc ; Talu ; New_Tai_Lue +sc ; Taml ; Tamil +sc ; Tavt ; Tai_Viet +sc ; Telu ; Telugu +sc ; Tfng ; Tifinagh +sc ; Tglg ; Tagalog +sc ; Thaa ; Thaana +sc ; Thai ; Thai +sc ; Tibt ; Tibetan +sc ; Ugar ; Ugaritic +sc ; Vaii ; Vai +sc ; Xpeo ; Old_Persian +sc ; Xsux ; Cuneiform +sc ; Yiii ; Yi +sc ; Zinh ; Inherited ; Qaai +sc ; Zyyy ; Common +sc ; Zzzz ; Unknown + +# Sentence_Break (SB) + +SB ; AT ; ATerm +SB ; CL ; Close +SB ; CR ; CR +SB ; EX ; Extend +SB ; FO ; Format +SB ; LE ; OLetter +SB ; LF ; LF +SB ; LO ; Lower +SB ; NU ; Numeric +SB ; SC ; SContinue +SB ; SE ; Sep +SB ; SP ; Sp +SB ; ST ; STerm +SB ; UP ; Upper +SB ; XX ; Other + +# Simple_Case_Folding (scf) + +# @missing: 0000..10FFFF; Simple_Case_Folding; + +# Simple_Lowercase_Mapping (slc) + +# @missing: 0000..10FFFF; Simple_Lowercase_Mapping; + +# Simple_Titlecase_Mapping (stc) + +# @missing: 0000..10FFFF; Simple_Titlecase_Mapping; + +# Simple_Uppercase_Mapping (suc) + +# @missing: 0000..10FFFF; Simple_Uppercase_Mapping; + +# Soft_Dotted (SD) + +SD ; N ; No ; F ; False +SD ; Y ; Yes ; T ; True + +# Terminal_Punctuation (Term) + +Term; N ; No ; F ; False +Term; Y ; Yes ; T ; True + +# Titlecase_Mapping (tc) + +# @missing: 0000..10FFFF; Titlecase_Mapping; + +# Unicode_1_Name (na1) + +# @missing: 0000..10FFFF; Unicode_1_Name; + +# Unified_Ideograph (UIdeo) + +UIdeo; N ; No ; F ; False +UIdeo; Y ; Yes ; T ; True + +# Uppercase (Upper) + +Upper; N ; No ; F ; False +Upper; Y ; Yes ; T ; True + +# Uppercase_Mapping (uc) + +# @missing: 0000..10FFFF; Uppercase_Mapping; + +# Variation_Selector (VS) + +VS ; N ; No ; F ; False +VS ; Y ; Yes ; T ; True + +# White_Space (WSpace) + +WSpace; N ; No ; F ; False +WSpace; Y ; Yes ; T ; True + +# Word_Break (WB) + +WB ; CR ; CR +WB ; EX ; ExtendNumLet +WB ; Extend ; Extend +WB ; FO ; Format +WB ; KA ; Katakana +WB ; LE ; ALetter +WB ; LF ; LF +WB ; MB ; MidNumLet +WB ; ML ; MidLetter +WB ; MN ; MidNum +WB ; NL ; Newline +WB ; NU ; Numeric +WB ; XX ; Other + +# XID_Continue (XIDC) + +XIDC; N ; No ; F ; False +XIDC; Y ; Yes ; T ; True + +# XID_Start (XIDS) + +XIDS; N ; No ; F ; False +XIDS; Y ; Yes ; T ; True + +# cjkAccountingNumeric (cjkAccountingNumeric) + +# @missing: 0000..10FFFF; cjkAccountingNumeric; NaN + +# cjkCompatibilityVariant (cjkCompatibilityVariant) + +# @missing: 0000..10FFFF; cjkCompatibilityVariant; + +# cjkIICore (cjkIICore) + +# @missing: 0000..10FFFF; cjkIICore; + +# cjkIRG_GSource (cjkIRG_GSource) + +# @missing: 0000..10FFFF; cjkIRG_GSource; + +# cjkIRG_HSource (cjkIRG_HSource) + +# @missing: 0000..10FFFF; cjkIRG_HSource; + +# cjkIRG_JSource (cjkIRG_JSource) + +# @missing: 0000..10FFFF; cjkIRG_JSource; + +# cjkIRG_KPSource (cjkIRG_KPSource) + +# @missing: 0000..10FFFF; cjkIRG_KPSource; + +# cjkIRG_KSource (cjkIRG_KSource) + +# @missing: 0000..10FFFF; cjkIRG_KSource; + +# cjkIRG_MSource (cjkIRG_MSource) + +# @missing: 0000..10FFFF; cjkIRG_MSource; + +# cjkIRG_TSource (cjkIRG_TSource) + +# @missing: 0000..10FFFF; cjkIRG_TSource; + +# cjkIRG_USource (cjkIRG_USource) + +# @missing: 0000..10FFFF; cjkIRG_USource; + +# cjkIRG_VSource (cjkIRG_VSource) + +# @missing: 0000..10FFFF; cjkIRG_VSource; + +# cjkOtherNumeric (cjkOtherNumeric) + +# @missing: 0000..10FFFF; cjkOtherNumeric; NaN + +# cjkPrimaryNumeric (cjkPrimaryNumeric) + +# @missing: 0000..10FFFF; cjkPrimaryNumeric; NaN + +# cjkRSUnicode (cjkRSUnicode) + +# @missing: 0000..10FFFF; cjkRSUnicode; + +# EOF diff --git a/jdk/test/java/lang/Double/ParseDouble.java b/jdk/test/java/lang/Double/ParseDouble.java index a282a6aac68..e67c3d86bea 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 + * @bug 4160406 4705734 4707389 4826774 4895911 4421494 7021568 * @summary Test for Double.parseDouble method and acceptance regex */ @@ -581,6 +581,31 @@ public class ParseDouble { } } + + private static void testStrictness() { + final double expected = 0x0.0000008000001p-1022; + boolean failed = false; + double conversion = 0.0; + double sum = 0.0; // Prevent conversion from being optimized away + + //2^-1047 + 2^-1075 + String decimal = "6.631236871469758276785396630275967243399099947355303144249971758736286630139265439618068200788048744105960420552601852889715006376325666595539603330361800519107591783233358492337208057849499360899425128640718856616503093444922854759159988160304439909868291973931426625698663157749836252274523485312442358651207051292453083278116143932569727918709786004497872322193856150225415211997283078496319412124640111777216148110752815101775295719811974338451936095907419622417538473679495148632480391435931767981122396703443803335529756003353209830071832230689201383015598792184172909927924176339315507402234836120730914783168400715462440053817592702766213559042115986763819482654128770595766806872783349146967171293949598850675682115696218943412532098591327667236328125E-316"; + + for(int i = 0; i <= 12_000; i++) { + conversion = Double.parseDouble(decimal); + sum += conversion; + if (conversion != expected) { + failed = true; + System.out.printf("Iteration %d converts as %a%n", + i, conversion); + } + } + + System.out.println("Sum = " + sum); + if (failed) + throw new RuntimeException("Inconsistent conversion"); + } + public static void main(String[] args) throws Exception { rudimentaryTest(); @@ -595,5 +620,6 @@ public class ParseDouble { testRegex(paddedBadStrings, true); testSubnormalPowers(); + testStrictness(); } } diff --git a/jdk/test/java/lang/Math/RoundTests.java b/jdk/test/java/lang/Math/RoundTests.java new file mode 100644 index 00000000000..9994e97df85 --- /dev/null +++ b/jdk/test/java/lang/Math/RoundTests.java @@ -0,0 +1,98 @@ +/* + * 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 6430675 + * @summary Check for correct implementation of {Math, StrictMath}.round + */ +public class RoundTests { + public static void main(String... args) { + int failures = 0; + + failures += testNearFloatHalfCases(); + failures += testNearDoubleHalfCases(); + + if (failures > 0) { + System.err.println("Testing {Math, StrictMath}.round incurred " + + failures + " failures."); + throw new RuntimeException(); + } + } + + private static int testNearDoubleHalfCases() { + int failures = 0; + double [][] testCases = { + {+0x1.fffffffffffffp-2, 0.0}, + {+0x1.0p-1, 1.0}, // +0.5 + {+0x1.0000000000001p-1, 1.0}, + + {-0x1.fffffffffffffp-2, 0.0}, + {-0x1.0p-1, 0.0}, // -0.5 + {-0x1.0000000000001p-1, -1.0}, + }; + + for(double[] testCase : testCases) { + failures += testNearHalfCases(testCase[0], (long)testCase[1]); + } + + return failures; + } + + private static int testNearHalfCases(double input, double expected) { + int failures = 0; + + failures += Tests.test("Math.round", input, Math.round(input), expected); + failures += Tests.test("StrictMath.round", input, StrictMath.round(input), expected); + + return failures; + } + + private static int testNearFloatHalfCases() { + int failures = 0; + float [][] testCases = { + {+0x1.fffffep-2f, 0.0f}, + {+0x1.0p-1f, 1.0f}, // +0.5 + {+0x1.000002p-1f, 1.0f}, + + {-0x1.fffffep-2f, 0.0f}, + {-0x1.0p-1f, 0.0f}, // -0.5 + {-0x1.000002p-1f, -1.0f}, + }; + + for(float[] testCase : testCases) { + failures += testNearHalfCases(testCase[0], (int)testCase[1]); + } + + return failures; + } + + private static int testNearHalfCases(float input, float expected) { + int failures = 0; + + failures += Tests.test("Math.round", input, Math.round(input), expected); + failures += Tests.test("StrictMath.round", input, StrictMath.round(input), expected); + + return failures; + } +} diff --git a/jdk/test/java/lang/invoke/ClassValueTest.java b/jdk/test/java/lang/invoke/ClassValueTest.java index 59c5a658c7e..121c260dfa1 100644 --- a/jdk/test/java/lang/invoke/ClassValueTest.java +++ b/jdk/test/java/lang/invoke/ClassValueTest.java @@ -52,9 +52,9 @@ public class ClassValueTest { static String nameForCV1(Class type) { return "CV1:" + type.getName(); } - static int countForCV1; - static final ClassValue CV1 = new CV1(); - private static class CV1 extends ClassValue { + int countForCV1; + final ClassValue CV1 = new CV1(); + private class CV1 extends ClassValue { protected String computeValue(Class type) { countForCV1++; return nameForCV1(type); @@ -103,8 +103,8 @@ public class ClassValueTest { static String nameForCVN(Class type, int n) { return "CV[" + n + "]" + type.getName(); } - static int countForCVN; - static class CVN extends ClassValue { + int countForCVN; + class CVN extends ClassValue { final int n; CVN(int n) { this.n = n; } protected String computeValue(Class type) { diff --git a/jdk/test/java/lang/reflect/Generics/Probe.java b/jdk/test/java/lang/reflect/Generics/Probe.java index 14d094a2e6c..2d9aa0144de 100644 --- a/jdk/test/java/lang/reflect/Generics/Probe.java +++ b/jdk/test/java/lang/reflect/Generics/Probe.java @@ -38,12 +38,12 @@ import static java.util.Arrays.*; "java.util.concurrent.ConcurrentHashMap$KeyIterator", "java.util.concurrent.ConcurrentHashMap$ValueIterator", "java.util.AbstractList$ListItr", - "java.util.EnumMap$EntryIterator", - "java.util.EnumMap$KeyIterator", - "java.util.EnumMap$ValueIterator", - "java.util.IdentityHashMap$EntryIterator", - "java.util.IdentityHashMap$KeyIterator", - "java.util.IdentityHashMap$ValueIterator", +// "java.util.EnumMap$EntryIterator", +// "java.util.EnumMap$KeyIterator", +// "java.util.EnumMap$ValueIterator", +// "java.util.IdentityHashMap$EntryIterator", +// "java.util.IdentityHashMap$KeyIterator", +// "java.util.IdentityHashMap$ValueIterator", "java.util.WeakHashMap$EntryIterator", "java.util.WeakHashMap$KeyIterator", "java.util.WeakHashMap$ValueIterator", diff --git a/jdk/test/java/math/BigDecimal/DivideMcTests.java b/jdk/test/java/math/BigDecimal/DivideMcTests.java new file mode 100644 index 00000000000..3bf1da89a6d --- /dev/null +++ b/jdk/test/java/math/BigDecimal/DivideMcTests.java @@ -0,0 +1,5797 @@ +/* + * 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 7036582 + * @summary Some tests for the divide(..,MathContext) method. + * @run main DivideMcTests + * @run main/othervm -XX:+AggressiveOpts DivideMcTests + * @author Sergey V. Kuksenko + */ + +import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; + + +public class DivideMcTests { + + static String[] value = new String[75]; + static String[][] results = new String[75][75]; + static { + value[0]="11061"; + value[1]="5030285645"; + value[2]="224198292018431"; + value[3]="19226185404220649458"; + value[4]="2754593222460641763294400"; + value[5]="88290e4"; + value[6]="14207e-4"; + value[7]="9206524943e4"; + value[8]="9637167289e-4"; + value[9]="987673128759528e4"; + value[10]="270627774630281e-4"; + value[11]="81503625886547904651e4"; + value[12]="60700032235397315737e-4"; + value[13]="6477954854329556663533122e4"; + value[14]="8056417378028557868905113e-4"; + value[15]="74996e8"; + value[16]="65282e-8"; + value[17]="6336626690e8"; + value[18]="8318166778e-8"; + value[19]="983114227763768e8"; + value[20]="245802997834566e-8"; + value[21]="52727924122290902686e8"; + value[22]="42785567085625398961e-8"; + value[23]="4810906998143118279742863e8"; + value[24]="8077506080975981172874361e-8"; + value[25]="80689e12"; + value[26]="30125e-12"; + value[27]="6921467144e12"; + value[28]="1953347181e-12"; + value[29]="405471649883944e12"; + value[30]="866720590936024e-12"; + value[31]="33231666378140173438e12"; + value[32]="42631490906110209257e-12"; + value[33]="7723154992826793726050991e12"; + value[34]="1611437259018380210686834e-12"; + value[35]="65645e16"; + value[36]="31153e-16"; + value[37]="7758733150e16"; + value[38]="6365465077e-16"; + value[39]="727973863299662e16"; + value[40]="351084160935215e-16"; + value[41]="45470432070181568402e16"; + value[42]="97216256670931719037e-16"; + value[43]="2520581904836081418366563e16"; + value[44]="3700768934485477578987416e-16"; + value[45]="28736e20"; + value[46]="52779e-20"; + value[47]="7904805864e20"; + value[48]="6373815349e-20"; + value[49]="186651310031326e20"; + value[50]="189125880591366e-20"; + value[51]="74987916068454915171e20"; + value[52]="10554589082317914511e-20"; + value[53]="3599986721169840668392202e20"; + value[54]="2588106172836128849130551e-20"; + value[55]="71080e24"; + value[56]="61576e-24"; + value[57]="7086656363e24"; + value[58]="7703864845e-24"; + value[59]="361167296280301e24"; + value[60]="149150690375117e-24"; + value[61]="78129219923655854302e24"; + value[62]="20861932490694515212e-24"; + value[63]="9185868654811652011998047e24"; + value[64]="1996563690880014012200226e-24"; + value[65]="84665e28"; + value[66]="94968e-28"; + value[67]="2622821029e28"; + value[68]="4451579486e-28"; + value[69]="590522407411869e28"; + value[70]="606293232614518e-28"; + value[71]="96628087822208148505e28"; + value[72]="24875240094942654314e-28"; + value[73]="5099400093819597146233149e28"; + value[74]="8906650752845770170008864e-28"; + //-------------------------------------------- + initResults1(); + initResults2(); + } + + private static void initResults1() { + results[0][0]="1"; + results[0][1]="0.000002198881093560642"; + results[0][2]="4.933579065397471E-11"; + results[0][3]="5.753091300977375E-16"; + results[0][4]="4.015474920147867E-21"; + results[0][5]="0.00001252803261977574"; + results[0][6]="7785.598648553530"; + results[0][7]="1.201430514605841E-10"; + results[0][8]="0.01147743903192921"; + results[0][9]="1.119904923797219E-15"; + results[0][10]="4.087163638363069E-7"; + results[0][11]="1.357117536758031E-20"; + results[0][12]="1.822239559462666E-12"; + results[0][13]="1.707483341383177E-25"; + results[0][14]="1.372942771084022E-17"; + results[0][15]="1.474878660195210E-9"; + results[0][16]="16943414.72381361"; + results[0][17]="1.745565983468090E-14"; + results[0][18]="132.9740109233477"; + results[0][19]="1.125098151123273E-19"; + results[0][20]="0.004499945117611804"; + results[0][21]="2.097749946374985E-24"; + results[0][22]="2.585217575324869E-8"; + results[0][23]="2.299150660004288E-29"; + results[0][24]="1.369358300583728E-13"; + results[0][25]="1.370818822887878E-13"; + results[0][26]="367170124481.3278"; + results[0][27]="1.598071589430057E-18"; + results[0][28]="5662587.842852089"; + results[0][29]="2.727934247231818E-23"; + results[0][30]="12.76189825841631"; + results[0][31]="3.328451806821200E-28"; + results[0][32]="0.0002594560913752765"; + results[0][33]="1.432186717769276E-33"; + results[0][34]="6.864058738928437E-9"; + results[0][35]="1.684972198948892E-17"; + results[0][36]="3550540878888069"; + results[0][37]="1.425619335806130E-22"; + results[0][38]="17376577934.52694"; + results[0][39]="1.519422682273810E-27"; + results[0][40]="315052.6634564146"; + results[0][41]="2.432569803367569E-32"; + results[0][42]="1.137772670824026"; + results[0][43]="4.388272398043467E-37"; + results[0][44]="0.00002988838318687904"; + results[0][45]="3.849178730512249E-21"; + results[0][46]="2.095719888592054E+19"; + results[0][47]="1.399275351008165E-26"; + results[0][48]="173538130528606.9"; + results[0][49]="5.926023234524105E-31"; + results[0][50]="5848485656.967753"; + results[0][51]="1.475037656720937E-36"; + results[0][52]="104798.0164242535"; + results[0][53]="3.072511333154488E-41"; + results[0][54]="0.4273781391232109"; + results[0][55]="1.556133933595948E-25"; + results[0][56]="1.796316746784461E+23"; + results[0][57]="1.560820707738894E-30"; + results[0][58]="1.435772852009322E+18"; + results[0][59]="3.062569649555309E-35"; + results[0][60]="74159898101586.80"; + results[0][61]="1.415731529229177E-40"; + results[0][62]="530200162.6615257"; + results[0][63]="1.204132174718842E-45"; + results[0][64]="5540.018608234184"; + results[0][65]="1.306443040217327E-29"; + results[0][66]="1.164708112206217E+27"; + results[0][67]="4.217214929154817E-34"; + results[0][68]="2.484736043641657E+22"; + results[0][69]="1.873087263272185E-39"; + results[0][70]="1.824364747121068E+17"; + results[0][71]="1.144698218633054E-44"; + results[0][72]="4446590247082.196"; + results[0][73]="2.169078675235893E-49"; + results[0][74]="12418809.61422664"; + results[1][0]="454776.7511979025"; + results[1][1]="1"; + results[1][2]="0.00002243677059139446"; + results[1][3]="2.616372171203405E-10"; + results[1][4]="1.826144638701504E-15"; + results[1][5]="5.697457973722958"; + results[1][6]="3540709259.519955"; + results[1][7]="0.00005463826662224685"; + results[1][8]="5219.672435012765"; + results[1][9]="5.093067228950338E-10"; + results[1][10]="0.1858747001068956"; + results[1][11]="6.171855043605175E-15"; + results[1][12]="8.287121867567282E-7"; + results[1][13]="7.765237267187802E-20"; + results[1][14]="6.243824530142372E-12"; + results[1][15]="0.0006707405254946931"; + results[1][16]="7705471102294.660"; + results[1][17]="7.938428269631898E-9"; + results[1][18]="60473488.68147447"; + results[1][19]="5.116684819466090E-14"; + results[1][20]="2046.470421156359"; + results[1][21]="9.540079054379898E-19"; + results[1][22]="0.01175696850045963"; + results[1][23]="1.045600267671264E-23"; + results[1][24]="6.227523191653488E-8"; + results[1][25]="6.234165307538822E-8"; + results[1][26]="1.669804363485477E+17"; + results[1][27]="7.267658056226699E-13"; + results[1][28]="2575213302545.012"; + results[1][29]="1.240601074437582E-17"; + results[1][30]="5803814.629080740"; + results[1][31]="1.513702499224934E-22"; + results[1][32]="117.9945983141544"; + results[1][33]="6.513252226158986E-28"; + results[1][34]="0.003121614333321446"; + results[1][35]="7.662861824967629E-12"; + results[1][36]="1.614703445896061E+21"; + results[1][37]="6.483385299828233E-17"; + results[1][38]="7902463660001319"; + results[1][39]="6.909981111408860E-22"; + results[1][40]="143278626742.9544"; + results[1][41]="1.106276192237624E-26"; + results[1][42]="517432.5588391111"; + results[1][43]="1.995684264553637E-31"; + results[1][44]="13.59254180428686"; + results[1][45]="1.750516997842428E-15"; + results[1][46]="9.530846823547244E+24"; + results[1][47]="6.363578981627979E-21"; + results[1][48]="7.892110721075739E+19"; + results[1][49]="2.695017594120158E-25"; + results[1][50]="2659755306503325"; + results[1][51]="6.708128334181145E-31"; + results[1][52]="47659701441.40646"; + results[1][53]="1.397306722110734E-35"; + results[1][54]="194361.6416434591"; + results[1][55]="7.076935347495779E-20"; + results[1][56]="8.169230942250227E+28"; + results[1][57]="7.098249706679054E-25"; + results[1][58]="6.529561130949462E+23"; + results[1][59]="1.392785475542062E-29"; + results[1][60]="3.372619752780715E+19"; + results[1][61]="6.438417854312836E-35"; + results[1][62]="241122707459808.1"; + results[1][63]="5.476113184315002E-40"; + results[1][64]="2519471664.228668"; + results[1][65]="5.941399214551468E-24"; + results[1][66]="5.296821713629854E+32"; + results[1][67]="1.917891304584321E-28"; + results[1][68]="1.130000185511682E+28"; + results[1][69]="8.518365403010947E-34"; + results[1][70]="8.296786726957023E+22"; + results[1][71]="5.205821369719668E-39"; + results[1][72]="2.022205866476320E+18"; + results[1][73]="9.864465530164297E-44"; + results[1][74]="5647785890103.269"; + results[2][0]="20269260647.17756"; + results[2][1]="44569.69401753148"; + results[2][2]="1"; + results[2][3]="0.00001166109071065203"; + results[2][4]="8.139070777868161E-11"; + results[2][5]="253933.9585665772"; + results[2][6]="157808328301844.9"; + results[2][7]="2.435210825001846"; + results[2][8]="232639203.3002624"; + results[2][9]="0.00002269964480050335"; + results[2][10]="8284.378509364762"; + results[2][11]="2.750776908140411E-10"; + results[2][12]="0.03693544859234678"; + results[2][13]="3.460942489720927E-15"; + results[2][14]="2.782853488076028E-7"; + results[2][15]="29.89469998645674"; + results[2][16]="3.434304892902040E+17"; + results[2][17]="0.0003538133189576156"; + results[2][18]="2695284886705.971"; + results[2][19]="2.280490767877520E-9"; + results[2][20]="91210560.48686773"; + results[2][21]="4.251984043567731E-14"; + results[2][22]="524.0044886392415"; + results[2][23]="4.660208399475724E-19"; + results[2][24]="0.002775588031390770"; + results[2][25]="0.002778548402117154"; + results[2][26]="7.442266954968664E+21"; + results[2][27]="3.239172957900716E-8"; + results[2][28]="1.147764689243079E+17"; + results[2][29]="5.529321028550383E-13"; + results[2][30]="258674242152.6016"; + results[2][31]="6.746525722402801E-18"; + results[2][32]="5258983.142583397"; + results[2][33]="2.902936587789118E-23"; + results[2][34]="139.1293956768774"; + results[2][35]="3.415314068374301E-7"; + results[2][36]="7.196683851264116E+25"; + results[2][37]="2.889624990111060E-12"; + results[2][38]="3.522103873109208E+20"; + results[2][39]="3.079757438024150E-17"; + results[2][40]="6385884553185581"; + results[2][41]="4.930639138691073E-22"; + results[2][42]="23061810822.16754"; + results[2][43]="8.894703702675794E-27"; + results[2][44]="605815.4291375707"; + results[2][45]="7.802000696632482E-11"; + results[2][46]="4.247869266534626E+29"; + results[2][47]="2.836227680675536E-16"; + results[2][48]="3.517489599908254E+24"; + results[2][49]="1.201161095417993E-20"; + results[2][50]="1.185444801723589E+20"; + results[2][51]="2.989792272847868E-26"; + results[2][52]="2124178310210390"; + results[2][53]="6.227753305311532E-31"; + results[2][54]="8662638896.794075"; + results[2][55]="3.154168430197397E-15"; + results[2][56]="3.641001234546430E+33"; + results[2][57]="3.163668174867180E-20"; + results[2][58]="2.910205416751843E+28"; + results[2][59]="6.207602247697180E-25"; + results[2][60]="1.503166304189191E+24"; + results[2][61]="2.869583137237347E-30"; + results[2][62]="1.074676529216240E+19"; + results[2][63]="2.440686890302896E-35"; + results[2][64]="112292081160512.5"; + results[2][65]="2.648063450285608E-19"; + results[2][66]="2.360777230418994E+37"; + results[2][67]="8.547982860420744E-24"; + results[2][68]="5.036376250800950E+32"; + results[2][69]="3.796609395417242E-29"; + results[2][70]="3.697852457491911E+27"; + results[2][71]="2.320218655583322E-34"; + results[2][72]="9.012909670930670E+22"; + results[2][73]="4.396562103259092E-39"; + results[2][74]="2.517200889984344E+17"; + results[3][0]="1738195950114877"; + results[3][1]="3822086211.611279"; + results[3][2]="85755.27151045421"; + results[3][3]="1"; + results[3][4]="0.000006979682243988879"; + results[3][5]="21776175562.60126"; + results[3][6]="1.353289604013560E+19"; + results[3][7]="208832.1654832305"; + results[3][8]="19950038042989.76"; + results[3][9]="1.946614203058035"; + results[3][10]="710429128.3659471"; + results[3][11]="0.00002358936206222687"; + results[3][12]="3167.409422397122"; + results[3][13]="2.967940628880855E-10"; + results[3][14]="0.02386443564437743"; + results[3][15]="2563628.114062170"; + results[3][16]="2.945097485404958E+22"; + results[3][17]="30.34135723122526"; + results[3][18]="2.311348872574943E+17"; + results[3][19]="0.0001955641049764209"; + results[3][20]="7821786379172.049"; + results[3][21]="3.646300461142698E-9"; + results[3][22]="44936147.19595487"; + results[3][23]="3.996374365923399E-14"; + results[3][24]="238.0213052330826"; + results[3][25]="238.2751726284952"; + results[3][26]="6.382136233766191E+26"; + results[3][27]="0.002777761564740970"; + results[3][28]="9.842687255615237E+21"; + results[3][29]="4.741684260718020E-8"; + results[3][30]="2.218267986855733E+16"; + results[3][31]="5.785501450769154E-13"; + results[3][32]="450985527261.1410"; + results[3][33]="2.489421152634873E-18"; + results[3][34]="11931079.10135604"; + results[3][35]="0.02928811852269122"; + results[3][36]="6.171535776400555E+30"; + results[3][37]="2.478005755903675E-7"; + results[3][38]="3.020389739265025E+25"; + results[3][39]="2.641054352841019E-12"; + results[3][40]="5.476232636928451E+20"; + results[3][41]="4.228282980585251E-17"; + results[3][42]="1977671848577708"; + results[3][43]="7.627677310280051E-22"; + results[3][44]="51951866610.91471"; + results[3][45]="0.000006690626880644714"; + results[3][46]="3.642771822925908E+34"; + results[3][47]="2.432214748217965E-11"; + results[3][48]="3.016432756753313E+29"; + results[3][49]="1.030058958653646E-15"; + results[3][50]="1.016581408324629E+25"; + results[3][51]="2.563904481179269E-21"; + results[3][52]="1.821594877287098E+20"; + results[3][53]="5.340626755971191E-26"; + results[3][54]="742866950591597.5"; + results[3][55]="2.704865701212809E-10"; + results[3][56]="3.122350494384281E+38"; + results[3][57]="2.713012233047182E-15"; + results[3][58]="2.495654556647489E+33"; + results[3][59]="5.323346161801775E-20"; + results[3][60]="1.289044345411101E+29"; + results[3][61]="2.460818810556097E-25"; + results[3][62]="9.215917754885128E+23"; + results[3][63]="2.093017669499310E-30"; + results[3][64]="9.629637908393713E+18"; + results[3][65]="2.270854001561525E-14"; + results[3][66]="2.024490923702789E+42"; + results[3][67]="7.330345910620899E-19"; + results[3][68]="4.318958128162389E+37"; + results[3][69]="3.255792695231470E-24"; + results[3][70]="3.171103414978191E+32"; + results[3][71]="1.989709807731689E-29"; + results[3][72]="7.729045159298581E+27"; + results[3][73]="3.770283768775571E-34"; + results[3][74]="2.158632457669644E+22"; + results[4][0]="2.490365448386802E+20"; + results[4][1]="547601750051441.0"; + results[4][2]="12286414841.35031"; + results[4][3]="143272.9979736873"; + results[4][4]="1"; + results[4][5]="3119937957255229"; + results[4][6]="1.938898586936469E+24"; + results[4][7]="29920010422.11961"; + results[4][8]="2.858301760108257E+18"; + results[4][9]="278897.2527702849"; + results[4][10]="101785311068822.8"; + results[4][11]="3.379718622942007"; + results[4][12]="453804243.7569410"; + results[4][13]="0.00004252257517076709"; + results[4][14]="3419.129239720079"; + results[4][15]="367298685591.3171"; + results[4][16]="4.219529460587362E+27"; + results[4][17]="4347097.213108260"; + results[4][18]="3.311538823369143E+22"; + results[4][19]="28.01905561601273"; + results[4][20]="1.120650784053732E+18"; + results[4][21]="0.0005224163985807529"; + results[4][22]="6438136526151.358"; + results[4][23]="5.725725364310391E-9"; + results[4][24]="34102025.98235386"; + results[4][25]="34138398.32518239"; + results[4][26]="9.143877916881798E+31"; + results[4][27]="397.9782270365194"; + results[4][28]="1.410191311229400E+27"; + results[4][29]="0.006793553194777180"; + results[4][30]="3.178179047858768E+21"; + results[4][31]="8.289061376328140E-8"; + results[4][32]="6.461404853344776E+16"; + results[4][33]="3.566668317571105E-13"; + results[4][34]="1709401471912.486"; + results[4][35]="4196.196545754653"; + results[4][36]="8.842144327867755E+35"; + results[4][37]="0.03550313136443727"; + results[4][38]="4.327402929934638E+30"; + results[4][39]="3.783917749429893E-7"; + results[4][40]="7.845962674940902E+25"; + results[4][41]="6.057987789095672E-12"; + results[4][42]="2.833469747538924E+20"; + results[4][43]="1.092840195819694E-16"; + results[4][44]="7443299679674857"; + results[4][45]="0.9585861715133080"; + results[4][46]="5.219108400046689E+39"; + results[4][47]="0.000003484706986930048"; + results[4][48]="4.321733642460815E+34"; + results[4][49]="1.475796350959623E-10"; + results[4][50]="1.456486660549828E+30"; + results[4][51]="3.673382815367253E-16"; + results[4][52]="2.609853591624336E+25"; + results[4][53]="7.651676063864807E-21"; + results[4][54]="1.064327751068292E+20"; + results[4][55]="0.00003875342181289592"; + results[4][56]="4.473485160550607E+43"; + results[4][57]="3.887013961679578E-10"; + results[4][58]="3.575599102375792E+38"; + results[4][59]="7.626917638530619E-15"; + results[4][60]="1.846852478880778E+34"; + results[4][61]="3.525688884584153E-20"; + results[4][62]="1.320392165821326E+29"; + results[4][63]="2.998729163210665E-25"; + results[4][64]="1.379667092536635E+24"; + results[4][65]="3.253520607642641E-9"; + results[4][66]="2.900548840094181E+47"; + results[4][67]="1.050240634798815E-13"; + results[4][68]="6.187900791446503E+42"; + results[4][69]="4.664671802266443E-19"; + results[4][70]="4.543334931485233E+37"; + results[4][71]="2.850716892513680E-24"; + results[4][72]="1.107363471446723E+33"; + results[4][73]="5.401798587640085E-29"; + results[4][74]="3.092737437336386E+27"; + results[5][0]="79820.99267697315"; + results[5][1]="0.1755168716666387"; + results[5][2]="0.000003938031784503595"; + results[5][3]="4.592174586052730E-11"; + results[5][4]="3.205191941956922E-16"; + results[5][5]="1"; + results[5][6]="621454212.7120434"; + results[5][7]="0.000009589937630824491"; + results[5][8]="916.1405769180272"; + results[5][9]="8.939192272132398E-11"; + results[5][10]="0.03262414588473695"; + results[5][11]="1.083264689633546E-15"; + results[5][12]="1.454529705315602E-7"; + results[5][13]="1.362930152886002E-20"; + results[5][14]="1.095896548766010E-12"; + results[5][15]="0.0001177262787348659"; + results[5][16]="1352440182592.445"; + results[5][17]="1.393328095835799E-9"; + results[5][18]="10614117.55214028"; + results[5][19]="8.980645128168683E-15"; + results[5][20]="359.1900862796728"; + results[5][21]="1.674444831077185E-19"; + results[5][22]="0.002063546331483886"; + results[5][23]="1.835204879954603E-24"; + results[5][24]="1.093035388830462E-8"; + results[5][25]="1.094201192231903E-8"; + results[5][26]="2.930788381742739E+16"; + results[5][27]="1.275596606371755E-13"; + results[5][28]="451993382737.0138"; + results[5][29]="2.177464195715552E-18"; + results[5][30]="1018667.387429325"; + results[5][31]="2.656803272979331E-23"; + results[5][32]="20.71004276966202"; + results[5][33]="1.143185655111196E-28"; + results[5][34]="0.0005478959823343203"; + results[5][35]="1.344961535532028E-12"; + results[5][36]="2.834076974930183E+20"; + results[5][37]="1.137943505635324E-17"; + results[5][38]="1387015700062728"; + results[5][39]="1.212818267950047E-22"; + results[5][40]="25147816342.61536"; + results[5][41]="1.941701364608288E-27"; + results[5][42]="90818.14402590475"; + results[5][43]="3.502762589487909E-32"; + results[5][44]="2.385720415486439"; + results[5][45]="3.072452672605791E-16"; + results[5][46]="1.672824418802933E+24"; + results[5][47]="1.116915475458918E-21"; + results[5][48]="1.385198584609954E+19"; + results[5][49]="4.730210572065213E-26"; + results[5][50]="466831930796205.5"; + results[5][51]="1.177389699953815E-31"; + results[5][52]="8365081701.561654"; + results[5][53]="2.452509046236414E-36"; + results[5][54]="34113.74731325223"; + results[5][55]="1.242121553179516E-20"; + results[5][56]="1.433837858906067E+28"; + results[5][57]="1.245862582824943E-25"; + results[5][58]="1.146048143060329E+23"; + results[5][59]="2.444573495698746E-30"; + results[5][60]="5.919516683291835E+18"; + results[5][61]="1.130050960271621E-35"; + results[5][62]="42321103301135.62"; + results[5][63]="9.611502550034045E-41"; + results[5][64]="442209784.7581557"; + results[5][65]="1.042815803460698E-24"; + results[5][66]="9.296815769522365E+31"; + results[5][67]="3.366222819772885E-29"; + results[5][68]="1.983340975437319E+27"; + results[5][69]="1.495116847249808E-34"; + results[5][70]="1.456226051200787E+22"; + results[5][71]="9.137094812685324E-40"; + results[5][72]="3.549312475498482E+17"; + results[5][73]="1.731380130517828E-44"; + results[5][74]="991281711273.9084"; + results[6][0]="0.0001284422746587108"; + results[6][1]="2.824292893609623E-10"; + results[6][2]="6.336801173682476E-15"; + results[6][3]="7.389401330167758E-20"; + results[6][4]="5.157567325787970E-25"; + results[6][5]="1.609129006682524E-9"; + results[6][6]="1"; + results[6][7]="1.543144681403597E-14"; + results[6][8]="0.000001474188376517659"; + results[6][9]="1.438431358140050E-19"; + results[6][10]="5.249645946137250E-11"; + results[6][11]="1.743112634004281E-24"; + results[6][12]="2.340525939904718E-16"; + results[6][13]="2.193130443091112E-29"; + results[6][14]="1.763438924942655E-21"; + results[6][15]="1.894367699610646E-13"; + results[6][16]="2176.250727612512"; + results[6][17]="2.242044654835111E-18"; + results[6][18]="0.01707948443348703"; + results[6][19]="1.445101657445832E-23"; + results[6][20]="5.779831867454199E-7"; + results[6][21]="2.694397747775916E-28"; + results[6][22]="3.320512258624031E-12"; + results[6][23]="2.953081405540270E-33"; + results[6][24]="1.758834949497607E-17"; + results[6][25]="1.760710877566955E-17"; + results[6][26]="47160165.97510373"; + results[6][27]="2.052599500138579E-22"; + results[6][28]="727.3156629906847"; + results[6][29]="3.503820798338526E-27"; + results[6][30]="0.001639167241274031"; + results[6][31]="4.275139211600108E-32"; + results[6][32]="3.332513055029883E-8"; + results[6][33]="1.839533197662788E-37"; + results[6][34]="8.816353178189703E-13"; + results[6][35]="2.164216619696854E-21"; + results[6][36]="456039546753.1217"; + results[6][37]="1.831097902883797E-26"; + results[6][38]="2231887.195695002"; + results[6][39]="1.951581054792877E-31"; + results[6][40]="40.46608073162718"; + results[6][41]="3.124447988106234E-36"; + results[6][42]="0.0001461381098851545"; + results[6][43]="5.636396886267384E-41"; + results[6][44]="3.838931922393911E-9"; + results[6][45]="4.943972717149220E-25"; + results[6][46]="2691790295382633"; + results[6][47]="1.797261089573547E-30"; + results[6][48]="22289632225.11453"; + results[6][49]="7.611519039226468E-35"; + results[6][50]="751192.8010897827"; + results[6][51]="1.894571918364917E-40"; + results[6][52]="13.46049560925206"; + results[6][53]="3.946403445450303E-45"; + results[6][54]="0.00005489342032839216"; + results[6][55]="1.998733821046708E-29"; + results[6][56]="2.307230089645316E+19"; + results[6][57]="2.004753620364024E-34"; + results[6][58]="184413931005301.8"; + results[6][59]="3.933634120896147E-39"; + results[6][60]="9525266000.626017"; + results[6][61]="1.818397779202506E-44"; + results[6][62]="68100.11491666482"; + results[6][63]="1.546614755106283E-49"; + results[6][64]="0.7115725916931837"; + results[6][65]="1.678025157975551E-33"; + results[6][66]="1.495977592452194E+23"; + results[6][67]="5.416686782253186E-38"; + results[6][68]="3.191451493718201E+18"; + results[6][69]="2.405835887289389E-43"; + results[6][70]="23432555792739.37"; + results[6][71]="1.470276429990037E-48"; + results[6][72]="571130165.8104760"; + results[6][73]="2.786013989610011E-53"; + results[6][74]="1595.100155404736"; + results[7][0]="8323411032.456378"; + results[7][1]="18302.19115320239"; + results[7][2]="0.4106420642242513"; + results[7][3]="0.000004788534360528390"; + results[7][4]="3.342244825091065E-11"; + results[7][5]="104275.9649224148"; + results[7][6]="64802737685647.92"; + results[7][7]="1"; + results[7][8]="95531442.66270503"; + results[7][9]="0.000009321428998035992"; + results[7][10]="3401.914291900572"; + results[7][11]="1.129584707779182E-10"; + results[7][12]="0.01516724885301000"; + results[7][13]="1.421208568140421E-15"; + results[7][14]="1.142756700777198E-7"; + results[7][15]="12.27602131180330"; + results[7][16]="1.410270050396740E+17"; + results[7][17]="0.0001452906316467887"; + results[7][18]="1106797349549.367"; + results[7][19]="9.364654363655727E-10"; + results[7][20]="37454892.83737830"; + results[7][21]="1.746043504699232E-14"; + results[7][22]="215.1782848775914"; + results[7][23]="1.913677596875906E-19"; + results[7][24]="0.001139773198646432"; + results[7][25]="0.001140988851392383"; + results[7][26]="3.056107864896266E+21"; + results[7][27]="1.330140669811724E-8"; + results[7][28]="4.713204612344845E+16"; + results[7][29]="2.270571800922490E-13"; + results[7][30]="106222524759.1882"; + results[7][31]="2.770407248989495E-18"; + results[7][32]="2159559.693390987"; + results[7][33]="1.192067872721828E-23"; + results[7][34]="57.13238223502557"; + results[7][35]="1.402471619011349E-7"; + results[7][36]="2.955261112252432E+25"; + results[7][37]="1.186601570773187E-12"; + results[7][38]="1.446324004865796E+20"; + results[7][39]="1.264677951660229E-17"; + results[7][40]="2622312814817888"; + results[7][41]="2.024727833856987E-22"; + results[7][42]="9470149600.764056"; + results[7][43]="3.652539489129880E-27"; + results[7][44]="248773.2983599527"; + results[7][45]="3.203829671144209E-11"; + results[7][46]="1.744353804164535E+29"; + results[7][47]="1.164674389402563E-16"; + results[7][48]="1.444429190193662E+24"; + results[7][49]="4.932472716883077E-21"; + results[7][50]="4.867935004036829E+19"; + results[7][51]="1.227734470523965E-26"; + results[7][52]="872276966085176.7"; + results[7][53]="2.557377472772532E-31"; + results[7][54]="3557243918.208811"; + results[7][55]="1.295234235087226E-15"; + results[7][56]="1.495148262797194E+33"; + results[7][57]="1.299135229848029E-20"; + results[7][58]="1.195052759651575E+28"; + results[7][59]="2.549102600877473E-25"; + results[7][60]="6.172633140245884E+23"; + results[7][61]="1.178371542938247E-30"; + results[7][62]="4.413073883307109E+18"; + results[7][63]="1.002248702759050E-35"; + results[7][64]="46111852003790.03"; + results[7][65]="1.087406241422075E-19"; + results[7][66]="9.694344350728666E+36"; + results[7][67]="3.510161326756695E-24"; + results[7][68]="2.068147939838898E+32"; + results[7][69]="1.559047519187323E-29"; + results[7][70]="1.518493766341199E+27"; + results[7][71]="9.527793781803528E-35"; + results[7][72]="3.701079831937688E+22"; + results[7][73]="1.805413337572430E-39"; + results[7][74]="1.033668569530294E+17"; + results[8][0]="87.12745040231444"; + results[8][1]="0.0001915829034197918"; + results[8][2]="4.298501653263149E-9"; + results[8][3]="5.012521769858929E-14"; + results[8][4]="3.498580919469208E-19"; + results[8][5]="0.001091535540718088"; + results[8][6]="678339.3601041740"; + results[8][7]="1.046775775731475E-8"; + results[8][8]="1"; + results[8][9]="9.757446070344992E-14"; + results[8][10]="0.00003561041471876213"; + results[8][11]="1.182421908739965E-18"; + results[8][12]="1.587670868382187E-10"; + results[8][13]="1.487686701391408E-23"; + results[8][14]="1.196210031928393E-15"; + results[8][15]="1.285024173155902E-7"; + results[8][16]="1476236525.994914"; + results[8][17]="1.520867136485833E-12"; + results[8][18]="11585.68654152080"; + results[8][19]="9.802693335972867E-18"; + results[8][20]="0.3920687450478594"; + results[8][21]="1.827716044092442E-22"; + results[8][22]="0.000002252434160733091"; + results[8][23]="2.003191350969721E-27"; + results[8][24]="1.193086974171064E-11"; + results[8][25]="1.194359490017227E-11"; + results[8][26]="31990596809958.51"; + results[8][27]="1.392359031474151E-16"; + results[8][28]="493366841.4268441"; + results[8][29]="2.376779558264652E-21"; + results[8][30]="1111.911657549550"; + results[8][31]="2.899995197153080E-26"; + results[8][32]="0.02260574773287777"; + results[8][33]="1.247827772192961E-31"; + results[8][34]="5.980479373345604E-7"; + results[8][35]="1.468073316931983E-15"; + results[8][36]="3.093495743267101E+17"; + results[8][37]="1.242105779730290E-20"; + results[8][38]="1513976932152.447"; + results[8][39]="1.323834243899629E-25"; + results[8][40]="27449735.30941583"; + results[8][41]="2.119436048930757E-30"; + results[8][42]="99.13123194632914"; + results[8][43]="3.823389857123776E-35"; + results[8][44]="0.002604098623720172"; + results[8][45]="3.353691289323497E-19"; + results[8][46]="1.825947306504481E+21"; + results[8][47]="1.219152937441450E-24"; + results[8][48]="1.511993486054156E+16"; + results[8][49]="5.163192954489619E-29"; + results[8][50]="509563644006.1053"; + results[8][51]="1.285162702774995E-34"; + results[8][52]="9130783.978265085"; + results[8][53]="2.677000787899666E-39"; + results[8][54]="37.23636761949100"; + results[8][55]="1.355819821187394E-23"; + results[8][56]="1.565084982623100E+25"; + results[8][57]="1.359903288004258E-28"; + results[8][58]="1.250952279524317E+20"; + results[8][59]="2.668338852452637E-33"; + results[8][60]="6461362843686697"; + results[8][61]="1.233490785959079E-38"; + results[8][62]="46194988375.59113"; + results[8][63]="1.049129663306469E-43"; + results[8][64]="482687.6965168229"; + results[8][65]="1.138270511899841E-27"; + results[8][66]="1.014780482794204E+29"; + results[8][67]="3.674351845758363E-32"; + results[8][68]="2.164887164052315E+24"; + results[8][69]="1.631973176299542E-37"; + results[8][70]="1.589522490205218E+19"; + results[8][71]="9.973463726956913E-43"; + results[8][72]="387420071212069.1"; + results[8][73]="1.889862946953332E-47"; + results[8][74]="1082019218.719317"; + results[9][0]="892932943458573.4"; + results[9][1]="1963453367.188511"; + results[9][2]="44053.55276650961"; + results[9][3]="0.5137124749367641"; + results[9][4]="0.000003585549839831714"; + results[9][5]="11186693042.92137"; + results[9][6]="6.952017517839994E+18"; + results[9][7]="107279.6885767942"; + results[9][8]="10248583418146.87"; + results[9][9]="1"; + results[9][10]="364956305.8000387"; + results[9][11]="0.00001211814956716597"; + results[9][12]="1627.137733517652"; + results[9][13]="1.524668125927760E-10"; + results[9][14]="0.01225945829784226"; + results[9][15]="1316967.743292346"; + results[9][16]="1.512933318157422E+22"; + results[9][17]="15.58673371619321"; + results[9][18]="1.187368749772774E+17"; + results[9][19]="0.0001004637203762303"; + results[9][20]="4018149239271.144"; + results[9][21]="1.873150034256679E-9"; + results[9][22]="23084259.39015671"; + results[9][23]="2.052987366292351E-14"; + results[9][24]="122.2745137989658"; + results[9][25]="122.4049286469690"; + results[9][26]="3.278583000031628E+26"; + results[9][27]="0.001426970768207302"; + results[9][28]="5.056311230110650E+21"; + results[9][29]="2.435862356942155E-8"; + results[9][30]="1.139551937600652E+16"; + results[9][31]="2.972084269024861E-13"; + results[9][32]="231676891369.9822"; + results[9][33]="1.278846701479992E-18"; + results[9][34]="6129144.173823912"; + results[9][35]="0.01504567185253299"; + results[9][36]="3.170394917855513E+30"; + results[9][37]="1.272982469772824E-7"; + results[9][38]="1.551611888231443E+25"; + results[9][39]="1.356742568040473E-12"; + results[9][40]="2.813209021245996E+20"; + results[9][41]="2.172121714689447E-17"; + results[9][42]="1015954699945620"; + results[9][43]="3.918432989082965E-22"; + results[9][44]="26688321974.27763"; + results[9][45]="0.000003437058493734438"; + results[9][46]="1.871337328785176E+34"; + results[9][47]="1.249459057884749E-11"; + results[9][48]="1.549579136952070E+29"; + results[9][49]="5.291541369807505E-16"; + results[9][50]="5.222305512451464E+24"; + results[9][51]="1.317109716528063E-21"; + results[9][52]="9.357760127432864E+19"; + results[9][53]="2.743546588523462E-26"; + results[9][54]="381620019737136.4"; + results[9][55]="1.389523253741598E-10"; + results[9][56]="1.603990400090178E+38"; + results[9][57]="1.393708228772385E-15"; + results[9][58]="1.282048878882594E+33"; + results[9][59]="2.734669331724314E-20"; + results[9][60]="6.621981609843777E+28"; + results[9][61]="1.264153321541716E-25"; + results[9][62]="4.734331918675705E+23"; + results[9][63]="1.075209287084869E-30"; + results[9][64]="4.946865122665819E+18"; + results[9][65]="1.166566029362225E-14"; + results[9][66]="1.040006242902376E+42"; + results[9][67]="3.765690139887650E-19"; + results[9][68]="2.218702669166555E+37"; + results[9][69]="1.672541323348396E-24"; + results[9][70]="1.629035383588871E+32"; + results[9][71]="1.022138749735799E-29"; + results[9][72]="3.970506917681290E+27"; + results[9][73]="1.936841806071609E-34"; + results[9][74]="1.108916422308302E+22"; + results[10][0]="2446684.518852554"; + results[10][1]="5.379968330412397"; + results[10][2]="0.0001207091152184304"; + results[10][3]="1.407599942164664E-9"; + results[10][4]="9.824600322966481E-15"; + results[10][5]="30.65214346248511"; + results[10][6]="19048903683.41529"; + results[10][7]="0.0002939521440563168"; + results[10][8]="28081.67239549524"; + results[10][9]="2.740054039641405E-9"; + results[10][10]="1"; + results[10][11]="3.320438467449187E-14"; + results[10][12]="0.000004458445319778002"; + results[10][13]="4.177673057560849E-19"; + results[10][14]="3.359157823281803E-11"; + results[10][15]="0.003608562785085618"; + results[10][16]="41455190501253.18"; + results[10][17]="4.270849268387010E-8"; + results[10][18]="325345453.9358852"; + results[10][19]="2.752760228542944E-13"; + results[10][20]="11009.94605494694"; + results[10][21]="5.132532318219450E-18"; + results[10][22]="0.06325211819412893"; + results[10][23]="5.625296326342124E-23"; + results[10][24]="3.350387754800450E-7"; + results[10][25]="3.353961192111453E-7"; + results[10][26]="8.983494593536299E+17"; + results[10][27]="3.909977017876616E-12"; + results[10][28]="13854566011748.89"; + results[10][29]="6.674394491149785E-17"; + results[10][30]="31224338.90003856"; + results[10][31]="8.143671507496243E-22"; + results[10][32]="634.8072020898827"; + results[10][33]="3.504109070472339E-27"; + results[10][34]="0.01679418625303079"; + results[10][35]="4.122595393865199E-11"; + results[10][36]="8.687053401928578E+21"; + results[10][37]="3.488040758693718E-16"; + results[10][38]="4.251500422304194E+16"; + results[10][39]="3.717547954312753E-21"; + results[10][40]="770834474302.0734"; + results[10][41]="5.951730878927634E-26"; + results[10][42]="2783770.779678667"; + results[10][43]="1.073671814080092E-30"; + results[10][44]="73.12744443686990"; + results[10][45]="9.417726010240848E-15"; + results[10][46]="5.127565407269577E+25"; + results[10][47]="3.423585338923651E-20"; + results[10][48]="4.245930573949562E+20"; + results[10][49]="1.449910930627067E-24"; + results[10][50]="1.430939931563421E+16"; + results[10][51]="3.608951799423663E-30"; + results[10][52]="256407684391.6768"; + results[10][53]="7.517465912828107E-35"; + results[10][54]="1045659.476688773"; + results[10][55]="3.807368804590335E-19"; + results[10][56]="4.395020375313125E+29"; + results[10][57]="3.818835862329240E-24"; + results[10][58]="3.512883209599986E+24"; + results[10][59]="7.493141749474667E-29"; + results[10][60]="1.814458746048353E+20"; + results[10][61]="3.463848415416480E-34"; + results[10][62]="1297232529877061"; + results[10][63]="2.946131550536850E-39"; + results[10][64]="13554677762.92165"; + results[10][65]="3.196453961262399E-23"; + results[10][66]="2.849673307116934E+33"; + results[10][67]="1.031819447983696E-27"; + results[10][68]="6.079365211412986E+28"; + results[10][69]="4.582853609507953E-33"; + results[10][70]="4.463644983521472E+23"; + results[10][71]="2.800715410287590E-38"; + results[10][72]="1.087940351921676E+19"; + results[10][73]="5.307051214872866E-43"; + results[10][74]="30384909225705.58"; + results[11][0]="7.368558528753992E+19"; + results[11][1]="162025840356721.7"; + results[11][2]="3635336609.961668"; + results[11][3]="42391.98997251724"; + results[11][4]="0.2958826196985332"; + results[11][5]="923135416089567.4"; + results[11][6]="5.736863932325467E+23"; + results[11][7]="8852811065.104166"; + results[11][8]="8.457218126697593E+17"; + results[11][9]="82520.84977639587"; + results[11][10]="30116504485873.39"; + results[11][11]="1"; + results[11][12]="134272788.4731154"; + results[11][13]="0.00001258169093785437"; + results[11][14]="1011.660916536231"; + results[11][15]="108677297304.5868"; + results[11][16]="1.248485430693727E+27"; + results[11][17]="1286230.511498665"; + results[11][18]="9.798267822918602E+21"; + results[11][19]="8.290351577144743"; + results[11][20]="3.315810897530334E+17"; + results[11][21]="0.0001545739325855462"; + results[11][22]="1904932701334.478"; + results[11][23]="1.694142620466497E-9"; + results[11][24]="10090196.78468630"; + results[11][25]="10100958.72876698"; + results[11][26]="2.705514552250553E+31"; + results[11][27]="117.7548403985430"; + results[11][28]="4.172510994426643E+26"; + results[11][29]="0.002010094316332011"; + results[11][30]="9.403679425514422E+20"; + results[11][31]="2.452589194869899E-8"; + results[11][32]="1.911817394940469E+16"; + results[11][33]="1.055315165398698E-13"; + results[11][34]="505782185625.9951"; + results[11][35]="1241.581626727822"; + results[11][36]="2.616236827482037E+35"; + results[11][37]="0.01050475951561086"; + results[11][38]="1.280403315400169E+30"; + results[11][39]="1.119595496425095E-7"; + results[11][40]="2.321483990318425E+25"; + results[11][41]="1.792453297139352E-12"; + results[11][42]="8.383744517383584E+19"; + results[11][43]="3.233524200509892E-17"; + results[11][44]="2202343008423450"; + results[11][45]="0.2836289876341450"; + results[11][46]="1.544243465896434E+39"; + results[11][47]="0.000001031064232174645"; + results[11][48]="1.278725871770590E+34"; + results[11][49]="4.366624904634691E-11"; + results[11][50]="4.309490886794513E+29"; + results[11][51]="1.086890130566436E-16"; + results[11][52]="7.722103177194344E+24"; + results[11][53]="2.263997958860880E-21"; + results[11][54]="3.149160832039346E+19"; + results[11][55]="0.00001146646396828192"; + results[11][56]="1.323626508486227E+43"; + results[11][57]="1.150099873786527E-10"; + results[11][58]="1.057957629402673E+38"; + results[11][59]="2.256672371113390E-15"; + results[11][60]="5.464515496479744E+33"; + results[11][61]="1.043190063412758E-20"; + results[11][62]="3.906810930526339E+28"; + results[11][63]="8.872718405771617E-26"; + results[11][64]="4.082195136515981E+23"; + results[11][65]="9.626602006324680E-10"; + results[11][66]="8.582219893706080E+46"; + results[11][67]="3.107479503381239E-14"; + results[11][68]="1.830892296607818E+42"; + results[11][69]="1.380195312888473E-19"; + results[11][70]="1.344293841695707E+37"; + results[11][71]="8.434775821758094E-25"; + results[11][72]="3.276496048901183E+32"; + results[11][73]="1.598298317194785E-29"; + results[11][74]="9.150872549988179E+26"; + results[12][0]="548775266570.8102"; + results[12][1]="1206691.558276256"; + results[12][2]="27.07426166761666"; + results[12][3]="0.0003157154212300068"; + results[12][4]="2.203593319712548E-9"; + results[12][5]="6875074.440525237"; + results[12][6]="4272543973773303"; + results[12][7]="65.93153509191260"; + results[12][8]="6298534664.297173"; + results[12][9]="0.0006145761230907817"; + results[12][10]="224293.4315161216"; + results[12][11]="7.447525380023099E-9"; + results[12][12]="1"; + results[12][13]="9.370246258327704E-14"; + results[12][14]="0.000007534370351881011"; + results[12][15]="809.3769299082260"; + results[12][16]="9.298126931680603E+18"; + results[12][17]="0.009579234378946397"; + results[12][18]="72972848291449.96"; + results[12][19]="6.174260378010000E-8"; + results[12][20]="2469458581.471433"; + results[12][21]="1.151193286020835E-12"; + results[12][22]="14187.03464042448"; + results[12][23]="1.261717016330308E-17"; + results[12][24]="0.07514699664337871"; + results[12][25]="0.07522714649505796"; + results[12][26]="2.014938829390782E+23"; + results[12][27]="8.769821624887181E-7"; + results[12][28]="3.107488152941784E+18"; + results[12][29]="1.497022843712283E-11"; + results[12][30]="7003414118711.969"; + results[12][31]="1.826572027556399E-16"; + results[12][32]="142383085.7078879"; + results[12][33]="7.859486478230080E-22"; + results[12][34]="3766.825664213152"; + results[12][35]="0.000009246710676425823"; + results[12][36]="1.948449017282359E+27"; + results[12][37]="7.823446310355102E-11"; + results[12][38]="9.535836188108477E+21"; + results[12][39]="8.338215874985453E-16"; + results[12][40]="1.728931093721377E+17"; + results[12][41]="1.334934142295141E-20"; + results[12][42]="624381500728.4375"; + results[12][43]="2.408175355021632E-25"; + results[12][44]="16402005.45075007"; + results[12][45]="2.112334083915552E-9"; + results[12][46]="1.150079240519853E+31"; + results[12][47]="7.678877037554697E-15"; + results[12][48]="9.523343384103629E+25"; + results[12][49]="3.252054980230781E-19"; + results[12][50]="3.209504275438039E+21"; + results[12][51]="8.094641832690152E-25"; + results[12][52]="5.751055939931189E+16"; + results[12][53]="1.686118225893689E-29"; + results[12][54]="234534552223.8769"; + results[12][55]="8.539678142289999E-14"; + results[12][56]="9.857742015622534E+34"; + results[12][57]="8.565397999586525E-19"; + results[12][58]="7.879166295965479E+29"; + results[12][59]="1.680662475826388E-23"; + results[12][60]="4.069711784956242E+25"; + results[12][61]="7.769184473454425E-29"; + results[12][62]="2.909607356004657E+20"; + results[12][63]="6.607979551678220E-34"; + results[12][64]="3040225188540963"; + results[12][65]="7.169436276548434E-18"; + results[12][66]="6.391630047531518E+38"; + results[12][67]="2.314303246933335E-22"; + results[12][68]="1.363561684707550E+34"; + results[12][69]="1.027903962212583E-27"; + results[12][70]="1.001166250423753E+29"; + results[12][71]="6.281820700734860E-33"; + results[12][72]="2.440178748173697E+24"; + results[12][73]="1.190336728215637E-37"; + results[12][74]="6.815135556539365E+18"; + results[13][0]="5.856572510920854E+24"; + results[13][1]="1.287790656733084E+19"; + results[13][2]="288938635348614.2"; + results[13][3]="3369339636.612199"; + results[13][4]="23516.92003563011"; + results[13][5]="7.337133145689837E+19"; + results[13][6]="4.559692302618115E+28"; + results[13][7]="703626492562206.3"; + results[13][8]="6.721845393016666E+22"; + results[13][9]="6558804391.555706"; + results[13][10]="2.393677021207241E+18"; + results[13][11]="79480.57259865707"; + results[13][12]="10672078112261.57"; + results[13][13]="1"; + results[13][14]="80407388.92198187"; + results[13][15]="8637733818243049"; + results[13][16]="9.923033691261843E+31"; + results[13][17]="102230337547.7774"; + results[13][18]="7.787719370405676E+26"; + results[13][19]="658921.8903956439"; + results[13][20]="2.635425487645780E+22"; + results[13][21]="12.28562467072543"; + results[13][22]="1.514051418639709E+17"; + results[13][23]="0.0001346514255384665"; + results[13][24]="801974618079.9959"; + results[13][25]="802829983557.8030"; + results[13][26]="2.150358457868733E+36"; + results[13][27]="9359222.141139671"; + results[13][28]="3.316335630112216E+31"; + results[13][29]="159.7634472393744"; + results[13][30]="7.474098252740968E+25"; + results[13][31]="0.001949331935575389"; + results[13][32]="1.519523412539414E+21"; + results[13][33]="8.387705361793504E-9"; + results[13][34]="4.019985772375435E+16"; + results[13][35]="98681618.62029944"; + results[13][36]="2.079400011019663E+40"; + results[13][37]="834.9243013119425"; + results[13][38]="1.017671886652243E+35"; + results[13][39]="0.008898609113474424"; + results[13][40]="1.845128768291237E+30"; + results[13][41]="1.424652144129865E-7"; + results[13][42]="6.663448147624991E+24"; + results[13][43]="2.570023549681410E-12"; + results[13][44]="1.750434833681448E+20"; + results[13][45]="22542.99434273927"; + results[13][46]="1.227373549011834E+44"; + results[13][47]="0.08194957555923548"; + results[13][48]="1.016338644850434E+39"; + results[13][49]="0.000003470618477439216"; + results[13][50]="3.425208032911223E+34"; + results[13][51]="8.638664992924948E-12"; + results[13][52]="6.137571821893155E+29"; + results[13][53]="1.799438541324536E-16"; + results[13][54]="2.502971061357505E+24"; + results[13][55]="0.9113611218809168"; + results[13][56]="1.052025928012465E+48"; + results[13][57]="0.000009141059651419642"; + results[13][58]="8.408707817004228E+42"; + results[13][59]="1.793616122236614E-10"; + results[13][60]="4.343228206344449E+38"; + results[13][61]="8.291334356927543E-16"; + results[13][62]="3.105155697929257E+33"; + results[13][63]="7.052087393973718E-21"; + results[13][64]="3.244552069097433E+28"; + results[13][65]="0.00007651278396420666"; + results[13][66]="6.821197513193451E+51"; + results[13][67]="2.469842502673314E-9"; + results[13][68]="1.455203681008597E+47"; + results[13][69]="1.096987137663585E-14"; + results[13][70]="1.068452442788232E+42"; + results[13][71]="6.704008120546416E-20"; + results[13][72]="2.604177820839036E+37"; + results[13][73]="1.270336654341115E-24"; + results[13][74]="7.273165900503936E+31"; + results[14][0]="7.283624788019671E+16"; + results[14][1]="160158248389.6609"; + results[14][2]="3593433.877438394"; + results[14][3]="41.90335840753915"; + results[14][4]="0.0002924721266406031"; + results[14][5]="912494889345.1759"; + results[14][6]="5.670737930617694E+20"; + results[14][7]="8750769.077266332"; + results[14][8]="835973594359440.8"; + results[14][9]="81.56967263194704"; + results[14][10]="29769366389.07392"; + results[14][11]="0.0009884734930986993"; + results[14][12]="132725.0922501232"; + results[14][13]="1.243666799042916E-8"; + results[14][14]="1"; + results[14][15]="107424627.6871908"; + results[14][16]="1.234094754760663E+24"; + results[14][17]="1271.404766631212"; + results[14][18]="9.685328021236938E+18"; + results[14][19]="0.008194792782476575"; + results[14][20]="327759118033654.3"; + results[14][21]="1.527922350848377E-7"; + results[14][22]="1882975481.406032"; + results[14][23]="1.674615073859902E-12"; + results[14][24]="9973.892061812134"; + results[14][25]="9984.529958270096"; + results[14][26]="2.674329420092467E+28"; + results[14][27]="0.1163975384180276"; + results[14][28]="4.124416517653632E+23"; + results[14][29]="0.000001986924950322545"; + results[14][30]="9.295287849718610E+17"; + results[14][31]="2.424319408589176E-11"; + results[14][32]="18897808185436.61"; + results[14][33]="1.043151067861683E-16"; + results[14][34]="499952283.7728221"; + results[14][35]="1.227270527538816"; + results[14][36]="2.586080755634628E+32"; + results[14][37]="0.00001038367633255766"; + results[14][38]="1.265644737748760E+27"; + results[14][39]="1.106690471208886E-10"; + results[14][40]="2.294725389082761E+22"; + results[14][41]="1.771792571839617E-15"; + results[14][42]="8.287109228345220E+16"; + results[14][43]="3.196252961497192E-20"; + results[14][44]="2176957686537.825"; + results[14][45]="0.0002803597361507711"; + results[14][46]="1.526443732929490E+36"; + results[14][47]="1.019179663186800E-9"; + results[14][48]="1.263986629184754E+31"; + results[14][49]="4.316292972536028E-14"; + results[14][50]="4.259817510346784E+26"; + results[14][51]="1.074362083975506E-19"; + results[14][52]="7.633094301629857E+21"; + results[14][53]="2.237901970763539E-24"; + results[14][54]="3.112862007975538E+16"; + results[14][55]="1.133429569221800E-8"; + results[14][56]="1.308369718401416E+40"; + results[14][57]="1.136843239654142E-13"; + results[14][58]="1.045763073486079E+35"; + results[14][59]="2.230660821453777E-18"; + results[14][60]="5.401528720897306E+30"; + results[14][61]="1.031165725947463E-23"; + results[14][62]="3.861779047373550E+25"; + results[14][63]="8.770446955834192E-29"; + results[14][64]="4.035141686102474E+20"; + results[14][65]="9.515640911862703E-13"; + results[14][66]="8.483296876872797E+43"; + results[14][67]="3.071661119439865E-17"; + results[14][68]="1.809788503915430E+39"; + results[14][69]="1.364286482089321E-22"; + results[14][70]="1.328798829452025E+34"; + results[14][71]="8.337552320037675E-28"; + results[14][72]="3.238729494581439E+29"; + results[14][73]="1.579875520611302E-32"; + results[14][74]="9.045394954387817E+23"; + results[15][0]="678021878.6728144"; + results[15][1]="1490.889490034119"; + results[15][2]="0.03345074546501661"; + results[15][3]="3.900721772064906E-7"; + results[15][4]="2.722579849122226E-12"; + results[15][5]="8494.280212934647"; + results[15][6]="5278806222284.789"; + results[15][7]="0.08145961746078984"; + results[15][8]="7781954.774781330"; + results[15][9]="7.593200403679254E-7"; + results[15][10]="277.1186368526144"; + results[15][11]="9.201553818525026E-12"; + results[15][12]="0.001235518289498798"; + results[15][13]="1.157711062927156E-16"; + results[15][14]="9.308852369606484E-9"; + results[15][15]="1"; + results[15][16]="1.148800588217273E+16"; + results[15][17]="0.00001183531927458393"; + results[15][18]="90159288700.90755"; + results[15][19]="7.628411621159118E-11"; + results[15][20]="3051061.242567714"; + results[15][21]="1.422320359626963E-15"; + results[15][22]="17.52834077199745"; + results[15][23]="1.558874449847949E-20"; + results[15][24]="0.00009284548875379919"; + results[15][25]="0.00009294451536144952"; + results[15][26]="2.489493775933610E+20"; + results[15][27]="1.083527501319018E-9"; + results[15][28]="3839358447360413"; + results[15][29]="1.849599103204027E-14"; + results[15][30]="8652846232.602745"; + results[15][31]="2.256763147132834E-19"; + results[15][32]="175916.9065073704"; + results[15][33]="9.710539289921761E-25"; + results[15][34]="4.653982001488808"; + results[15][35]="1.142448015842791E-8"; + results[15][36]="2.407344397008314E+24"; + results[15][37]="9.666011003355619E-14"; + results[15][38]="1.178170001607253E+19"; + results[15][39]="1.030201821533375E-18"; + results[15][40]="213612598757592.2"; + results[15][41]="1.649335548082038E-23"; + results[15][42]="771434763.7746916"; + results[15][43]="2.975344695449488E-28"; + results[15][44]="20264.97771886068"; + results[15][45]="2.609827394209354E-12"; + results[15][46]="1.420943936035166E+28"; + results[15][47]="9.487393022711177E-18"; + results[15][48]="1.176626492823741E+23"; + results[15][49]="4.017973406530782E-22"; + results[15][50]="3.965401232528285E+18"; + results[15][51]="1.000107803123075E-27"; + results[15][52]="71055347977156.85"; + results[15][53]="2.083229906348919E-32"; + results[15][54]="289771728.7920109"; + results[15][55]="1.055092853123241E-16"; + results[15][56]="1.217942055346239E+32"; + results[15][57]="1.058270588532557E-21"; + results[15][58]="9.734854064667849E+26"; + results[15][59]="2.076489227357834E-26"; + results[15][60]="5.028203343302236E+22"; + results[15][61]="9.598969511443032E-32"; + results[15][62]="3.594873103603994E+17"; + results[15][63]="8.164279592732510E-37"; + results[15][64]="3756253824637.292"; + results[15][65]="8.857969645071753E-21"; + results[15][66]="7.896975823435262E+35"; + results[15][67]="2.859363989032589E-25"; + results[15][68]="1.684705400315972E+31"; + results[15][69]="1.269994145161927E-30"; + results[15][70]="1.236959213227480E+26"; + results[15][71]="7.761304367110075E-36"; + results[15][72]="3.014885473014884E+21"; + results[15][73]="1.470682798372580E-40"; + results[15][74]="8420224625517956"; + results[16][0]="5.901998011029744E-8"; + results[16][1]="1.297779184068582E-13"; + results[16][2]="2.911797383123386E-18"; + results[16][3]="3.395473341564099E-23"; + results[16][4]="2.369932499205253E-28"; + results[16][5]="7.394042360403217E-13"; + results[16][6]="0.0004595058773843880"; + results[16][7]="7.090840507594115E-18"; + results[16][8]="6.773982233816134E-10"; + results[16][9]="6.609676632793603E-23"; + results[16][10]="2.412243166437193E-14"; + results[16][11]="8.009705002679486E-28"; + results[16][12]="1.075485425556837E-19"; + results[16][13]="1.007756328470993E-32"; + results[16][14]="8.103105504195564E-25"; + results[16][15]="8.704730918982346E-17"; + results[16][16]="1"; + results[16][17]="1.030232696254985E-21"; + results[16][18]="0.000007848123479882456"; + results[16][19]="6.640327050142802E-27"; + results[16][20]="2.655866713388787E-10"; + results[16][21]="1.238091601114291E-31"; + results[16][22]="1.525794898764651E-15"; + results[16][23]="1.356958262240303E-36"; + results[16][24]="8.081949966432234E-21"; + results[16][25]="8.090569966166392E-21"; + results[16][26]="21670.37344398340"; + results[16][27]="9.431815342299341E-26"; + results[16][28]="0.3342058218579424"; + results[16][29]="1.610026250138211E-30"; + results[16][30]="7.532069813813702E-7"; + results[16][31]="1.964451594366708E-35"; + results[16][32]="1.531309335246434E-11"; + results[16][33]="8.452763159697483E-41"; + results[16][34]="4.051166102474697E-16"; + results[16][35]="9.944702566836774E-25"; + results[16][36]="209552852.0527718"; + results[16][37]="8.414002484413322E-30"; + results[16][38]="1025.565284080813"; + results[16][39]="8.967629648693503E-35"; + results[16][40]="0.01859440193089382"; + results[16][41]="1.435702214116641E-39"; + results[16][42]="6.715132040207400E-8"; + results[16][43]="2.589957496510927E-44"; + results[16][44]="1.764011781218549E-12"; + results[16][45]="2.271784521158129E-28"; + results[16][46]="1236893461414.578"; + results[16][47]="8.258520338533136E-34"; + results[16][48]="10242217.01217658"; + results[16][49]="3.497537734347732E-38"; + results[16][50]="345.1775071495967"; + results[16][51]="8.705669316160942E-44"; + results[16][52]="0.006185176844958069"; + results[16][53]="1.813395577714413E-48"; + results[16][54]="2.522384927062784E-8"; + results[16][55]="9.184299380979178E-33"; + results[16][56]="1.060185786670131E+16"; + results[16][57]="9.211960712648993E-38"; + results[16][58]="84739285168.49519"; + results[16][59]="1.807527998031550E-42"; + results[16][60]="4376915.710937338"; + results[16][61]="8.355644669662702E-48"; + results[16][62]="31.29240305475972"; + results[16][63]="7.106785700207527E-53"; + results[16][64]="0.0003269717880686592"; + results[16][65]="7.710624224886317E-37"; + results[16][66]="6.874104961671300E+19"; + results[16][67]="2.488999412395668E-41"; + results[16][68]="1466490718750697"; + results[16][69]="1.105495730231758E-46"; + results[16][70]="10767397108.90133"; + results[16][71]="6.756006609601578E-52"; + results[16][72]="262437.6679414338"; + results[16][73]="1.280189802700927E-56"; + results[16][74]="0.7329578964252270"; + results[17][0]="57288009131181.63"; + results[17][1]="125969520.1662847"; + results[17][2]="2826.349225478968"; + results[17][3]="0.03295831469829135"; + results[17][4]="2.300385638914618E-7"; + results[17][5]="717706047.1174538"; + results[17][6]="4.460214464700500E+17"; + results[17][7]="6882.756229121966"; + results[17][8]="657519632063.7410"; + results[17][9]="0.06415712350055034"; + results[17][10]="23414546.78351770"; + results[17][11]="7.774656183788081E-7"; + results[17][12]="104.3924765216976"; + results[17][13]="9.781832125249994E-12"; + results[17][14]="0.0007865315800645127"; + results[17][15]="84492.86215264814"; + results[17][16]="9.706544974112313E+20"; + results[17][17]="1"; + results[17][18]="7617816351986589"; + results[17][19]="0.000006445463315502565"; + results[17][20]="257792896987.5612"; + results[17][21]="1.201759180828659E-10"; + results[17][22]="1481019.680613023"; + results[17][23]="1.317137640042879E-15"; + results[17][24]="7.844781082769998"; + results[17][25]="7.853148124279642"; + results[17][26]="2.103444544398340E+25"; + results[17][27]="0.00009155033980755107"; + results[17][28]="3.243983840474286E+20"; + results[17][29]="1.562779220646795E-9"; + results[17][30]="731103743959364.5"; + results[17][31]="1.906803775018709E-14"; + results[17][32]="14863722931.84754"; + results[17][33]="8.204712576512332E-20"; + results[17][34]="393228.2597126994"; + results[17][35]="0.0009652870271917130"; + results[17][36]="2.034034182903733E+29"; + results[17][37]="8.167089352725064E-9"; + results[17][38]="9.954695553818683E+23"; + results[17][39]="8.704470049622648E-14"; + results[17][40]="1.804873986089417E+19"; + results[17][41]="1.393570811075580E-18"; + results[17][42]="65180731155375.70"; + results[17][43]="2.513953892092264E-23"; + results[17][44]="1712245968.926182"; + results[17][45]="2.205117862611359E-7"; + results[17][46]="1.200596201140605E+33"; + results[17][47]="8.016169908559313E-13"; + results[17][48]="9.941654006331020E+27"; + results[17][49]="3.394900731710114E-17"; + results[17][50]="3.350480997199534E+23"; + results[17][51]="8.450197074706576E-23"; + results[17][52]="6.003669721842360E+18"; + results[17][53]="1.760180573094133E-27"; + results[17][54]="24483642736557.92"; + results[17][55]="8.914781499718627E-12"; + results[17][56]="1.029074101922827E+37"; + results[17][57]="8.941631095708316E-17"; + results[17][58]="8.225256825621270E+31"; + results[17][59]="1.754485180486043E-21"; + results[17][60]="4.248472919611204E+27"; + results[17][61]="8.110444077378283E-27"; + results[17][62]="3.037411175990747E+22"; + results[17][63]="6.898233502044262E-32"; + results[17][64]="3.173766366154361E+17"; + results[17][65]="7.484352081733892E-16"; + results[17][66]="6.672380896723107E+40"; + results[17][67]="2.415958473695767E-20"; + results[17][68]="1.423455811567193E+36"; + results[17][69]="1.073054402418369E-25"; + results[17][70]="1.045142242916776E+31"; + results[17][71]="6.557748200149776E-31"; + results[17][72]="2.547363026774680E+26"; + results[17][73]="1.242621989531652E-35"; + results[17][74]="7.114488785782220E+20"; + results[18][0]="0.007520266502124582"; + results[18][1]="1.653617183005917E-8"; + results[18][2]="3.710182938109170E-13"; + results[18][3]="4.326477979440449E-18"; + results[18][4]="3.019744153210938E-23"; + results[18][5]="9.421414404802356E-8"; + results[18][6]="58.54977671570353"; + results[18][7]="9.035077653620603E-13"; + results[18][8]="0.00008631340028199442"; + results[18][9]="8.421983483996608E-18"; + results[18][10]="3.073655979828342E-9"; + results[18][11]="1.020588555112725E-22"; + results[18][12]="1.370372711787334E-14"; + results[18][13]="1.284072977513965E-27"; + results[18][14]="1.032489553071727E-19"; + results[18][15]="1.109148058296442E-11"; + results[18][16]="127418.9941790999"; + results[18][17]="1.312712139272323E-16"; + results[18][18]="1"; + results[18][19]="8.461037937494653E-22"; + results[18][20]="0.00003384078652937511"; + results[18][21]="1.577563865155743E-26"; + results[18][22]="1.944152513241934E-10"; + results[18][23]="1.729022569176787E-31"; + results[18][24]="1.029793935728606E-15"; + results[18][25]="1.030892287424556E-15"; + results[18][26]="2761217187.717842"; + results[18][27]="1.201792424198785E-20"; + results[18][28]="42584.16966993846"; + results[18][29]="2.051479253945588E-25"; + results[18][30]="0.09597287597629022"; + results[18][31]="2.503084462677351E-30"; + results[18][32]="0.000001951178952741667"; + results[18][33]="1.077042579842804E-35"; + results[18][34]="5.161955100297903E-11"; + results[18][35]="1.267143998476655E-19"; + results[18][36]="26701013635925.91"; + results[18][37]="1.072103733584393E-24"; + results[18][38]="130676496.9625801"; + results[18][39]="1.142646350007201E-29"; + results[18][40]="2369.279991396404"; + results[18][41]="1.829357320634491E-34"; + results[18][42]="0.008556353703430740"; + results[18][43]="3.300097791720419E-39"; + results[18][44]="2.247686068829500E-7"; + results[18][45]="2.894684986776169E-23"; + results[18][46]="1.576037207601508E+17"; + results[18][47]="1.052292354943532E-28"; + results[18][48]="1305052989855.606"; + results[18][49]="4.456527402140359E-33"; + results[18][50]="43982170.77425067"; + results[18][51]="1.109267627921080E-38"; + results[18][52]="788.1090124044157"; + results[18][53]="2.310610405611983E-43"; + results[18][54]="0.003213997503388622"; + results[18][55]="1.170254189364097E-27"; + results[18][56]="1.350878065804859E+21"; + results[18][57]="1.173778768423119E-32"; + results[18][58]="1.079739448362558E+16"; + results[18][59]="2.303133994597421E-37"; + results[18][60]="557702197494.3356"; + results[18][61]="1.064667839526379E-42"; + results[18][62]="3987246.522684476"; + results[18][63]="9.055394857668533E-48"; + results[18][64]="41.66241636065038"; + results[18][65]="9.824799832280163E-32"; + results[18][66]="8.758915400977171E+24"; + results[18][67]="3.171458016398266E-36"; + results[18][68]="1.868587723561991E+20"; + results[18][69]="1.408611540154202E-41"; + results[18][70]="1371970909543155"; + results[18][71]="8.608435668627840E-47"; + results[18][72]="33439543683.80610"; + results[18][73]="1.631204970184925E-51"; + results[18][74]="93392.75793813131"; + results[19][0]="8.888113441495055E+18"; + results[19][1]="19543904603925.69"; + results[19][2]="438502104.0583787"; + results[19][3]="5113.412812236528"; + results[19][4]="0.03568999661175253"; + results[19][5]="111350575123317.2"; + results[19][6]="6.919928399829436E+22"; + results[19][7]="1067845070.589050"; + results[19][8]="1.020127801336300E+17"; + results[19][9]="9953.842006398556"; + results[19][10]="3632717407172.463"; + results[19][11]="0.1206221462014772"; + results[19][12]="16196271.92208414"; + results[19][13]="0.000001517630563767670"; + results[19][14]="122.0287109807536"; + results[19][15]="13108888844.25527"; + results[19][16]="1.505949921515530E+26"; + results[19][17]="155147.8848067927"; + results[19][18]="1.181888093857317E+21"; + results[19][19]="1"; + results[19][20]="3.999602268583552E+16"; + results[19][21]="0.00001864503949527103"; + results[19][22]="229777070804.3422"; + results[19][23]="2.043511188520634E-10"; + results[19][24]="1217101.191764106"; + results[19][25]="1218399.320556418"; + results[19][26]="3.263449718717902E+30"; + results[19][27]="14.20384157448466"; + results[19][28]="5.032972311970014E+25"; + results[19][29]="0.0002424618905033581"; + results[19][30]="1.134291994496223E+20"; + results[19][31]="2.958365724357601E-9"; + results[19][32]="2306075173230364"; + results[19][33]="1.272943801693578E-14"; + results[19][34]="61008532740.68144"; + results[19][35]="149.7622405002312"; + results[19][36]="3.155761011022271E+34"; + results[19][37]="0.001267106638103371"; + results[19][38]="1.544449959070552E+29"; + results[19][39]="1.350480116563032E-8"; + results[19][40]="2.800223812845777E+24"; + results[19][41]="2.162095636668628E-13"; + results[19][42]="1.011265256891675E+19"; + results[19][43]="3.900346288599187E-18"; + results[19][44]="265651340347854.4"; + results[19][45]="0.03421193721338280"; + results[19][46]="1.862699611140355E+38"; + results[19][47]="1.243691805564838E-7"; + results[19][48]="1.542426590563234E+33"; + results[19][49]="5.267116676538570E-12"; + results[19][50]="5.198200398008612E+28"; + results[19][51]="1.311030202341272E-17"; + results[19][52]="9.314566584224275E+23"; + results[19][53]="2.730882927935629E-22"; + results[19][54]="3.798585382942154E+18"; + results[19][55]="0.000001383109493196072"; + results[19][56]="1.596586702227764E+42"; + results[19][57]="1.387275151221789E-11"; + results[19][58]="1.276131198487774E+37"; + results[19][59]="2.722046646772734E-16"; + results[19][60]="6.591415871366172E+32"; + results[19][61]="1.258318243449020E-21"; + results[19][62]="4.712479192434771E+27"; + results[19][63]="1.070246336745521E-26"; + results[19][64]="4.924031385797897E+22"; + results[19][65]="1.161181394630329E-10"; + results[19][66]="1.035205782751841E+46"; + results[19][67]="3.748308469749455E-15"; + results[19][68]="2.208461582805865E+41"; + results[19][69]="1.664821208178269E-20"; + results[19][70]="1.621516083107649E+36"; + results[19][71]="1.017420762348790E-25"; + results[19][72]="3.952179854391208E+31"; + results[19][73]="1.927901732902443E-30"; + results[19][74]="1.103797886595758E+26"; + results[20][0]="222.2249324966694"; + results[20][1]="0.0004886462025847162"; + results[20][2]="1.096364274774934E-8"; + results[20][3]="1.278480326006873E-13"; + results[20][4]="8.923386430719285E-19"; + results[20][5]="0.002784041203245736"; + results[20][6]="1730154.134120969"; + results[20][7]="2.669878150077217E-8"; + results[20][8]="2.550573114105107"; + results[20][9]="2.488707960935246E-13"; + results[20][10]="0.00009082696636380747"; + results[20][11]="3.015853529960997E-18"; + results[20][12]="4.049470630943514E-10"; + results[20][13]="3.794453702780639E-23"; + results[20][14]="3.051021146259370E-15"; + results[20][15]="3.277548107026588E-7"; + results[20][16]="3765249193.262553"; + results[20][17]="3.879082828446787E-12"; + results[20][18]="29550.14060125232"; + results[20][19]="2.500248606854969E-17"; + results[20][20]="1"; + results[20][21]="4.661723402280728E-22"; + results[20][22]="0.000005744998011657722"; + results[20][23]="5.109286002191258E-27"; + results[20][24]="3.043055559109729E-11"; + results[20][25]="3.046301203814225E-11"; + results[20][26]="81594356127656.76"; + results[20][27]="3.551313510859396E-16"; + results[20][28]="1258368201.134266"; + results[20][29]="6.062150039464433E-21"; + results[20][30]="2836.011979005927"; + results[20][31]="7.396649780892585E-26"; + results[20][32]="0.05765761239172050"; + results[20][33]="3.182675966789038E-31"; + results[20][34]="0.000001525364989911545"; + results[20][35]="3.744428331701820E-15"; + results[20][36]="7.890187071375662E+17"; + results[20][37]="3.168081606654638E-20"; + results[20][38]="3861508858523.363"; + results[20][39]="3.376536030022057E-25"; + results[20][40]="70012556.86949763"; + results[20][41]="5.405776603467944E-30"; + results[20][42]="252.8414549704244"; + results[20][43]="9.751835374322068E-35"; + results[20][44]="0.006641943936138782"; + results[20][45]="8.553834835557002E-19"; + results[20][46]="4.657212107742966E+21"; + results[20][47]="3.109538704220428E-24"; + results[20][48]="3.856449934231786E+16"; + results[20][49]="1.316910113265814E-28"; + results[20][50]="1299679330327.398"; + results[20][51]="3.277901436948555E-34"; + results[20][52]="23288732.12566459"; + results[20][53]="6.827886236055077E-39"; + results[20][54]="94.97407811720772"; + results[20][55]="3.458117583491362E-23"; + results[20][56]="3.991863677968137E+25"; + results[20][57]="3.468532764166796E-28"; + results[20][58]="3.190645251183220E+20"; + results[20][59]="6.805793336387770E-33"; + results[20][60]="1.648017834958501E+16"; + results[20][61]="3.146108435163604E-38"; + results[20][62]="117823695357.1807"; + results[20][63]="2.675881912439624E-43"; + results[20][64]="1231130.261245134"; + results[20][65]="2.903242164230390E-27"; + results[20][66]="2.588271816133498E+29"; + results[20][67]="9.371703029553756E-32"; + results[20][68]="5.521702995703085E+24"; + results[20][69]="4.162466906410325E-37"; + results[20][70]="4.054193327782826E+19"; + results[20][71]="2.543804843647882E-42"; + results[20][72]="988143217498189.4"; + results[20][73]="4.820233621842614E-47"; + results[20][74]="2759769128.210504"; + results[21][0]="4.767012396916274E+23"; + results[21][1]="1.048209343234839E+18"; + results[21][2]="23518432565916.35"; + results[21][3]="274250575.5235032"; + results[21][4]="1914.181872385126"; + results[21][5]="5.972128680744241E+18"; + results[21][6]="3.711404527506926E+27"; + results[21][7]="57272341571595.42"; + results[21][8]="5.471309415005725E+21"; + results[21][9]="533860065.5108917"; + results[21][10]="1.948355973230217E+17"; + results[21][11]="6469.396121798011"; + results[21][12]="868663857010.9776"; + results[21][13]="0.08139594255901624"; + results[21][14]="6544835.210014115"; + results[21][15]="703076485709783.2"; + results[21][16]="8.076946803451319E+30"; + results[21][17]="8321134682.827734"; + results[21][18]="6.338887585392785E+25"; + results[21][19]="53633.56834152223"; + results[21][20]="2.145129416109833E+21"; + results[21][21]="1"; + results[21][22]="1.232376423029948E+16"; + results[21][23]="0.00001096007969861868"; + results[21][24]="65277479947.02833"; + results[21][25]="65347103226.32689"; + results[21][26]="1.750304535179781E+35"; + results[21][27]="761802.7077972777"; + results[21][28]="2.699362644550329E+30"; + results[21][29]="13.00409637452654"; + results[21][30]="6.083612720605475E+24"; + results[21][31]="0.0001586677102565503"; + results[21][32]="1.236830404041385E+20"; + results[21][33]="6.827251838304966E-10"; + results[21][34]="3272105310163334"; + results[21][35]="8032283.360848641"; + results[21][36]="1.692547238541742E+39"; + results[21][37]="67.95945047071364"; + results[21][38]="8.283436242987168E+33"; + results[21][39]="0.0007243106762555027"; + results[21][40]="1.501859952378219E+29"; + results[21][41]="1.159609040901739E-8"; + results[21][42]="5.423776426690670E+23"; + results[21][43]="2.091894892251871E-13"; + results[21][44]="1.424782931756363E+19"; + results[21][45]="1834.908272629834"; + results[21][46]="9.990322689382312E+42"; + results[21][47]="0.006670362944955292"; + results[21][48]="8.272584195675434E+37"; + results[21][49]="2.824942622339028E-7"; + results[21][50]="2.787980362995230E+33"; + results[21][51]="7.031522795507035E-13"; + results[21][52]="4.995734434666519E+28"; + results[21][53]="1.464669961481319E-17"; + results[21][54]="2.037316887371354E+23"; + results[21][55]="0.07418109752713971"; + results[21][56]="8.563064200709839E+46"; + results[21][57]="7.440451663154942E-7"; + results[21][58]="6.844346984684270E+41"; + results[21][59]="1.459930748584969E-11"; + results[21][60]="3.535211536043119E+37"; + results[21][61]="6.748809750540721E-17"; + results[21][62]="2.527470748254518E+32"; + results[21][63]="5.740113004410473E-22"; + results[21][64]="2.640933738459919E+27"; + results[21][65]="0.000006227830168580984"; + results[21][66]="5.552178009675986E+50"; + results[21][67]="2.010351584774140E-10"; + results[21][68]="1.184476752310447E+46"; + results[21][69]="8.929030204524482E-16"; + results[21][70]="8.696769366023154E+40"; + results[21][71]="5.456790598951745E-21"; + results[21][72]="2.119695083184782E+36"; + results[21][73]="1.034002493473623E-25"; + results[21][74]="5.920061938596140E+30"; + results[22][0]="38681463.77870482"; + results[22][1]="85.05593937424482"; + results[22][2]="0.001908380599175486"; + results[22][3]="2.225379927743381E-8"; + results[22][4]="1.553244476779973E-13"; + results[22][5]="484.6026400002877"; + results[22][6]="301158352119.5565"; + results[22][7]="0.004647309093335652"; + results[22][8]="443964.1421858626"; + results[22][9]="4.331956174545530E-8"; + results[22][10]="15.80974722349805"; + results[22][11]="5.249529284155089E-13"; + results[22][12]="0.00007048689351547812"; + results[22][13]="6.604795502245522E-18"; + results[22][14]="5.310743606992122E-10"; + results[22][15]="0.05705046547232572"; + results[22][16]="655396082926770.0"; + results[22][17]="6.752104736286019E-7"; + results[22][18]="5143629387.040573"; + results[22][19]="4.352044338016266E-12"; + results[22][20]="174064.4640730606"; + results[22][21]="8.114403856748394E-17"; + results[22][22]="1"; + results[22][23]="8.893451297674116E-22"; + results[22][24]="0.000005296878350409827"; + results[22][25]="0.000005302527864470423"; + results[22][26]="1.420267787074702E+19"; + results[22][27]="6.181574830231600E-11"; + results[22][28]="219037186537017.3"; + results[22][29]="1.055204897749860E-15"; + results[22][30]="493648905.2304466"; + results[22][31]="1.287493880047189E-20"; + results[22][32]="10036.14140069709"; + results[22][33]="5.539907864773438E-26"; + results[22][34]="0.2655118394847626"; + results[22][35]="6.517719108176616E-10"; + results[22][36]="1.373401184015196E+23"; + results[22][37]="5.514504270020602E-15"; + results[22][38]="6.721514699722450E+17"; + results[22][39]="5.877349344891688E-20"; + results[22][40]="12186698189873.78"; + results[22][41]="9.409536073813374E-25"; + results[22][42]="44010712.35487979"; + results[22][43]="1.697447998160085E-29"; + results[22][44]="1156.126411647312"; + results[22][45]="1.488918676420706E-13"; + results[22][46]="8.106551296088482E+26"; + results[22][47]="5.412601880645680E-19"; + results[22][48]="6.712708910266456E+21"; + results[22][49]="2.292272530980073E-23"; + results[22][50]="2.262279861002728E+17"; + results[22][51]="5.705661569067654E-29"; + results[22][52]="4053740676394.876"; + results[22][53]="1.188492358430754E-33"; + results[22][54]="16531612.00830475"; + results[22][55]="6.019353838720512E-18"; + results[22][56]="6.948416117582402E+30"; + results[22][57]="6.037482967145447E-23"; + results[22][58]="5.553779556944628E+25"; + results[22][59]="1.184646769690344E-27"; + results[22][60]="2.868613412248970E+21"; + results[22][61]="5.476256786824880E-33"; + results[22][62]="2.050891838745521E+16"; + results[22][63]="4.657759510115996E-38"; + results[22][64]="214296029127.7612"; + results[22][65]="5.053512913910754E-22"; + results[22][66]="4.505261465506844E+34"; + results[22][67]="1.631280465291153E-26"; + results[22][68]="9.611322727176706E+29"; + results[22][69]="7.245375712861636E-32"; + results[22][70]="7.056909888490957E+24"; + results[22][71]="4.427860268160242E-37"; + results[22][72]="1.720006195812521E+20"; + results[22][73]="8.390313820929822E-42"; + results[22][74]="480377734267339.0"; + results[23][0]="4.349432237720928E+28"; + results[23][1]="9.563884315247705E+22"; + results[23][2]="2.145826783438484E+18"; + results[23][3]="25022680771022.83"; + results[23][4]="174650360.6745100"; + results[23][5]="5.448982895167197E+23"; + results[23][6]="3.386293375197521E+32"; + results[23][7]="5.225540611608288E+18"; + results[23][8]="4.992034333194938E+26"; + results[23][9]="48709505787460.23"; + results[23][10]="1.777684128953709E+22"; + results[23][11]="590269076.4751797"; + results[23][12]="7.925707484777299E+16"; + results[23][13]="7426.583090383436"; + results[23][14]="597152154909.8750"; + results[23][15]="6.414884791379698E+19"; + results[23][16]="7.369423421683034E+35"; + results[23][17]="759222096156514.8"; + results[23][18]="5.783614498890633E+30"; + results[23][19]="4893538169.095777"; + results[23][20]="1.957220636251567E+26"; + results[23][21]="91240.21243440706"; + results[23][22]="1.124422866364071E+21"; + results[23][23]="1"; + results[23][24]="5955931137549612"; + results[23][25]="5962283580343192"; + results[23][26]="1.596981576147093E+40"; + results[23][27]="69507040892.53014"; + results[23][28]="2.462904211262749E+35"; + results[23][29]="1186496.515729304"; + results[23][30]="5.550701169967046E+29"; + results[23][31]="14.47687559028860"; + results[23][32]="1.128486688100694E+25"; + results[23][33]="0.00006229199080701412"; + results[23][34]="2.985475836070540E+20"; + results[23][35]="732867240177.1831"; + results[23][36]="1.544283695998176E+44"; + results[23][37]="6200634.697873477"; + results[23][38]="7.557824824970159E+38"; + results[23][39]="66.08625997006110"; + results[23][40]="1.370300211017172E+34"; + results[23][41]="0.001058029752327336"; + results[23][42]="4.948665133679859E+28"; + results[23][43]="1.908649343595118E-8"; + results[23][44]="1.299974973663679E+24"; + results[23][45]="167417420.5923969"; + results[23][46]="9.115191644675190E+47"; + results[23][47]="608.6053321123179"; + results[23][48]="7.547923393949451E+42"; + results[23][49]="0.02577483649772239"; + results[23][50]="2.543759205826400E+38"; + results[23][51]="6.415576335994377E-8"; + results[23][52]="4.558118710848557E+33"; + results[23][53]="1.336367984318503E-12"; + results[23][54]="1.858852255999673E+28"; + results[23][55]="6768.299096993695"; + results[23][56]="7.812957967622318E+51"; + results[23][57]="0.06788683903541942"; + results[23][58]="6.244796728573862E+46"; + results[23][59]="0.000001332043916404155"; + results[23][60]="3.225534515491407E+42"; + results[23][61]="6.157628353187331E-12"; + results[23][62]="2.306069679924920E+37"; + results[23][63]="5.237291299199141E-17"; + results[23][64]="2.409593553222759E+32"; + results[23][65]="0.5682285475867381"; + results[23][66]="5.065819010764803E+55"; + results[23][67]="0.00001834249056626394"; + results[23][68]="1.080719105044218E+51"; + results[23][69]="8.146866126940509E-11"; + results[23][70]="7.934950844489962E+45"; + results[23][71]="4.978787334584325E-16"; + results[23][72]="1.934014296859477E+41"; + results[23][73]="9.434260716223996E-21"; + results[23][74]="5.401477089023595E+35"; + results[24][0]="7302690607518.291"; + results[24][1]="16057748.30899485"; + results[24][2]="360.2840150232697"; + results[24][3]="0.004201304580784266"; + results[24][4]="2.932377098408908E-8"; + results[24][5]="91488346.14311905"; + results[24][6]="5.685581812469896E+16"; + results[24][7]="877.3675334597941"; + results[24][8]="83816186216.83326"; + results[24][9]="0.008178319168327438"; + results[24][10]="2984729.151326427"; + results[24][11]="9.910609488981233E-8"; + results[24][12]="13.30725171553627"; + results[24][13]="1.246922255961287E-12"; + results[24][14]="0.0001002617627905542"; + results[24][15]="10770.58253903672"; + results[24][16]="1.237325155628808E+20"; + results[24][17]="0.1274732831227585"; + results[24][18]="971068060613965.9"; + results[24][19]="8.216243700744122E-7"; + results[24][20]="32861706944.73151"; + results[24][21]="1.531921883031460E-11"; + results[24][22]="188790.4410571613"; + results[24][23]="1.678998593008280E-16"; + results[24][24]="1"; + results[24][25]="1.001066574251259"; + results[24][26]="2.681329819411114E+24"; + results[24][27]="0.00001167022238627271"; + results[24][28]="4.135212705424321E+19"; + results[24][29]="1.992125980518727E-10"; + results[24][30]="93196194545840.82"; + results[24][31]="2.430665374725046E-15"; + results[24][32]="1894727561.549639"; + results[24][33]="1.045881649206614E-20"; + results[24][34]="50126.09728222654"; + results[24][35]="0.0001230483065119351"; + results[24][36]="2.592850152786563E+28"; + results[24][37]="1.041085693348789E-9"; + results[24][38]="1.268957724732794E+23"; + results[24][39]="1.109587375069120E-14"; + results[24][40]="2.300732126296780E+18"; + results[24][41]="1.776430465518496E-19"; + results[24][42]="8308801796717.613"; + results[24][43]="3.204619562442379E-24"; + results[24][44]="218265615.1727291"; + results[24][45]="2.810936136197098E-8"; + results[24][46]="1.530439394641047E+32"; + results[24][47]="1.021847496313918E-13"; + results[24][48]="1.267295275857541E+27"; + results[24][49]="4.327591421469434E-18"; + results[24][50]="4.270968127534385E+22"; + results[24][51]="1.077174364147177E-23"; + results[24][52]="7.653074902279439E+17"; + results[24][53]="2.243759965412078E-28"; + results[24][54]="3121010322433.718"; + results[24][55]="1.136396466091162E-12"; + results[24][56]="1.311794543487070E+36"; + results[24][57]="1.139819072242488E-17"; + results[24][58]="1.048500492089822E+31"; + results[24][59]="2.236499861467814E-22"; + results[24][60]="5.415667913209714E+26"; + results[24][61]="1.033864934126942E-27"; + results[24][62]="3.871887747972994E+21"; + results[24][63]="8.793404722529862E-33"; + results[24][64]="4.045704185582832E+16"; + results[24][65]="9.540549319052715E-17"; + results[24][66]="8.505502991508699E+39"; + results[24][67]="3.079701585302480E-21"; + results[24][68]="1.814525856806408E+35"; + results[24][69]="1.367857676455993E-26"; + results[24][70]="1.332277130348850E+30"; + results[24][71]="8.359376929654525E-32"; + results[24][72]="3.247207283284959E+25"; + results[24][73]="1.584011046861337E-36"; + results[24][74]="9.069072432637074E+19"; + results[25][0]="7294910044299.792"; + results[25][1]="16040639.77563644"; + results[25][2]="359.9001547851519"; + results[25][3]="0.004196828351727361"; + results[25][4]="2.929252832762058E-8"; + results[25][5]="91390870.99331748"; + results[25][6]="5.679524178222003E+16"; + results[25][7]="876.4327528526417"; + results[25][8]="83726885276.85887"; + results[25][9]="0.008169605677269126"; + results[25][10]="2981549.107819164"; + results[25][11]="9.900050350191554E-8"; + results[25][12]="13.29307366544463"; + results[25][13]="1.245593737753071E-12"; + results[25][14]="0.0001001549401102962"; + results[25][15]="10759.10715238146"; + results[25][16]="1.236006862534849E+20"; + results[25][17]="0.1273374682578942"; + results[25][18]="970033447915559.5"; + results[25][19]="8.207489803452292E-7"; + results[25][20]="32826694837.26416"; + results[25][21]="1.530289715424023E-11"; + results[25][22]="188589.2965693774"; + results[25][23]="1.677209724302378E-16"; + results[25][24]="0.9989345621173533"; + results[25][25]="1"; + results[25][26]="2.678473029045643E+24"; + results[25][27]="0.00001165778848924346"; + results[25][28]="4.130806893155160E+19"; + results[25][29]="1.990003494032078E-10"; + results[25][30]="93096899789653.17"; + results[25][31]="2.428075651754777E-15"; + results[25][32]="1892708847.028269"; + results[25][33]="1.044767327276784E-20"; + results[25][34]="50072.69103927282"; + results[25][35]="0.0001229172061847818"; + results[25][36]="2.590087632009758E+28"; + results[25][37]="1.039976481212013E-9"; + results[25][38]="1.267605729101387E+23"; + results[25][39]="1.108405178645614E-14"; + results[25][40]="2.298280839131601E+18"; + results[25][41]="1.774537789204645E-19"; + results[25][42]="8299949284523.987"; + results[25][43]="3.201205239361082E-24"; + results[25][44]="218033066.7178449"; + results[25][45]="2.807941258351893E-8"; + results[25][46]="1.528808806532901E+32"; + results[25][47]="1.020758781281058E-13"; + results[25][48]="1.265945051462143E+27"; + results[25][49]="4.322980641628383E-18"; + results[25][50]="4.266417676295733E+22"; + results[25][51]="1.076026701773399E-23"; + results[25][52]="7.644921026359818E+17"; + results[25][53]="2.241369378545362E-28"; + results[25][54]="3117685079804.065"; + results[25][55]="1.135185706246483E-12"; + results[25][56]="1.310396907886189E+36"; + results[25][57]="1.138604665823557E-17"; + results[25][58]="1.047383379945576E+31"; + results[25][59]="2.234117009790872E-22"; + results[25][60]="5.409897855455146E+26"; + results[25][61]="1.032763415260583E-27"; + results[25][62]="3.867762492088947E+21"; + results[25][63]="8.784035896021034E-33"; + results[25][64]="4.041393739081530E+16"; + results[25][65]="9.530384456386937E-17"; + results[25][66]="8.496440906410580E+39"; + results[25][67]="3.076420354566251E-21"; + results[25][68]="1.812592592219525E+35"; + results[25][69]="1.366400309069427E-26"; + results[25][70]="1.330857671823993E+30"; + results[25][71]="8.350470532798348E-32"; + results[25][72]="3.243747585632540E+25"; + results[25][73]="1.582323381485480E-36"; + results[25][74]="9.059409899306875E+19"; + results[26][0]="2.723533134436308E-12"; + results[26][1]="5.988725516997952E-18"; + results[26][2]="1.343676605597132E-22"; + results[26][3]="1.566873478364917E-27"; + results[26][4]="1.093627899552070E-32"; + results[26][5]="3.412051194925813E-17"; + results[26][6]="2.120433589075808E-8"; + results[26][7]="3.272135815251872E-22"; + results[26][8]="3.125918550193178E-14"; + results[26][9]="3.050098167380094E-27"; + results[26][10]="1.113152559494507E-18"; + results[26][11]="3.696154578685082E-32"; + results[26][12]="4.962929819077190E-24"; + results[26][13]="4.650387456755103E-37"; + results[26][14]="3.739255128732137E-29"; + results[26][15]="4.016880900314683E-21"; + results[26][16]="0.00004614595141080237"; + results[26][17]="4.754106794320244E-26"; + results[26][18]="3.621591247686330E-10"; + results[26][19]="3.064242094077263E-31"; + results[26][20]="1.225574963096063E-14"; + results[26][21]="5.713291486714258E-36"; + results[26][22]="7.040925726124371E-20"; + results[26][23]="6.261813003582785E-41"; + results[26][24]="3.729492704555177E-25"; + results[26][25]="3.733470485444113E-25"; + results[26][26]="1"; + results[26][27]="4.352400925014057E-30"; + results[26][28]="0.00001542224561666388"; + results[26][29]="7.429619310899423E-35"; + results[26][30]="3.475745276510183E-11"; + results[26][31]="9.065148782251936E-40"; + results[26][32]="7.066372617918999E-16"; + results[26][33]="3.900607980544203E-45"; + results[26][34]="1.869449141218870E-20"; + results[26][35]="4.589077614441313E-29"; + results[26][36]="9670.015728822264"; + results[26][37]="3.882721498161075E-34"; + results[26][38]="0.04732568576779893"; + results[26][39]="4.138198020386811E-39"; + results[26][40]="8.580563680159561E-7"; + results[26][41]="6.625184461300789E-44"; + results[26][42]="3.098761568445328E-12"; + results[26][43]="1.195160527900366E-48"; + results[26][44]="8.140200194419411E-17"; + results[26][45]="1.048336581291759E-32"; + results[26][46]="57077625.57077626"; + results[26][47]="3.810972782670732E-38"; + results[26][48]="472.6368485827938"; + results[26][49]="1.613972063466582E-42"; + results[26][50]="0.01592854447302717"; + results[26][51]="4.017313932620759E-48"; + results[26][52]="2.854208701546549E-7"; + results[26][53]="8.368086421777320E-53"; + results[26][54]="1.163978522835795E-12"; + results[26][55]="4.238182329769274E-37"; + results[26][56]="489232817981.0316"; + results[26][57]="4.250946914441208E-42"; + results[26][58]="3910374.935971505"; + results[26][59]="8.341009917082876E-47"; + results[26][60]="201.9769397260919"; + results[26][61]="3.855791729321848E-52"; + results[26][62]="0.001444017710892185"; + results[26][63]="3.279493876087616E-57"; + results[26][64]="1.508842424491952E-8"; + results[26][65]="3.558140908285596E-41"; + results[26][66]="3172121135540393"; + results[26][67]="1.148572459459261E-45"; + results[26][68]="67672609451.86232"; + results[26][69]="5.101415225212420E-51"; + results[26][70]="496871.7838081744"; + results[26][71]="3.117623527377340E-56"; + results[26][72]="12.11043587318969"; + results[26][73]="5.907557643204166E-61"; + results[26][74]="0.00003382303947460244"; + results[27][0]="6.257541943766386E+17"; + results[27][1]="1375959067231.062"; + results[27][2]="30872077.93461244"; + results[27][3]="360.0021012218345"; + results[27][4]="0.002512700273696726"; + results[27][5]="7839468959112.017"; + results[27][6]="4.871871010065461E+21"; + results[27][7]="75180018.37666884"; + results[27][8]="7182055614931850"; + results[27][9]="700.7852033691596"; + results[27][10]="255755978980.9374"; + results[27][11]="0.008492219908884301"; + results[27][12]="1140274.047492801"; + results[27][13]="1.068464862698761E-7"; + results[27][14]="8.591246976449121"; + results[27][15]="922911507.8137501"; + results[27][16]="1.060241283048926E+25"; + results[27][17]="10922.95235716340"; + results[27][18]="8.320904507836979E+19"; + results[27][19]="0.07040348871507895"; + results[27][20]="2815859531810263"; + results[27][21]="0.000001312675827697515"; + results[27][22]="16177107411.35740"; + results[27][23]="1.438703169001500E-11"; + results[27][24]="85688.17001947338"; + results[27][25]="85779.56281525363"; + results[27][26]="2.297582454439834E+29"; + results[27][27]="1"; + results[27][28]="3.543388093690857E+24"; + results[27][29]="0.00001707016297188988"; + results[27][30]="7.985811363411926E+18"; + results[27][31]="2.082792678898868E-10"; + results[27][32]="162355737434647.7"; + results[27][33]="8.961968457746355E-16"; + results[27][34]="4295213546.332090"; + results[27][35]="10.54378420900297"; + results[27][36]="2.221765847269926E+33"; + results[27][37]="0.00008920872789651233"; + results[27][38]="1.087346652644278E+28"; + results[27][39]="9.507851164638391E-10"; + results[27][40]="1.971455256073830E+23"; + results[27][41]="1.522190757571212E-14"; + results[27][42]="7.119660210152448E+17"; + results[27][43]="2.745979859142930E-19"; + results[27][44]="18702781142325.76"; + results[27][45]="0.002408639735523385"; + results[27][46]="1.311405510525019E+37"; + results[27][47]="8.756024199812025E-9"; + results[27][48]="1.085922130625564E+32"; + results[27][49]="3.708233894976874E-13"; + results[27][50]="3.659714430599182E+27"; + results[27][51]="9.230110005566145E-19"; + results[27][52]="6.557779833982852E+22"; + results[27][53]="1.922636853991178E-23"; + results[27][54]="2.674336631412318E+17"; + results[27][55]="9.737573359594823E-8"; + results[27][56]="1.124052738729375E+41"; + results[27][57]="9.766901045375269E-13"; + results[27][58]="8.984408843169418E+35"; + results[27][59]="1.916415803779827E-17"; + results[27][60]="4.640586729161206E+31"; + results[27][61]="8.858999425264104E-23"; + results[27][62]="3.317749756446258E+26"; + results[27][63]="7.534907589141790E-28"; + results[27][64]="3.466689881027168E+21"; + results[27][65]="8.175122121301600E-12"; + results[27][66]="7.288209864375369E+44"; + results[27][67]="2.638939930506406E-16"; + results[27][68]="1.554834001227581E+40"; + results[27][69]="1.172092211426029E-21"; + results[27][70]="1.141603892583884E+35"; + results[27][71]="7.162997116051003E-27"; + results[27][72]="2.782472497785938E+30"; + results[27][73]="1.357310078961783E-31"; + results[27][74]="7.771122205267246E+24"; + results[28][0]="1.765977019256848E-7"; + results[28][1]="3.883173479306462E-13"; + results[28][2]="8.712587252178613E-18"; + results[28][3]="1.015982702721253E-22"; + results[28][4]="7.091236430383361E-28"; + results[28][5]="2.212421770302413E-12"; + results[28][6]="0.001374918829450271"; + results[28][7]="2.121698679027844E-17"; + results[28][8]="2.026889357030855E-9"; + results[28][9]="1.977726359178481E-22"; + results[28][10]="7.217837059291388E-14"; + results[28][11]="2.396638382345144E-27"; + results[28][12]="3.218033185591791E-19"; + results[28][13]="3.015376341646586E-32"; + results[28][14]="2.424585382489199E-24"; + results[28][15]="2.604601820097072E-16"; + results[28][16]="2.992168102999295"; + results[28][17]="3.082629412401127E-21"; + results[28][18]="0.00002348290474490412"; + results[28][19]="1.986897479292069E-26"; + results[28][20]="7.946799665619501E-10"; + results[28][21]="3.704578197445509E-31"; + results[28][22]="4.565434827802628E-15"; + results[28][23]="4.060247229376789E-36"; + results[28][24]="2.418255289959476E-20"; + results[28][25]="2.420834538784717E-20"; + results[28][26]="64841.40019917012"; + results[28][27]="2.822157702060747E-25"; + results[28][28]="1"; + results[28][29]="4.817469190655120E-30"; + results[28][30]="0.000002253721904645720"; + results[28][31]="5.877969400550175E-35"; + results[28][32]="4.581934948749433E-11"; + results[28][33]="2.529208830865435E-40"; + results[28][34]="1.212176999177676E-15"; + results[28][35]="2.975622181430421E-24"; + results[28][36]="627017359.8048342"; + results[28][37]="2.517610985241837E-29"; + results[28][38]="3068.663730570020"; + results[28][39]="2.683265539433148E-34"; + results[28][40]="0.05563757635196901"; + results[28][41]="4.295862370485278E-39"; + results[28][42]="2.009280389813716E-7"; + results[28][43]="7.749588209183903E-44"; + results[28][44]="5.278219785077115E-12"; + results[28][45]="6.797561181096882E-28"; + results[28][46]="3700993162053.089"; + results[28][47]="2.471088113492979E-33"; + results[28][48]="30646435.04783151"; + results[28][49]="1.046522084775171E-37"; + results[28][50]="1032.829126765834"; + results[28][51]="2.604882604307646E-43"; + results[28][52]="0.01850708886689335"; + results[28][53]="5.425984405757048E-48"; + results[28][54]="7.547399722243467E-8"; + results[28][55]="2.748096765616207E-32"; + results[28][56]="3.172254094127582E+16"; + results[28][57]="2.756373501047097E-37"; + results[28][58]="253554186152.1326"; + results[28][59]="5.408427620988176E-42"; + results[28][60]="13096467.57978319"; + results[28][61]="2.500149346056082E-47"; + results[28][62]="93.63213028664973"; + results[28][63]="2.126469748701247E-52"; + results[28][64]="0.0009783545548396877"; + results[28][65]="2.307148385991850E-36"; + results[28][66]="2.056847760298206E+20"; + results[28][67]="7.447504650154305E-41"; + results[28][68]="4387986751990347"; + results[28][69]="3.307829062001381E-46"; + results[28][70]="32217862181.58138"; + results[28][71]="2.021510748090225E-51"; + results[28][72]="785257.6190398789"; + results[28][73]="3.830543093426676E-56"; + results[28][74]="2.193133238525025"; + results[29][0]="3.665777505505325E+22"; + results[29][1]="8.060608850055552E+16"; + results[29][2]="1808540315956.603"; + results[29][3]="21089552.67824123"; + results[29][4]="147.1983763619884"; + results[29][5]="4.592498016581085E+17"; + results[29][6]="2.854027239276019E+26"; + results[29][7]="4404176954869.778"; + results[29][8]="4.207373782405491E+20"; + results[29][9]="41053222.77960500"; + results[29][10]="1.498263252683064E+16"; + results[29][11]="497.4890938574387"; + results[29][12]="66799247867.20172"; + results[29][13]="0.006259254023867518"; + results[29][14]="503290.2726585955"; + results[29][15]="54065770158934.34"; + results[29][16]="6.211078856100365E+29"; + results[29][17]="639885651.6572606"; + results[29][18]="4.874531380596274E+24"; + results[29][19]="4124.359493873326"; + results[29][20]="1.649579758814986E+20"; + results[29][21]="0.07689884565596421"; + results[29][22]="947683243446292.2"; + results[29][23]="8.428174771211442E-7"; + results[29][24]="5019762855.256830"; + results[29][25]="5025116805.065672"; + results[29][26]="1.345963983017241E+34"; + results[29][27]="58581.74884719846"; + results[29][28]="2.075778713727511E+29"; + results[29][29]="1"; + results[29][30]="4.678227956325009E+23"; + results[29][31]="0.00001220136376160371"; + results[29][32]="9.511083034298228E+18"; + results[29][33]="5.250077853682115E-11"; + results[29][34]="251621121216311.1"; + results[29][35]="617673.3184308691"; + results[29][36]="1.301549288620499E+38"; + results[29][37]="5.226003292611552"; + results[29][38]="6.369866851504902E+32"; + results[29][39]="0.00005569865490033896"; + results[29][40]="1.154912966748064E+28"; + results[29][41]="8.917259665756348E-10"; + results[29][42]="4.170821463085429E+22"; + results[29][43]="1.608643024477765E-14"; + results[29][44]="1.095641627623847E+18"; + results[29][45]="141.1023280498135"; + results[29][46]="7.682442825440876E+41"; + results[29][47]="0.0005129432105733799"; + results[29][48]="6.361521752392140E+36"; + results[29][49]="2.172348267022037E-8"; + results[29][50]="2.143924716258292E+32"; + results[29][51]="5.407159861780895E-14"; + results[29][52]="3.841662112296063E+27"; + results[29][53]="1.126314293048790E-18"; + results[29][54]="1.566673168742592E+22"; + results[29][55]="0.005704440769329544"; + results[29][56]="6.584897523124984E+45"; + results[29][57]="5.721621440556141E-8"; + results[29][58]="5.263223823910997E+40"; + results[29][59]="1.122669893038318E-12"; + results[29][60]="2.718536862713640E+36"; + results[29][61]="5.189756793682972E-18"; + results[29][62]="1.943595829699885E+31"; + results[29][63]="4.414080639739539E-23"; + results[29][64]="2.030847559414579E+26"; + results[29][65]="4.789129509052666E-7"; + results[29][66]="4.269560798205122E+49"; + results[29][67]="1.545937162317696E-11"; + results[29][68]="9.108489495899883E+44"; + results[29][69]="6.866321155551707E-17"; + results[29][70]="6.687715251833322E+39"; + results[29][71]="4.196208980457067E-22"; + results[29][72]="1.630021050395328E+35"; + results[29][73]="7.951359815351027E-27"; + results[29][74]="4.552459292898528E+29"; + results[30][0]="0.07835824888672127"; + results[30][1]="1.723004720015306E-7"; + results[30][2]="3.865866163087327E-12"; + results[30][3]="4.508021600300163E-17"; + results[30][4]="3.146455831913338E-22"; + results[30][5]="9.816746980813501E-7"; + results[30][6]="610.0658766354783"; + results[30][7]="9.414199128358610E-12"; + results[30][8]="0.0008993520242460782"; + results[30][9]="8.775378874836710E-17"; + results[30][10]="3.202629856156106E-8"; + results[30][11]="1.063413537138199E-21"; + results[30][12]="1.427875009316049E-13"; + results[30][13]="1.337954046340334E-26"; + results[30][14]="1.075813913638266E-18"; + results[30][15]="1.155689091332903E-10"; + results[30][16]="1327656.307919525"; + results[30][17]="1.367794937807870E-15"; + results[30][18]="10.41961064339727"; + results[30][19]="8.816072094770739E-21"; + results[30][20]="0.0003526078195024119"; + results[30][21]="1.643760124001572E-25"; + results[30][22]="2.025731221936322E-9"; + results[30][23]="1.801574196446855E-30"; + results[30][24]="1.073005185322375E-14"; + results[30][25]="1.074149625024506E-14"; + results[30][26]="28770807997.87632"; + results[30][27]="1.252220913433587E-19"; + results[30][28]="443710.4675331262"; + results[30][29]="2.137561506912014E-24"; + results[30][30]="1"; + results[30][31]="2.608116550863527E-29"; + results[30][32]="0.00002033052498315981"; + results[30][33]="1.122236432832213E-34"; + results[30][34]="5.378556230380286E-10"; + results[30][35]="1.320314709324433E-18"; + results[30][36]="278214165870389.4"; + results[30][37]="1.117090347328190E-23"; + results[30][38]="1361598218.593171"; + results[30][39]="1.190593007017408E-28"; + results[30][40]="24686.97501554217"; + results[30][41]="1.906119100865986E-33"; + results[30][42]="0.08915387411693861"; + results[30][43]="3.438573407486192E-38"; + results[30][44]="0.000002342001368579163"; + results[30][45]="3.016149049749527E-22"; + results[30][46]="1.642169406271479E+18"; + results[30][47]="1.096447662153521E-27"; + results[30][48]="13598144023296.90"; + results[30][49]="4.643528035193328E-32"; + results[30][50]="458277094.7190988"; + results[30][51]="1.155813678226253E-37"; + results[30][52]="8211.789053806363"; + results[30][53]="2.407566077505911E-42"; + results[30][54]="0.03348860259416035"; + results[30][55]="1.219359300697839E-26"; + results[30][56]="1.407562347239223E+22"; + results[30][57]="1.223031774845527E-31"; + results[30][58]="1.125046464825440E+17"; + results[30][59]="2.399775948327737E-36"; + results[30][60]="5811039752858.027"; + results[30][61]="1.109342435241184E-41"; + results[30][62]="41545556.30561193"; + results[30][63]="9.435368863912798E-47"; + results[30][64]="434.1061569410814"; + results[30][65]="1.023705889016741E-30"; + results[30][66]="9.126448813663803E+25"; + results[30][67]="3.304535770275098E-35"; + results[30][68]="1.946995653254801E+21"; + results[30][69]="1.467718379620295E-40"; + results[30][70]="1.429540269150730E+16"; + results[30][71]="8.969654791583536E-46"; + results[30][72]="348427025278.1341"; + results[30][73]="1.699652066890138E-50"; + results[30][74]="973116.1746283781"; + results[31][0]="3.004399817208225E+27"; + results[31][1]="6.606317955556214E+21"; + results[31][2]="1.482244404226248E+17"; + results[31][3]="1728458645303.865"; + results[31][4]="12064092.11609646"; + results[31][5]="3.763921891283291E+22"; + results[31][6]="2.339105115657083E+31"; + results[31][7]="3.609577618470172E+17"; + results[31][8]="3.448281572954666E+25"; + results[31][9]="3364642148346.955"; + results[31][10]="1.227947368799811E+21"; + results[31][11]="40773236.79365905"; + results[31][12]="5474736199359228"; + results[31][13]="512.9962638737704"; + results[31][14]="41248690104.82190"; + results[31][15]="4.431125177094802E+18"; + results[31][16]="5.090479209910875E+34"; + results[31][17]="52443781216564.26"; + results[31][18]="3.995070941115503E+29"; + results[31][19]="338024467.9576074"; + results[31][20]="1.351963428879995E+25"; + results[31][21]="6302.479555437567"; + results[31][22]="7.767027210749525E+19"; + results[31][23]="0.06907567822651053"; + results[31][24]="411409982796631.8"; + results[31][25]="411848782090993.5"; + results[31][26]="1.103125854876022E+39"; + results[31][27]="4801245991.169322"; + results[31][28]="1.701267787999033E+34"; + results[31][29]="81958.05153739330"; + results[31][30]="3.834184479481592E+28"; + results[31][31]="1"; + results[31][32]="7.795098335014412E+23"; + results[31][33]="0.000004302861513074059"; + results[31][34]="2.062237682054311E+19"; + results[31][35]="50623301665.22991"; + results[31][36]="1.066724436752164E+43"; + results[31][37]="428313.0471904447"; + results[31][38]="5.220618757019720E+37"; + results[31][39]="4.564953228885464"; + results[31][40]="9.465441644994164E+32"; + results[31][41]="0.00007308412272583773"; + results[31][42]="3.418324004248217E+27"; + results[31][43]="1.318412479054169E-9"; + results[31][44]="8.979665298330876E+22"; + results[31][45]="11564471.87435279"; + results[31][46]="6.296380450205607E+46"; + results[31][47]="42.03982608792905"; + results[31][48]="5.213779276388035E+41"; + results[31][49]="0.001780414312257591"; + results[31][50]="1.757118923873884E+37"; + results[31][51]="4.431602866227630E-9"; + results[31][52]="3.148551413888119E+32"; + results[31][53]="9.231052487699542E-14"; + results[31][54]="1.284014803060566E+27"; + results[31][55]="467.5248505647183"; + results[31][56]="5.396853705687309E+50"; + results[31][57]="0.004689329449025547"; + results[31][58]="4.313635694129337E+45"; + results[31][59]="9.201183695311428E-8"; + results[31][60]="2.228059843005880E+41"; + results[31][61]="4.253423547632060E-13"; + results[31][62]="1.592933271784059E+36"; + results[31][63]="3.617694485619832E-18"; + results[31][64]="1.664443089390894E+31"; + results[31][65]="0.03925077231221895"; + results[31][66]="3.499248839413294E+54"; + results[31][67]="0.000001267019976228053"; + results[31][68]="7.465140515327681E+49"; + results[31][69]="5.627503031390007E-12"; + results[31][70]="5.481121112771666E+44"; + results[31][71]="3.439131118819729E-17"; + results[31][72]="1.335933492553362E+40"; + results[31][73]="6.516779575388975E-22"; + results[31][74]="3.731106933492626E+34"; + results[32][0]="3854.216698861785"; + results[32][1]="0.008474964229612891"; + results[32][2]="1.901508281900985E-7"; + results[32][3]="2.217366056230347E-12"; + results[32][4]="1.547651049109460E-17"; + results[32][5]="0.04828575252702482"; + results[32][6]="30007384.32189076"; + results[32][7]="4.630573551915940E-7"; + results[32][8]="44.23653717702960"; + results[32][9]="4.316356258436777E-12"; + results[32][10]="0.001575281434595963"; + results[32][11]="5.230625072490977E-17"; + results[32][12]="7.023306139407549E-9"; + results[32][13]="6.581010807387358E-22"; + results[32][14]="5.291618954893612E-14"; + results[32][15]="0.000005684501960919277"; + results[32][16]="65303591964.26306"; + results[32][17]="6.727789562447809E-11"; + results[32][18]="512510.6534153962"; + results[32][19]="4.336372081917841E-16"; + results[32][20]="17.34376361626097"; + results[32][21]="8.085182873354881E-21"; + results[32][22]="0.00009963988749008084"; + results[32][23]="8.861424866987624E-26"; + results[32][24]="5.277803628834801E-10"; + results[32][25]="5.283432798288516E-10"; + results[32][26]="1415153225099094"; + results[32][27]="6.159314205957922E-15"; + results[32][28]="21824840622.69226"; + results[32][29]="1.051404972907783E-19"; + results[32][30]="49187.12137676328"; + results[32][31]="1.282857453520695E-24"; + results[32][32]="1"; + results[32][33]="5.519957963514394E-30"; + results[32][34]="0.00002645556981354615"; + results[32][35]="6.494247986306681E-14"; + results[32][36]="1.368455394540179E+19"; + results[32][37]="5.494645850284232E-19"; + results[32][38]="66973096844326.95"; + results[32][39]="5.856184274649082E-24"; + results[32][40]="1214281236.514595"; + results[32][41]="9.375651157286216E-29"; + results[32][42]="4385.222427398534"; + results[32][43]="1.691335275569338E-33"; + results[32][44]="0.1151963055808490"; + results[32][45]="1.483556894004392E-17"; + results[32][46]="8.077358590748254E+22"; + results[32][47]="5.393110424161355E-23"; + results[32][48]="6.688535605726128E+17"; + results[32][49]="2.284017770834574E-27"; + results[32][50]="22541331082138.75"; + results[32][51]="5.685114767983791E-33"; + results[32][52]="403914264.9099497"; + results[32][53]="1.184212448768611E-37"; + results[32][54]="1647.207960537155"; + results[32][55]="5.997677392530980E-22"; + results[32][56]="6.923394001901749E+26"; + results[32][57]="6.015741235696518E-27"; + results[32][58]="5.533779701986738E+21"; + results[32][59]="1.180380708474336E-31"; + results[32][60]="2.858283176490243E+17"; + results[32][61]="5.456536101060227E-37"; + results[32][62]="2043506320669.287"; + results[32][63]="4.640986335438119E-42"; + results[32][64]="21352432.23186122"; + results[32][65]="5.035314581717381E-26"; + results[32][66]="4.489037455364987E+30"; + results[32][67]="1.625406020263772E-30"; + results[32][68]="9.576711151667440E+25"; + results[32][69]="7.219284208528977E-36"; + results[32][70]="7.031497073168779E+20"; + results[32][71]="4.411914989412857E-41"; + results[32][72]="1.713812238330015E+16"; + results[32][73]="8.360099251239178E-46"; + results[32][74]="47864783395.13761"; + results[33][0]="6.982329800946383E+32"; + results[33][1]="1.535331298830604E+27"; + results[33][2]="3.444787613364996E+22"; + results[33][3]="4.016998083837972E+17"; + results[33][4]="2803737019990.124"; + results[33][5]="8.747485550828852E+27"; + results[33][6]="5.436161746200319E+36"; + results[33][7]="8.388784085898711E+22"; + results[33][8]="8.013926459118452E+30"; + results[33][9]="7.819545523655909E+17"; + results[33][10]="2.853792447348690E+26"; + results[33][11]="9475842220292.549"; + results[33][12]="1.272347758049958E+21"; + results[33][13]="119222118.1915926"; + results[33][14]="9586339225533875"; + results[33][15]="1.029808922186089E+24"; + results[33][16]="1.183045095558775E+40"; + results[33][17]="1.218811738588753E+19"; + results[33][18]="9.284683992214605E+34"; + results[33][19]="78558063495777.08"; + results[33][20]="3.142010089732407E+30"; + results[33][21]="1464718196.550773"; + results[33][22]="1.805084171812118E+25"; + results[33][23]="16053.42817021349"; + results[33][24]="9.561311270339060E+19"; + results[33][25]="9.571509118748273E+19"; + results[33][26]="2.563702902183168E+44"; + results[33][27]="1115826288292324"; + results[33][28]="3.953805584562284E+39"; + results[33][29]="19047336589.46896"; + results[33][30]="8.910778252638594E+33"; + results[33][31]="232403.4824178150"; + results[33][32]="1.811607998846661E+29"; + results[33][33]="1"; + results[33][34]="4.792712188826647E+24"; + results[33][35]="1.176503159848700E+16"; + results[33][36]="2.479104738813852E+48"; + results[33][37]="99541443732.04527"; + results[33][38]="1.213289979507148E+43"; + results[33][39]="1060911.027467431"; + results[33][40]="2.199801600919255E+38"; + results[33][41]="16.98500463093566"; + results[33][42]="7.944304026196954E+32"; + results[33][43]="0.0003064036513952934"; + results[33][44]="2.086905486278503E+28"; + results[33][45]="2687623535922.464"; + results[33][46]="1.463300743255233E+52"; + results[33][47]="9770201.983074019"; + results[33][48]="1.211700460390415E+47"; + results[33][49]="413.7744863151833"; + results[33][50]="4.083605569305342E+42"; + results[33][51]="0.001029919938804072"; + results[33][52]="7.317343131591340E+37"; + results[33][53]="2.145328744523008E-8"; + results[33][54]="2.984095117073005E+32"; + results[33][55]="108654403.3881091"; + results[33][56]="1.254247595301220E+56"; + results[33][57]="1089.816494157951"; + results[33][58]="1.002503957197447E+51"; + results[33][59]="0.02138387133156396"; + results[33][60]="5.178088665498566E+46"; + results[33][61]="9.885104446676278E-8"; + results[33][62]="3.702032396218190E+41"; + results[33][63]="8.407647967817748E-13"; + results[33][64]="3.868223702607104E+36"; + results[33][65]="9122.016172948436"; + results[33][66]="8.132376161261471E+59"; + results[33][67]="0.2944598547683367"; + results[33][68]="1.734924652500475E+55"; + results[33][69]="0.000001307851301811848"; + results[33][70]="1.273831634161944E+50"; + results[33][71]="7.992660485051813E-12"; + results[33][72]="3.104755959479955E+45"; + results[33][73]="1.514522267469688E-16"; + results[33][74]="8.671222446169412E+39"; + results[34][0]="145686398.9710135"; + results[34][1]="320.3470682862941"; + results[34][2]="0.007187553680765358"; + results[34][3]="8.381471545908569E-8"; + results[34][4]="5.850000812747606E-13"; + results[34][5]="1825.163958566520"; + results[34][6]="1134255830941.353"; + results[34][7]="0.01750320852868166"; + results[34][8]="1672106.761971122"; + results[34][9]="1.631549155379241E-7"; + results[34][10]="59.54441524783812"; + results[34][11]="1.977135669106896E-12"; + results[34][12]="0.0002654755194806417"; + results[34][13]="2.487570993091087E-17"; + results[34][14]="2.000190883125157E-9"; + results[34][15]="0.2148697609230333"; + results[34][16]="2468425077384854"; + results[34][17]="0.000002543052222977617"; + results[34][18]="19372504808.15474"; + results[34][19]="1.639114981260948E-11"; + results[34][20]="655580.7997520574"; + results[34][21]="3.056136356290082E-16"; + results[34][22]="3.766310391056549"; + results[34][23]="3.349549803478537E-21"; + results[34][24]="0.00001994968797131100"; + results[34][25]="0.00001997096579482185"; + results[34][26]="5.349169324542341E+19"; + results[34][27]="2.328172951619490E-10"; + results[34][28]="824962031682160.1"; + results[34][29]="3.974229171089060E-15"; + results[34][30]="1859235001.303121"; + results[34][31]="4.849101578843441E-20"; + results[34][32]="37799.22364355827"; + results[34][33]="2.086501255659210E-25"; + results[34][34]="1"; + results[34][35]="2.454775320311342E-9"; + results[34][36]="5.172655150445800E+23"; + results[34][37]="2.076933473370431E-14"; + results[34][38]="2.531531065720401E+18"; + results[34][39]="2.213592190953497E-19"; + results[34][40]="45898888025191.66"; + results[34][41]="3.543923348982476E-24"; + results[34][42]="165758003.2599846"; + results[34][43]="6.393116033748466E-29"; + results[34][44]="4354.330917562191"; + results[34][45]="5.607729882441468E-13"; + results[34][46]="3.053178838209099E+27"; + results[34][47]="2.038553870572805E-18"; + results[34][48]="2.528214532087444E+22"; + results[34][49]="8.633409852563746E-23"; + results[34][50]="8.520448147972540E+17"; + results[34][51]="2.148929245543152E-28"; + results[34][52]="15267645632154.63"; + results[34][53]="4.476231119249052E-33"; + results[34][54]="62263182.08779341"; + results[34][55]="2.267075491021919E-17"; + results[34][56]="2.616989182503541E+31"; + results[34][57]="2.273903483498682E-22"; + results[34][58]="2.091725765495799E+26"; + results[34][59]="4.461747438416318E-27"; + results[34][60]="1.080408850247748E+22"; + results[34][61]="2.062528284031250E-32"; + results[34][62]="7.724295243200328E+16"; + results[34][63]="1.754256804199234E-37"; + results[34][64]="807105361266.0442"; + results[34][65]="1.903309819900053E-21"; + results[34][66]="1.696821307196509E+35"; + results[34][67]="6.143908567153631E-26"; + results[34][68]="3.619922465916360E+30"; + results[34][69]="2.728833383445953E-31"; + results[34][70]="2.657851304177320E+25"; + results[34][71]="1.667669613811836E-36"; + results[34][72]="6.478077207970342E+20"; + results[34][73]="3.160052612799337E-41"; + results[34][74]="1809251652203281"; + results[35][0]="5.934816020251334E+16"; + results[35][1]="130499547406.9147"; + results[35][2]="2927988.407449751"; + results[35][3]="34.14353841900911"; + results[35][4]="0.0002383110488501100"; + results[35][5]="743515686940.7634"; + results[35][6]="4.620609558668262E+20"; + results[35][7]="7130269.065301548"; + results[35][8]="681164890381514.3"; + results[35][9]="66.46429682910084"; + results[35][10]="24256564238.34587"; + results[35][11]="0.0008054242898515592"; + results[35][12]="108146.5653023476"; + results[35][13]="1.013359948875315E-8"; + results[35][14]="0.8148162752717714"; + results[35][15]="87531335.00453358"; + results[35][16]="1.005560491406513E+24"; + results[35][17]="1035.961296309220"; + results[35][18]="7.891762903049598E+18"; + results[35][19]="0.006677250531641558"; + results[35][20]="267063463742543.0"; + results[35][21]="1.244975998822763E-7"; + results[35][22]="1534279068.187334"; + results[35][23]="1.364503616996488E-12"; + results[35][24]="8126.889579768451"; + results[35][25]="8135.557510937055"; + results[35][26]="2.179087136929461E+28"; + results[35][27]="0.09484260870458016"; + results[35][28]="3.360641704583902E+23"; + results[35][29]="0.000001618978787266365"; + results[35][30]="7.573951823286671E+17"; + results[35][31]="1.975374910575696E-11"; + results[35][32]="15398241676457.85"; + results[35][33]="8.499764676608273E-17"; + results[35][34]="407369257.6773865"; + results[35][35]="1"; + results[35][36]="2.107180688858216E+32"; + results[35][37]="0.000008460788472922284"; + results[35][38]="1.031267931029763E+27"; + results[35][39]="9.017494076291857E-11"; + results[35][40]="1.869779594303981E+22"; + results[35][41]="1.443685423940549E-15"; + results[35][42]="6.752471474210576E+16"; + results[35][43]="2.604358932913510E-20"; + results[35][44]="1773820553569.003"; + results[35][45]="0.0002284416759465479"; + results[35][46]="1.243771196877546E+36"; + results[35][47]="8.304441769906065E-10"; + results[35][48]="1.029916877185643E+31"; + results[35][49]="3.516985762863528E-14"; + results[35][50]="3.470968637118237E+26"; + results[35][51]="8.754077115581401E-20"; + results[35][52]="6.219569467652223E+21"; + results[35][53]="1.823478948240904E-24"; + results[35][54]="2.536410626773635E+16"; + results[35][55]="9.235368598761958E-9"; + results[35][56]="1.066080940626218E+40"; + results[35][57]="9.263183741028816E-14"; + results[35][58]="8.521047723546869E+34"; + results[35][59]="1.817578741931636E-18"; + results[35][60]="4.401253513135038E+30"; + results[35][61]="8.402106160044240E-24"; + results[35][62]="3.146640419303486E+25"; + results[35][63]="7.146302921021462E-29"; + results[35][64]="3.287899118863873E+20"; + results[35][65]="7.753499084627650E-13"; + results[35][66]="6.912328363238143E+43"; + results[35][67]="2.502839472239110E-17"; + results[35][68]="1.474645127790042E+39"; + results[35][69]="1.111642829739649E-22"; + results[35][70]="1.082726912799589E+34"; + results[35][71]="6.793573326296614E-28"; + results[35][72]="2.638969503387675E+29"; + results[35][73]="1.287308287097552E-32"; + results[35][74]="7.370335025096355E+23"; + results[36][0]="2.816472290028026E-16"; + results[36][1]="6.193087669080073E-22"; + results[36][2]="1.389528872835434E-26"; + results[36][3]="1.620342223120407E-31"; + results[36][4]="1.130947384389897E-36"; + results[36][5]="3.528485672216559E-21"; + results[36][6]="2.192792285493067E-12"; + results[36][7]="3.383795752781463E-26"; + results[36][8]="3.232588899391471E-18"; + results[36][9]="3.154181185340816E-31"; + results[36][10]="1.151138313225971E-22"; + results[36][11]="3.822283936590086E-36"; + results[36][12]="5.132287225019476E-28"; + results[36][13]="4.809079516690182E-41"; + results[36][14]="3.866855270552440E-33"; + results[36][15]="4.153954877593472E-25"; + results[36][16]="4.772065806807389E-9"; + results[36][17]="4.916338222853396E-30"; + results[36][18]="3.745176170594929E-14"; + results[36][19]="3.168807766200464E-35"; + results[36][20]="1.267397073040055E-18"; + results[36][21]="5.908254595372923E-40"; + results[36][22]="7.281193664595935E-24"; + results[36][23]="6.475494124501726E-45"; + results[36][24]="3.856759708713939E-29"; + results[36][25]="3.860873229312546E-29"; + results[36][26]="0.0001034124481327801"; + results[36][27]="4.500924349110802E-34"; + results[36][28]="1.594852174924249E-9"; + results[36][29]="7.683151216346878E-39"; + results[36][30]="3.594353281298647E-15"; + results[36][31]="9.374492282605629E-44"; + results[36][32]="7.307508918374459E-20"; + results[36][33]="4.033714204743355E-49"; + results[36][34]="1.933243123531666E-24"; + results[36][35]="4.745677507807144E-33"; + results[36][36]="1"; + results[36][37]="4.015217355426124E-38"; + results[36][38]="0.000004894065024810755"; + results[36][39]="4.279411881464243E-43"; + results[36][40]="8.873370965245172E-11"; + results[36][41]="6.851265444743684E-48"; + results[36][42]="3.204505199727048E-16"; + results[36][43]="1.235944761018426E-52"; + results[36][44]="8.417980303958437E-21"; + results[36][45]="1.084110523385301E-36"; + results[36][46]="5902.536993880142"; + results[36][47]="3.941020252233737E-42"; + results[36][48]="0.04887653358970880"; + results[36][49]="1.669048023009940E-46"; + results[36][50]="0.000001647209779147603"; + results[36][51]="4.154402686902390E-52"; + results[36][52]="2.951607093088121E-11"; + results[36][53]="8.653643030626684E-57"; + results[36][54]="1.203698686204266E-16"; + results[36][55]="4.382808103545301E-41"; + results[36][56]="50592763.41431727"; + results[36][57]="4.396008273048529E-46"; + results[36][58]="404.3814452458765"; + results[36][59]="8.625642554253372E-51"; + results[36][60]="0.02088692980344213"; + results[36][61]="3.987368622192980E-56"; + results[36][62]="1.493294066304539E-7"; + results[36][63]="3.391404903626805E-61"; + results[36][64]="1.560330889633121E-12"; + results[36][65]="3.679560621272072E-45"; + results[36][66]="328036812399.9663"; + results[36][67]="1.187766898905705E-49"; + results[36][68]="6998190.214950595"; + results[36][69]="5.275498373810540E-55"; + results[36][70]="51.38272757170476"; + results[36][71]="3.224010813224441E-60"; + results[36][72]="0.001252369821601588"; + results[36][73]="6.109149983692593E-65"; + results[36][74]="3.497723315360298E-9"; + results[37][0]="7.014495208389838E+21"; + results[37][1]="1.542404089460013E+16"; + results[37][2]="346065667144.4297"; + results[37][3]="4035503.136413506"; + results[37][4]="28.16652958678678"; + results[37][5]="8.787782478196851E+16"; + results[37][6]="5.461204441472514E+25"; + results[37][7]="842742858791.6008"; + results[37][8]="8.050844109405394E+19"; + results[37][9]="7855567.721827779"; + results[37][10]="2866938975720293"; + results[37][11]="95.19494458811030"; + results[37][12]="12782090658.38928"; + results[37][13]="0.001197713371653776"; + results[37][14]="96305.00489162340"; + results[37][15]="10345529294895.73"; + results[37][16]="1.188495013939524E+29"; + results[37][17]="122442642.2696522"; + results[37][18]="9.327455624622005E+23"; + results[37][19]="789.1995590022467"; + results[37][20]="3.156484346550524E+19"; + results[37][21]="0.01471465694724737"; + results[37][22]="181339962947614.9"; + results[37][23]="1.612738128796641E-7"; + results[37][24]="960535723.8013413"; + results[37][25]="961560206.4717620"; + results[37][26]="2.575513078838174E+33"; + results[37][27]="11209.66550672107"; + results[37][28]="3.972019529077253E+28"; + results[37][29]="0.1913508170601013"; + results[37][30]="8.951827418361983E+22"; + results[37][31]="0.000002334740925030381"; + results[37][32]="1.819953509739433E+18"; + results[37][33]="1.004606686931215E-11"; + results[37][34]="48147907134319.92"; + results[37][35]="118192.2941579709"; + results[37][36]="2.490525198215260E+37"; + results[37][37]="1"; + results[37][38]="1.218879226599518E+32"; + results[37][39]="0.00001065798312432847"; + results[37][40]="2.209935398205477E+27"; + results[37][41]="1.706324922979563E-10"; + results[37][42]="7.980900947732038E+21"; + results[37][43]="3.078151570918528E-15"; + results[37][44]="2.096519206508824E+17"; + results[37][45]="27.00004576141425"; + results[37][46]="1.470041711665625E+41"; + results[37][47]="0.00009815210244864781"; + results[37][48]="1.217282385065843E+36"; + results[37][49]="4.156806158337618E-9"; + results[37][50]="4.102417461713700E+31"; + results[37][51]="1.034664457526358E-14"; + results[37][52]="7.351051840566861E+26"; + results[37][53]="2.155211602413563E-19"; + results[37][54]="2.997841909050329E+21"; + results[37][55]="0.001091549402082161"; + results[37][56]="1.260025521307003E+45"; + results[37][57]="1.094836937559011E-8"; + results[37][58]="1.007122179075560E+40"; + results[37][59]="2.148238013216586E-13"; + results[37][60]="5.201942498882593E+35"; + results[37][61]="9.930642028144481E-19"; + results[37][62]="3.719086500476785E+30"; + results[37][63]="8.446379369833354E-24"; + results[37][64]="3.886043398184922E+25"; + results[37][65]="9.164038445638694E-8"; + results[37][66]="8.169839472243282E+48"; + results[37][67]="2.958163391330656E-12"; + results[37][68]="1.742916907223793E+44"; + results[37][69]="1.313876163311878E-17"; + results[37][70]="1.279699777703607E+39"; + results[37][71]="8.029480169653943E-23"; + results[37][72]="3.119058598183105E+34"; + results[37][73]="1.521499197406275E-27"; + results[37][74]="8.711168053289843E+28"; + } + + private static void initResults2() { + results[38][0]="5.754873046740801E-11"; + results[38][1]="1.265428153832008E-16"; + results[38][2]="2.839212118742058E-21"; + results[38][3]="3.310831006343367E-26"; + results[38][4]="2.310854838782263E-31"; + results[38][5]="7.209723725223695E-16"; + results[38][6]="4.480513181530232E-7"; + results[38][7]="6.914080086037084E-21"; + results[38][8]="6.605120453046024E-13"; + results[38][9]="6.444910660872926E-26"; + results[38][10]="2.352110786003469E-17"; + results[38][11]="7.810039133548062E-31"; + results[38][12]="1.048675732545652E-22"; + results[38][13]="9.826349859084964E-36"; + results[38][14]="7.901111348029064E-28"; + results[38][15]="8.487739448770601E-20"; + results[38][16]="0.0009750720071382617"; + results[38][17]="1.004551062956811E-24"; + results[38][18]="7.652485513797906E-9"; + results[38][19]="6.474797024837234E-30"; + results[38][20]="2.589661286915703E-13"; + results[38][21]="1.207228462519536E-34"; + results[38][22]="1.487759894419769E-18"; + results[38][23]="1.323132016365500E-39"; + results[38][24]="7.880483175360085E-24"; + results[38][25]="7.888888295802402E-24"; + results[38][26]="21.13017452946058"; + results[38][27]="9.196699116773269E-29"; + results[38][28]="0.0003258747415163162"; + results[38][29]="1.569891527267555E-33"; + results[38][30]="7.344310431260839E-10"; + results[38][31]="1.915481759045105E-38"; + results[38][32]="1.493136867068297E-14"; + results[38][33]="8.242052739990580E-44"; + results[38][34]="3.950178662790491E-19"; + results[38][35]="9.696801092238556E-28"; + results[38][36]="204329.1200526434"; + results[38][37]="8.204258290543218E-33"; + results[38][38]="1"; + results[38][39]="8.744084640824158E-38"; + results[38][40]="0.00001813088081229221"; + results[38][41]="1.399913039571560E-42"; + results[38][42]="6.547737276643480E-11"; + results[38][43]="2.525395054525697E-47"; + results[38][44]="1.720038508128311E-15"; + results[38][45]="2.215153492831292E-31"; + results[38][46]="1206060190.037704"; + results[38][47]="8.052652002485662E-37"; + results[38][48]="9986.899099608667"; + results[38][49]="3.410351138672251E-41"; + results[38][50]="0.3365729247153389"; + results[38][51]="8.488654453591028E-47"; + results[38][52]="0.000006030992800718365"; + results[38][53]="1.768191265697641E-51"; + results[38][54]="2.459506933606407E-11"; + results[38][55]="8.955353231570062E-36"; + results[38][56]="10337574829479.02"; + results[38][57]="8.982325021761465E-41"; + results[38][58]="82626904.87270614"; + results[38][59]="1.762469952999227E-45"; + results[38][60]="4267.807987338662"; + results[38][61]="8.147355218982128E-51"; + results[38][62]="0.03051234625478403"; + results[38][63]="6.929627797002850E-56"; + results[38][64]="3.188210376696939E-7"; + results[38][65]="7.518413839248804E-40"; + results[38][66]="6.702747322255918E+16"; + results[38][67]="2.426953652810597E-44"; + results[38][68]="1429934048581.875"; + results[38][69]="1.077937940559859E-49"; + results[38][70]="10498987.51063113"; + results[38][71]="6.587592925063573E-55"; + results[38][72]="255.8956236283385"; + results[38][73]="1.248277240437528E-59"; + results[38][74]="0.0007146867272151842"; + results[39][0]="6.581447096100371E+26"; + results[39][1]="1.447181958788470E+21"; + results[39][2]="3.247008961334176E+16"; + results[39][3]="378636660364.1785"; + results[39][4]="2642763.575267104"; + results[39][5]="8.245258390527376E+21"; + results[39][6]="5.124050561692560E+30"; + results[39][7]="7.907151371518986E+16"; + results[39][8]="7.553815778735954E+24"; + results[39][9]="737059500863.3713"; + results[39][10]="2.689945125899165E+20"; + results[39][11]="8931797.271363033"; + results[39][12]="1199297325702478"; + results[39][13]="112.3771127878607"; + results[39][14]="9035950213.862933"; + results[39][15]="9.706835875242173E+17"; + results[39][16]="1.115121876320673E+34"; + results[39][17]="11488350172947.65"; + results[39][18]="8.751614180482857E+28"; + results[39][19]="74047739.59538163"; + results[39][20]="2.961615072691725E+24"; + results[39][21]="1380.623029291435"; + results[39][22]="1.701447270390950E+19"; + results[39][23]="0.01513173843478247"; + results[39][24]="90123592108977.16"; + results[39][25]="90219715611751.54"; + results[39][26]="2.416510749542446E+38"; + results[39][27]="1051762362.161496"; + results[39][28]="3.726802231475215E+33"; + results[39][29]="17953.75492979660"; + results[39][30]="8.399175823358240E+27"; + results[39][31]="0.2190602947851342"; + results[39][32]="1.707596539147366E+23"; + results[39][33]="9.425861114736121E-7"; + results[39][34]="4.517543945478293E+18"; + results[39][35]="11089555385.78204"; + results[39][36]="2.336769695694354E+42"; + results[39][37]="93826.38237785791"; + results[39][38]="1.143630283873541E+37"; + results[39][39]="1"; + results[39][40]="2.073502437023907E+32"; + results[39][41]="0.00001600982946843494"; + results[39][42]="7.488190640417148E+26"; + results[39][43]="2.888118263100058E-10"; + results[39][44]="1.967088127324202E+22"; + results[39][45]="2533316.617830116"; + results[39][46]="1.379286957501396E+46"; + results[39][47]="9.209256695537514"; + results[39][48]="1.142132025230187E+41"; + results[39][49]="0.0003900180840828200"; + results[39][50]="3.849149894363509E+36"; + results[39][51]="9.707882302464703E-10"; + results[39][52]="6.897226008724825E+31"; + results[39][53]="2.022157079132508E-14"; + results[39][54]="2.812766612669237E+26"; + results[39][55]="102.4161315840830"; + results[39][56]="1.182236363680106E+50"; + results[39][57]="0.001027245891448147"; + results[39][58]="9.449463067516497E+44"; + results[39][59]="2.015614012667092E-8"; + results[39][60]="4.880794460077878E+40"; + results[39][61]="9.317562161903105E-14"; + results[39][62]="3.489484320900643E+35"; + results[39][63]="7.924932204624348E-19"; + results[39][64]="3.646133938150488E+30"; + results[39][65]="0.008598285753258867"; + results[39][66]="7.665464822884150E+53"; + results[39][67]="2.775537694911710E-7"; + results[39][68]="1.635315881900131E+49"; + results[39][69]="1.232762472960531E-12"; + results[39][70]="1.200696006716784E+44"; + results[39][71]="7.533770766933783E-18"; + results[39][72]="2.926499846920735E+39"; + results[39][73]="1.427567654834451E-22"; + results[39][74]="8.173373847257529E+33"; + results[40][0]="0.000003174072515461667"; + results[40][1]="6.979408043839129E-12"; + results[40][2]="1.565953771433517E-16"; + results[40][3]="1.826072897737389E-21"; + results[40][4]="1.274540858056698E-26"; + results[40][5]="3.976488401123740E-11"; + results[40][6]="0.02471205468678926"; + results[40][7]="3.813427575647367E-16"; + results[40][8]="3.643022377913347E-8"; + results[40][9]="3.554659438554945E-21"; + results[40][10]="1.297295377072253E-12"; + results[40][11]="4.307589473674706E-26"; + results[40][12]="5.783920502277423E-18"; + results[40][13]="5.419675944492992E-31"; + results[40][14]="4.357819914999574E-23"; + results[40][15]="4.681371818966545E-15"; + results[40][16]="53.77962699292531"; + results[40][17]="5.540553012050880E-20"; + results[40][18]="0.0004220691533424975"; + results[40][19]="3.571143118677119E-25"; + results[40][20]="1.428315211889754E-8"; + results[40][21]="6.658410449100025E-30"; + results[40][22]="8.205668052327118E-14"; + results[40][23]="7.297670918825164E-35"; + results[40][24]="4.346442545702108E-19"; + results[40][25]="4.351078349405929E-19"; + results[40][26]="1165424.600614822"; + results[40][27]="5.072395109750087E-24"; + results[40][28]="17.97346443838419"; + results[40][29]="8.658661118125126E-29"; + results[40][30]="0.00004050719050715733"; + results[40][31]="1.056474739906990E-33"; + results[40][32]="8.235324486033761E-10"; + results[40][33]="4.545864497880714E-39"; + results[40][34]="2.178702018774722E-14"; + results[40][35]="5.348223946000686E-23"; + results[40][36]="11269674218.70173"; + results[40][37]="4.525019151292953E-28"; + results[40][38]="55154.51843475961"; + results[40][39]="4.822757775174344E-33"; + results[40][40]="1"; + results[40][41]="7.721152954810994E-38"; + results[40][42]="0.000003611372963305955"; + results[40][43]="1.392869480898883E-42"; + results[40][44]="9.486789560505935E-11"; + results[40][45]="1.221757241561856E-26"; + results[40][46]="66519668984864.25"; + results[40][47]="4.441401433197993E-32"; + results[40][48]="550822610.4954504"; + results[40][49]="1.880962747469021E-36"; + results[40][50]="18563.51758085312"; + results[40][51]="4.681876485468906E-42"; + results[40][52]="0.3326365036071236"; + results[40][53]="9.752373776010145E-47"; + results[40][54]="0.000001356529205100136"; + results[40][55]="4.939281949004150E-31"; + results[40][56]="5.701639615032074E+17"; + results[40][57]="4.954158109997452E-36"; + results[40][58]="4557247148008.799"; + results[40][59]="9.720818151340577E-41"; + results[40][60]="235388894.3136845"; + results[40][61]="4.493634536198847E-46"; + results[40][62]="1682.893763997254"; + results[40][63]="3.822002840758163E-51"; + results[40][64]="0.01758442079954232"; + results[40][65]="4.146744946969999E-35"; + results[40][66]="3.696868007488996E+21"; + results[40][67]="1.338574599842493E-39"; + results[40][68]="7.886732384299944E+16"; + results[40][69]="5.945314801413554E-45"; + results[40][70]="579066600201.4157"; + results[40][71]="3.633355154261108E-50"; + results[40][72]="14113799.89078350"; + results[40][73]="6.884813006940251E-55"; + results[40][74]="39.41820227126789"; + results[41][0]="4.110878950382567E+31"; + results[41][1]="9.039334001912643E+25"; + results[41][2]="2.028134632999056E+21"; + results[41][3]="2.365026192881695E+16"; + results[41][4]="165071313250.2498"; + results[41][5]="5.150122558634225E+26"; + results[41][6]="3.200565360046566E+35"; + results[41][7]="4.938935412840446E+21"; + results[41][8]="4.718236252065705E+29"; + results[41][9]="4.603793577667779E+16"; + results[41][10]="1.680183496771577E+25"; + results[41][11]="557894591505.3629"; + results[41][12]="7.491006247549473E+19"; + results[41][13]="7019257.326220990"; + results[41][14]="564400153772921.7"; + results[41][15]="6.063047638564933E+22"; + results[41][16]="6.965232693572741E+38"; + results[41][17]="7.175810457942816E+17"; + results[41][18]="5.466400624527316E+33"; + results[41][19]="4625142306567.008"; + results[41][20]="1.849872966186717E+29"; + results[41][21]="86235960.97719082"; + results[41][22]="1.062751651256206E+24"; + results[41][23]="945.1530051969814"; + results[41][24]="5.629266213401292E+18"; + results[41][25]="5.635270243797986E+18"; + results[41][26]="1.509391935939637E+43"; + results[41][27]="65694788581924.34"; + results[41][28]="2.327821316787288E+38"; + results[41][29]="1121420747.497299"; + results[41][30]="5.246261891744755E+32"; + results[41][31]="13682.86247002409"; + results[41][32]="1.066592584583160E+28"; + results[41][33]="0.05887546231095213"; + results[41][34]="2.821731458405042E+23"; + results[41][35]="692671674463882.5"; + results[41][36]="1.459584376149378E+47"; + results[41][37]="5860548518.823794"; + results[41][38]="7.143300846072895E+41"; + results[41][39]="62461.62721293222"; + results[41][40]="1.295143362464938E+37"; + results[41][41]="1"; + results[41][42]="4.677245722811041E+31"; + results[41][43]="0.00001803965662966171"; + results[41][44]="1.228675253039092E+27"; + results[41][45]="158235078195.2310"; + results[41][46]="8.615250775911171E+50"; + results[41][47]="575225.1586248642"; + results[41][48]="7.133942478787923E+45"; + results[41][49]="24.36116417428315"; + results[41][50]="2.404241657884309E+41"; + results[41][51]="0.00006063701254035724"; + results[41][52]="4.308119597603104E+36"; + results[41][53]="1.263072216427666E-9"; + results[41][54]="1.756899795975280E+31"; + results[41][55]="6397078.231595606"; + results[41][56]="7.384440702575934E+54"; + results[41][57]="64.16344992765041"; + results[41][58]="5.902288394855864E+49"; + results[41][59]="0.001258985310643743"; + results[41][60]="3.048623640683292E+45"; + results[41][61]="5.819900942901146E-9"; + results[41][62]="2.179588688174679E+40"; + results[41][63]="4.950041610530071E-14"; + results[41][64]="2.277434588131763E+35"; + results[41][65]="537.0629193903215"; + results[41][66]="4.787974061808353E+58"; + results[41][67]="0.01733646008150164"; + results[41][68]="1.021444909906334E+54"; + results[41][69]="7.700035002815314E-8"; + results[41][70]="7.499742636760013E+48"; + results[41][71]="4.705715811519044E-13"; + results[41][72]="1.827939424770661E+44"; + results[41][73]="8.916819867750936E-18"; + results[41][74]="5.105222303193294E+38"; + results[42][0]="0.8789101950179163"; + results[42][1]="0.000001932619010762593"; + results[42][2]="4.336172938504800E-11"; + results[42][3]="5.056450597297903E-16"; + results[42][4]="3.529241845156713E-21"; + results[42][5]="0.00001101101559303791"; + results[42][6]="6842.842026531408"; + results[42][7]="1.055949527892695E-10"; + results[42][8]="0.01008763817785915"; + results[42][9]="9.842958549761383E-16"; + results[42][10]="3.592249790463821E-7"; + results[42][11]="1.192784438894235E-20"; + results[42][12]="1.601584926576693E-12"; + results[42][13]="1.500724516564931E-25"; + results[42][14]="1.206693398681896E-17"; + results[42][15]="1.296285890859935E-9"; + results[42][16]="14891739.93917645"; + results[42][17]="1.534195738946580E-14"; + results[42][18]="116.8722138729541"; + results[42][19]="9.888602354180532E-20"; + results[42][20]="0.003955047640890110"; + results[42][21]="1.843733814467261E-24"; + results[42][22]="2.272174083292525E-8"; + results[42][23]="2.020746954959940E-29"; + results[42][24]="1.203542971015447E-13"; + results[42][25]="1.204826638958615E-13"; + results[42][26]="322709565712.6364"; + results[42][27]="1.404561412318563E-18"; + results[42][28]="4976906.185267212"; + results[42][29]="2.397609221230570E-23"; + results[42][30]="11.21656248710349"; + results[42][31]="2.925410226640957E-28"; + results[42][32]="0.0002280386038692306"; + results[42][33]="1.258763507416664E-33"; + results[42][34]="6.032891204846025E-9"; + results[42][35]="1.480939243977938E-17"; + results[42][36]="3120606576282596"; + results[42][37]="1.252991368454678E-22"; + results[42][38]="15272451501.17909"; + results[42][39]="1.335436085991919E-27"; + results[42][40]="276902.9978793913"; + results[42][41]="2.138010400272485E-32"; + results[42][42]="1"; + results[42][43]="3.856897349156122E-37"; + results[42][44]="0.00002626920469555007"; + results[42][45]="3.383082428693337E-21"; + results[42][46]="1.841949575985368E+19"; + results[42][47]="1.229837371638349E-26"; + results[42][48]="152524432145942.5"; + results[42][49]="5.208442236736284E-31"; + results[42][50]="5140293669.325014"; + results[42][51]="1.296425634527369E-36"; + results[42][52]="92108.04505293148"; + results[42][53]="2.700461535017569E-41"; + results[42][54]="0.3756270036031754"; + results[42][55]="1.367701979050812E-25"; + results[42][56]="1.578801102230280E+23"; + results[42][57]="1.371821232626794E-30"; + results[42][58]="1.261915397360943E+18"; + results[42][59]="2.691723687946608E-35"; + results[42][60]="65179890502974.45"; + results[42][61]="1.244300874447829E-40"; + results[42][62]="465998328.3633725"; + results[42][63]="1.058324044509485E-45"; + results[42][64]="4869.178835365991"; + results[42][65]="1.148246107257210E-29"; + results[42][66]="1.023673834038115E+27"; + results[42][67]="3.706553195815928E-34"; + results[42][68]="2.183859840685134E+22"; + results[42][69]="1.646275491848131E-39"; + results[42][70]="1.603452775675989E+17"; + results[42][71]="1.006086934575439E-44"; + results[42][72]="3908153501227.777"; + results[42][73]="1.906425361460782E-49"; + results[42][74]="10915018.37993031"; + results[43][0]="2.278801107346606E+36"; + results[43][1]="5.010812670929508E+30"; + results[43][2]="1.124264543740979E+26"; + results[43][3]="1.311015082733337E+21"; + results[43][4]="9150468694555485"; + results[43][5]="2.854889460681936E+31"; + results[43][6]="1.774183082168003E+40"; + results[43][7]="2.737821187083793E+26"; + results[43][8]="2.615480077546344E+34"; + results[43][9]="2.552040580472019E+21"; + results[43][10]="9.313833025008547E+29"; + results[43][11]="3.092600945563700E+16"; + results[43][12]="4.152521525954315E+24"; + results[43][13]="389101492911.9866"; + results[43][14]="3.128663507069788E+19"; + results[43][15]="3.360955124054725E+27"; + results[43][16]="3.861067223485925E+43"; + results[43][17]="3.977797696073652E+22"; + results[43][18]="3.030213233404445E+38"; + results[43][19]="2.563874912653335E+17"; + results[43][20]="1.025447991701273E+34"; + results[43][21]="4780354900735.599"; + results[43][22]="5.891196673382220E+28"; + results[43][23]="52393070.69974453"; + results[43][24]="3.120495211724467E+23"; + results[43][25]="3.123823451568468E+23"; + results[43][26]="8.367076862526411E+47"; + results[43][27]="3.641687307612366E+18"; + results[43][28]="1.290391144673877E+43"; + results[43][29]="62164195833605.98"; + results[43][30]="2.908182788312382E+37"; + results[43][31]="758487966.3133965"; + results[43][32]="5.912488283338024E+32"; + results[43][33]="3263.668678379727"; + results[43][34]="1.564182465516227E+28"; + results[43][35]="3.839716512812981E+19"; + results[43][36]="8.090976486489524E+51"; + results[43][37]="324870292108974.2"; + results[43][38]="3.959776503909459E+46"; + results[43][39]="3462462090.893108"; + results[43][40]="7.179423583569754E+41"; + results[43][41]="55433.42761611934"; + results[43][42]="2.592757622182496E+36"; + results[43][43]="1"; + results[43][44]="6.810968070305965E+31"; + results[43][45]="8771512753466319"; + results[43][46]="4.775728802811879E+55"; + results[43][47]="31886702193.60218"; + results[43][48]="3.954588840154493E+50"; + results[43][49]="1350422.830899525"; + results[43][50]="1.332753559139886E+46"; + results[43][51]="3.361317445513614"; + results[43][52]="2.388138358753168E+41"; + results[43][53]="0.00007001642228327445"; + results[43][54]="9.739097766897050E+35"; + results[43][55]="354611973105.8077"; + results[43][56]="4.093448591717685E+59"; + results[43][57]="3556799.957164907"; + results[43][58]="3.271840765057037E+54"; + results[43][59]="69.78987108732747"; + results[43][60]="1.689956579146075E+50"; + results[43][61]="0.0003226170576512954"; + results[43][62]="1.208220717788436E+45"; + results[43][63]="2.743977733140975E-9"; + results[43][64]="1.262460053916486E+40"; + results[43][65]="29771238.46732512"; + results[43][66]="2.654138135831102E+63"; + results[43][67]="961.0194050476638"; + results[43][68]="5.662219247714633E+58"; + results[43][69]="0.004268393329701480"; + results[43][70]="4.157364405943601E+53"; + results[43][71]="2.608539568198692E-8"; + results[43][72]="1.013289477896753E+49"; + results[43][73]="4.942898887049463E-13"; + results[43][74]="2.829999710082635E+43"; + results[44][0]="33457.81515672613"; + results[44][1]="0.07356975717997179"; + results[44][2]="0.000001650667764311622"; + results[44][3]="1.924858653278701E-11"; + results[44][4]="1.343490176447769E-16"; + results[44][5]="0.4191605996698921"; + results[44][6]="260489120.4677608"; + results[44][7]="0.000004019724008133258"; + results[44][8]="384.0100336028812"; + results[44][9]="3.746957193351482E-11"; + results[44][10]="0.01367475655276438"; + results[44][11]="4.540618769080169E-16"; + results[44][12]="6.096815435177592E-8"; + results[44][13]="5.712866201918743E-21"; + results[44][14]="4.593566545569257E-13"; + results[44][15]="0.00004934621759141124"; + results[44][16]="566889637953.1077"; + results[44][17]="5.840282401874423E-10"; + results[44][18]="4449019.878121849"; + results[44][19]="3.764332597345680E-15"; + results[44][20]="150.5583319604680"; + results[44][21]="7.018612995084639E-20"; + results[44][22]="0.0008649573177513917"; + results[44][23]="7.692455779988837E-25"; + results[44][24]="4.581573690425900E-9"; + results[44][25]="4.586460278954353E-9"; + results[44][26]="1.228471015596839E+16"; + results[44][27]="5.346798384636640E-14"; + results[44][28]="189457817354.8698"; + results[44][29]="9.127071980358501E-19"; + results[44][30]="426985.2329790381"; + results[44][31]="1.113627253106948E-23"; + results[44][32]="8.680833946520647"; + results[44][33]="4.791783847304273E-29"; + results[44][34]="0.0002296564085119783"; + results[44][35]="5.637548837665439E-13"; + results[44][36]="1.187933404322369E+20"; + results[44][37]="4.769810822125617E-18"; + results[44][38]="581382332589848.2"; + results[44][39]="5.083656324845414E-23"; + results[44][40]="10540973778.55897"; + results[44][41]="8.138847083690577E-28"; + results[44][42]="38067.38771080486"; + results[44][43]="1.468220067511016E-32"; + results[44][44]="1"; + results[44][45]="1.287851104706806E-16"; + results[44][46]="7.011820865278762E+23"; + results[44][47]="4.681669604739426E-22"; + results[44][48]="5.806206693869941E+18"; + results[44][49]="1.982717899951718E-26"; + results[44][50]="195677552057591.1"; + results[44][51]="4.935153726777955E-32"; + results[44][52]="3506312662.314225"; + results[44][53]="1.027995162516290E-36"; + results[44][54]="14299.13878080998"; + results[44][55]="5.206484150936237E-21"; + results[44][56]="6.010083367684613E+27"; + results[44][57]="5.222165073231839E-26"; + results[44][58]="4.803782268957339E+22"; + results[44][59]="1.024668892394211E-30"; + results[44][60]="2.481228162724536E+18"; + results[44][61]="4.736728381649903E-36"; + results[44][62]="17739339038395.46"; + results[44][63]="4.028763172600968E-41"; + results[44][64]="185356918.5591225"; + results[44][65]="4.371072975238266E-25"; + results[44][66]="3.896858872973504E+31"; + results[44][67]="1.410987975758478E-29"; + results[44][68]="8.313383926141755E+26"; + results[44][69]="6.266940742697879E-35"; + results[44][70]="6.103925848762411E+21"; + results[44][71]="3.829910140925841E-40"; + results[44][72]="1.487731945645773E+17"; + results[44][73]="7.257263337643890E-45"; + results[44][74]="415506236539.3683"; + results[45][0]="2.597956785100805E+20"; + results[45][1]="571259805664574.7"; + results[45][2]="12817225207.78065"; + results[45][3]="149462.8258067859"; + results[45][4]="1.043203031420026"; + results[45][5]="3254728734851059"; + results[45][6]="2.022664883508130E+24"; + results[45][7]="31212645572.47396"; + results[45][8]="2.981789060858130E+18"; + results[45][9]="290946.4595446784"; + results[45][10]="106182745061026.3"; + results[45][11]="3.525732712799818"; + results[45][12]="473409962.7585133"; + results[45][13]="0.00004435967932193017"; + results[45][14]="3566.845987692836"; + results[45][15]="383167102245.4531"; + results[45][16]="4.401825924450844E+27"; + results[45][17]="4534904.990592084"; + results[45][18]="3.454607339203797E+22"; + results[45][19]="29.22956375615078"; + results[45][20]="1.169066295088082E+18"; + results[45][21]="0.0005449863706629740"; + results[45][22]="6716283540777.093"; + results[45][23]="5.973094057127134E-9"; + results[45][24]="35575336.88235604"; + results[45][25]="35613280.62065461"; + results[45][26]="9.538921161825726E+31"; + results[45][27]="415.1720928836645"; + results[45][28]="1.471115850756691E+27"; + results[45][29]="0.007087055286904757"; + results[45][30]="3.315486017121880E+21"; + results[45][31]="8.647173955412170E-8"; + results[45][32]="6.740557130241340E+16"; + results[45][33]="3.720759200959941E-13"; + results[45][34]="1783252797412.961"; + results[45][35]="4377.484956965496"; + results[45][36]="9.224151767085032E+35"; + results[45][37]="0.03703697426428437"; + results[45][38]="4.514359854683718E+30"; + results[45][39]="3.947394466849308E-7"; + results[45][40]="8.184932046906727E+25"; + results[45][41]="6.319711225890107E-12"; + results[45][42]="2.955884230069542E+20"; + results[45][43]="1.140054205136760E-16"; + results[45][44]="7764872789604521"; + results[45][45]="1"; + results[45][46]="5.444589704238428E+39"; + results[45][47]="0.000003635256892375972"; + results[45][48]="4.508445636805033E+34"; + results[45][49]="1.539555227079692E-10"; + results[45][50]="1.519411299508411E+30"; + results[45][51]="3.832084088557348E-16"; + results[45][52]="2.722607178344951E+25"; + results[45][53]="7.982251665267820E-21"; + results[45][54]="1.110309936338901E+20"; + results[45][55]="0.00004042768711311199"; + results[45][56]="4.666753280498896E+43"; + results[45][57]="4.054944747996101E-10"; + results[45][58]="3.730075822741150E+38"; + results[45][59]="7.956423600906009E-15"; + results[45][60]="1.926642104554017E+34"; + results[45][61]="3.678009332242079E-20"; + results[45][62]="1.377437110048061E+29"; + results[45][63]="3.128283353469004E-25"; + results[45][64]="1.439272893284671E+24"; + results[45][65]="3.394082560680328E-9"; + results[45][66]="3.025861342768090E+47"; + results[45][67]="1.095614213942617E-13"; + results[45][68]="6.455236863763371E+42"; + results[45][69]="4.866199764703870E-19"; + results[45][70]="4.739620773281892E+37"; + results[45][71]="2.973876503990548E-24"; + results[45][72]="1.155204930297025E+33"; + results[45][73]="5.635172661746553E-29"; + results[45][74]="3.226353070015521E+27"; + results[46][0]="4.771630051532411E-20"; + results[46][1]="1.049224710578041E-25"; + results[46][2]="2.354121413006176E-30"; + results[46][3]="2.745162334095334E-35"; + results[46][4]="1.916036080015227E-40"; + results[46][5]="5.977913693510024E-25"; + results[46][6]="3.714999648060815E-16"; + results[46][7]="5.732781948321280E-30"; + results[46][8]="5.476609299938448E-22"; + results[46][9]="5.343771989249925E-35"; + results[46][10]="1.950243284234377E-26"; + results[46][11]="6.475662821856263E-40"; + results[46][12]="8.695053043023237E-32"; + results[46][13]="8.147478824234940E-45"; + results[46][14]="6.551174985538704E-37"; + results[46][15]="7.037575337351325E-29"; + results[46][16]="8.084770687172574E-13"; + results[46][17]="8.329195103649068E-34"; + results[46][18]="6.345027865946450E-18"; + results[46][19]="5.368552148823365E-39"; + results[46][20]="2.147207335344303E-22"; + results[46][21]="1.000968668472338E-43"; + results[46][22]="1.233570187216990E-27"; + results[46][23]="1.097069638227704E-48"; + results[46][24]="6.534071218380670E-33"; + results[46][25]="6.541040290498085E-33"; + results[46][26]="1.752E-8"; + results[46][27]="7.625406420624627E-38"; + results[46][28]="2.701977432039512E-13"; + results[46][29]="1.301669303269579E-42"; + results[46][30]="6.089505724445841E-19"; + results[46][31]="1.588214066650539E-47"; + results[46][32]="1.238028482659409E-23"; + results[46][33]="6.833865181913444E-53"; + results[46][34]="3.275274895415460E-28"; + results[46][35]="8.040063980501181E-37"; + results[46][36]="0.0001694186755689661"; + results[46][37]="6.802528064778204E-42"; + results[46][38]="8.291460146518372E-10"; + results[46][39]="7.250122931717692E-47"; + results[46][40]="1.503314756763955E-14"; + results[46][41]="1.160732317619898E-51"; + results[46][42]="5.429030267916215E-20"; + results[46][43]="2.093921244881440E-56"; + results[46][44]="1.426163074062281E-24"; + results[46][45]="1.836685690423163E-40"; + results[46][46]="1"; + results[46][47]="6.676824315239122E-46"; + results[46][48]="0.000008280597587170547"; + results[46][49]="2.827679055193452E-50"; + results[46][50]="2.790680991674361E-10"; + results[46][51]="7.038334009951569E-56"; + results[46][52]="5.000573645109554E-15"; + results[46][53]="1.466088741095387E-60"; + results[46][54]="2.039290372008313E-20"; + results[46][55]="7.425295441755768E-45"; + results[46][56]="8571.358971027673"; + results[46][57]="7.447658994100996E-50"; + results[46][58]="0.06850976887822076"; + results[46][59]="1.461344937472920E-54"; + results[46][60]="0.000003538635984001130"; + results[46][61]="6.755347109771878E-60"; + results[46][62]="2.529919029483109E-11"; + results[46][63]="5.745673270905503E-65"; + results[46][64]="2.643491927709899E-16"; + results[46][65]="6.233862871316364E-49"; + results[46][66]="55575562.29466768"; + results[46][67]="2.012298948972625E-53"; + results[46][68]="1185.624117596628"; + results[46][69]="8.937679474572159E-59"; + results[46][70]="0.008705193652319216"; + results[46][71]="5.462076419965100E-64"; + results[46][72]="2.121748364982833E-7"; + results[46][73]="1.035004099089370E-68"; + results[46][74]="5.925796515950347E-13"; + results[47][0]="7.146556246270681E+25"; + results[47][1]="1.571442741399231E+20"; + results[47][2]="3525810028628656"; + results[47][3]="41114790572.36538"; + results[47][4]="286968.1737232600"; + results[47][5]="8.953228977234115E+20"; + results[47][6]="5.564021865277680E+29"; + results[47][7]="8586090748616571"; + results[47][8]="8.202416360482460E+23"; + results[47][9]="80034635283.92306"; + results[47][10]="2.920914482927399E+19"; + results[47][11]="969871.6809241588"; + results[47][12]="130227375058794.5"; + results[47][13]="12.20262573876507"; + results[47][14]="981181273.6462696"; + results[47][15]="1.054030330150941E+17"; + results[47][16]="1.210870663276248E+33"; + results[47][17]="1247478548243.150"; + results[47][18]="9.503062483559163E+27"; + results[47][19]="8040577.219577623"; + results[47][20]="3.215911088814389E+23"; + results[47][21]="149.9168798238013"; + results[47][22]="1.847540281090668E+18"; + results[47][23]="0.001643100951037101"; + results[47][24]="9786196116419.247"; + results[47][25]="9796633821214.788"; + results[47][26]="2.624001946556017E+37"; + results[47][27]="114207084.9942909"; + results[47][28]="4.046800251839102E+32"; + results[47][29]="1949.533553397026"; + results[47][30]="9.120362371295601E+26"; + results[47][31]="0.02378696805044898"; + results[47][32]="1.854217550450959E+22"; + results[47][33]="1.023520293369992E-7"; + results[47][34]="4.905438185545787E+17"; + results[47][35]="1204174859.319065"; + results[47][36]="2.537414009565692E+41"; + results[47][37]="10188.26876910955"; + results[47][38]="1.241826915768028E+36"; + results[47][39]="0.1085863966072925"; + results[47][40]="2.251541579928655E+31"; + results[47][41]="0.000001738449692274594"; + results[47][42]="8.131156387513517E+25"; + results[47][43]="3.136103551657476E-11"; + results[47][44]="2.135990115551220E+21"; + results[47][45]="275083.7229955457"; + results[47][46]="1.497718006025124E+45"; + results[47][47]="1"; + results[47][48]="1.240200010695352E+40"; + results[47][49]="0.00004235065836223342"; + results[47][50]="4.179653170302738E+35"; + results[47][51]="1.054143957912348E-10"; + results[47][52]="7.489449188735266E+30"; + results[47][53]="2.195787505969266E-15"; + results[47][54]="3.054281909670523E+25"; + results[47][55]="11.12099868317389"; + results[47][56]="1.283747866701312E+49"; + results[47][57]="0.0001115449297820002"; + results[47][58]="1.026083144375309E+44"; + results[47][59]="2.188682625866851E-9"; + results[47][60]="5.299878830006924E+39"; + results[47][61]="1.011760500325512E-14"; + results[47][62]="3.789105284242457E+34"; + results[47][63]="8.605398314572440E-20"; + results[47][64]="3.959205458913181E+29"; + results[47][65]="0.0009336568669461997"; + results[47][66]="8.323652034369472E+52"; + results[47][67]="3.013856369381733E-8"; + results[47][68]="1.775730589302118E+48"; + results[47][69]="1.338612348114789E-13"; + results[47][70]="1.303792527901410E+43"; + results[47][71]="8.180650204466976E-19"; + results[47][72]="3.177780730489156E+38"; + results[47][73]="1.550144275515960E-23"; + results[47][74]="8.875172141979778E+32"; + results[48][0]="5.762422338848205E-15"; + results[48][1]="1.267088153400481E-20"; + results[48][2]="2.842936621692024E-25"; + results[48][3]="3.315174183018531E-30"; + results[48][4]="2.313886238094478E-35"; + results[48][5]="7.219181503001472E-20"; + results[48][6]="4.486390757373126E-11"; + results[48][7]="6.923150035938593E-25"; + results[48][8]="6.613785107035720E-17"; + results[48][9]="6.453365150275192E-30"; + results[48][10]="2.355196305223146E-21"; + results[48][11]="7.820284410257130E-35"; + results[48][12]="1.050051394418058E-26"; + results[48][13]="9.839240149597593E-40"; + results[48][14]="7.911476094054727E-32"; + results[48][15]="8.498873738599392E-24"; + results[48][16]="9.763511150087314E-8"; + results[48][17]="1.005868841707006E-28"; + results[48][18]="7.662524110309441E-13"; + results[48][19]="6.483290719429564E-34"; + results[48][20]="2.593058426931717E-17"; + results[48][21]="1.208812115230884E-38"; + results[48][22]="1.489711550683502E-22"; + results[48][23]="1.324867712358631E-43"; + results[48][24]="7.890820861170891E-28"; + results[48][25]="7.899237007522711E-28"; + results[48][26]="0.002115789327468880"; + results[48][27]="9.208763426010420E-33"; + results[48][28]="3.263022268134115E-8"; + results[48][29]="1.571950924515769E-37"; + results[48][30]="7.353944761040615E-14"; + results[48][31]="1.917994504540616E-42"; + results[48][32]="1.495095576891135E-18"; + results[48][33]="8.252864735875365E-48"; + results[48][34]="3.955360541236747E-23"; + results[48][35]="9.709521439561277E-32"; + results[48][36]="20.45971607549835"; + results[48][37]="8.215020707343183E-37"; + results[48][38]="0.0001001311808626548"; + results[48][39]="8.755555206487259E-42"; + results[48][40]="1.815466505814869E-9"; + results[48][41]="1.401749457573287E-46"; + results[48][42]="6.556326654887352E-15"; + results[48][43]="2.528707889543666E-51"; + results[48][44]="1.722294869481269E-19"; + results[48][45]="2.218059350292316E-35"; + results[48][46]="120764.2310199132"; + results[48][47]="8.063215540849113E-41"; + results[48][48]="1"; + results[48][49]="3.414824866715520E-45"; + results[48][50]="0.00003370144439814430"; + results[48][51]="8.499789943731035E-51"; + results[48][52]="6.038904309100998E-10"; + results[48][53]="1.770510794253370E-55"; + results[48][54]="2.462733336018967E-15"; + results[48][55]="8.967100941193022E-40"; + results[48][56]="1035113574.931792"; + results[48][57]="8.994108113211472E-45"; + results[48][58]="8273.529555930313"; + results[48][59]="1.764781976287603E-49"; + results[48][60]="0.4273406534672904"; + results[48][61]="8.158042989841942E-55"; + results[48][62]="0.000003055237261381728"; + results[48][63]="6.938718142525727E-60"; + results[48][64]="3.192392698572340E-11"; + results[48][65]="7.528276559381090E-44"; + results[48][66]="6711540044014.826"; + results[48][67]="2.430137351548587E-48"; + results[48][68]="143180984.8402199"; + results[48][69]="1.079351988849169E-53"; + results[48][70]="1051.276017301760"; + results[48][71]="6.596234586290859E-59"; + results[48][72]="0.02562313097149101"; + results[48][73]="1.249914741289858E-63"; + results[48][74]="7.156242594292246E-8"; + results[49][0]="1.687472290311238E+30"; + results[49][1]="3.710550915072856E+24"; + results[49][2]="8.325277964917845E+19"; + results[49][3]="970818215402995.0"; + results[49][4]="6776002660.189255"; + results[49][5]="2.114070789798686E+25"; + results[49][6]="1.313798198291870E+34"; + results[49][7]="2.027380702131727E+20"; + results[49][8]="1.936786033011718E+28"; + results[49][9]="1889808526690925"; + results[49][10]="6.896975385705340E+23"; + results[49][11]="22900982379.74620"; + results[49][12]="3.074978762902205E+18"; + results[49][13]="288133.0824752154"; + results[49][14]="23168028823874.12"; + results[49][15]="2.488816870650781E+21"; + results[49][16]="2.859154284968690E+37"; + results[49][17]="2.945594228012286E+16"; + results[49][18]="2.243899587646931E+32"; + results[49][19]="189857195390.0929"; + results[49][20]="7.593532693891262E+27"; + results[49][21]="3539894.906509671"; + results[49][22]="4.362483022786321E+22"; + results[49][23]="38.79753030008030"; + results[49][24]="2.310754187742728E+17"; + results[49][25]="2.313218778660363E+17"; + results[49][26]="6.195894108923685E+41"; + results[49][27]="2696701525096.859"; + results[49][28]="9.555460076266186E+36"; + results[49][29]="46033134.51994738"; + results[49][30]="2.153534968284877E+31"; + results[49][31]="561.6670193647148"; + results[49][32]="4.378249647482396E+26"; + results[49][33]="0.002416775400787454"; + results[49][34]="1.158290892101044E+22"; + results[49][35]="28433438956710.49"; + results[49][36]="5.991439348740924E+45"; + results[49][37]="240569312.5704755"; + results[49][38]="2.932249376494788E+40"; + results[49][39]="2563.983673607429"; + results[49][40]="5.316426395714516E+35"; + results[49][41]="0.04104894137430629"; + results[49][42]="1.919959854688953E+30"; + results[49][43]="7.405088074035996E-7"; + results[49][44]="5.043581843006266E+25"; + results[49][45]="6495382448.194808"; + results[49][46]="3.536469240253245E+49"; + results[49][47]="23612.38381341809"; + results[49][48]="2.928407865794388E+44"; + results[49][49]="1"; + results[49][50]="9.869157486415798E+39"; + results[49][51]="0.000002489085172882200"; + results[49][52]="1.768437487955098E+35"; + results[49][53]="5.184777736365438E-11"; + results[49][54]="7.211887672551995E+29"; + results[49][55]="262593.2892956190"; + results[49][56]="3.031234734820807E+53"; + results[49][57]="2.633841694453359"; + results[49][58]="2.422826902946868E+48"; + results[49][59]="0.00005168001420772782"; + results[49][60]="1.251427730987327E+44"; + results[49][61]="2.389007726094191E-10"; + results[49][62]="8.946980828098355E+38"; + results[49][63]="2.031939678710256E-15"; + results[49][64]="9.348627889203813E+33"; + results[49][65]="22.04586429236709"; + results[49][66]="1.965412665648703E+57"; + results[49][67]="0.0007116433335235624"; + results[49][68]="4.192923222382870E+52"; + results[49][69]="3.160782854106722E-9"; + results[49][70]="3.078564958187471E+47"; + results[49][71]="1.931646524711914E-14"; + results[49][72]="7.503497828319405E+42"; + results[49][73]="3.660260159965578E-19"; + results[49][74]="2.095639710265825E+37"; + results[50][0]="1.709844323220016E-10"; + results[50][1]="3.759744355260485E-16"; + results[50][2]="8.435652158126978E-21"; + results[50][3]="9.836890501942623E-26"; + results[50][4]="6.865836997247178E-31"; + results[50][5]="2.142098545603874E-15"; + results[50][6]="0.000001331216165209868"; + results[50][7]="2.054259145142100E-20"; + results[50][8]="1.962463397384800E-12"; + results[50][9]="1.914863076500820E-25"; + results[50][10]="6.988413545126361E-17"; + results[50][11]="2.320459716168051E-30"; + results[50][12]="3.115745966294182E-22"; + results[50][13]="2.919530698256769E-35"; + results[50][14]="2.347518403243974E-27"; + results[50][15]="2.521812904573124E-19"; + results[50][16]="0.002897060148147514"; + results[50][17]="2.984646087638879E-24"; + results[50][18]="2.273648577130825E-8"; + results[50][19]="1.923742686763465E-29"; + results[50][20]="7.694205614150171E-13"; + results[50][21]="3.586825837344361E-34"; + results[50][22]="4.420319595457841E-18"; + results[50][23]="3.931189704235886E-39"; + results[50][24]="2.341389516707296E-23"; + results[50][25]="2.343886782477983E-23"; + results[50][26]="62.78037530003851"; + results[50][27]="2.732453635286172E-28"; + results[50][28]="0.0009682143677835323"; + results[50][29]="4.664342886746792E-33"; + results[50][30]="2.182085929066454E-9"; + results[50][31]="5.691134427004636E-38"; + results[50][32]="4.436295249628704E-14"; + results[50][33]="2.448816329168904E-43"; + results[50][34]="1.173647186900553E-18"; + results[50][35]="2.881040149156310E-27"; + results[50][36]="607087.2166127371"; + results[50][37]="2.437587128400801E-32"; + results[50][38]="2.971124313834108"; + results[50][39]="2.597976247857604E-37"; + results[50][40]="0.00005386910081262968"; + results[50][41]="4.159315669124470E-42"; + results[50][42]="1.945414142323337E-10"; + results[50][43]="7.503262648537709E-47"; + results[50][44]="5.110448232230970E-15"; + results[50][45]="6.581496401425599E-31"; + results[50][46]="3583354754.568408"; + results[50][47]="2.392543015543006E-36"; + results[50][48]="29672.31873465527"; + results[50][49]="1.013257718682096E-40"; + results[50][50]="1"; + results[50][51]="2.522084763880048E-46"; + results[50][52]="0.00001791882934677280"; + results[50][53]="5.253516061023365E-51"; + results[50][54]="7.307500850481565E-11"; + results[50][55]="2.660746772529066E-35"; + results[50][56]="30714219921944.59"; + results[50][57]="2.668760426691597E-40"; + results[50][58]="245494806.0441551"; + results[50][59]="5.236517329758060E-45"; + results[50][60]="12680.18807795731"; + results[50][61]="2.420680518456101E-50"; + results[50][62]="0.09065597382971390"; + results[50][63]="2.058878563349585E-55"; + results[50][64]="9.472569367822474E-7"; + results[50][65]="2.233814215925896E-39"; + results[50][66]="1.991469553864102E+17"; + results[50][67]="7.210781006414067E-44"; + results[50][68]="4248511818920.849"; + results[50][69]="3.202687624001662E-49"; + results[50][70]="31193797.06347679"; + results[50][71]="1.957255750929793E-54"; + results[50][72]="760.2977091658982"; + results[50][73]="3.708786859469685E-59"; + results[50][74]="0.002123423112003558"; + results[51][0]="6.779487936755711E+35"; + results[51][1]="1.490728784815458E+30"; + results[51][2]="3.344713975889266E+25"; + results[51][3]="3.900301307403033E+20"; + results[51][4]="2722286378148756"; + results[51][5]="8.493364601705167E+30"; + results[51][6]="5.278237211829022E+39"; + results[51][7]="8.145083680620504E+25"; + results[51][8]="7.781115946181321E+33"; + results[51][9]="7.592381921196569E+20"; + results[51][10]="2.770887658182901E+29"; + results[51][11]="9200561969210697"; + results[51][12]="1.235385111125618E+24"; + results[51][13]="115758627151.1858"; + results[51][14]="9.307848954420085E+18"; + results[51][15]="9.998922084971854E+26"; + results[51][16]="1.148676757275435E+43"; + results[51][17]="1.183404352773304E+22"; + results[51][18]="9.014957029568579E+37"; + results[51][19]="7.627589343206385E+16"; + results[51][20]="3.050732364091198E+33"; + results[51][21]="1422167045577.915"; + results[51][22]="1.752645136580379E+28"; + results[51][23]="15587064.16428300"; + results[51][24]="9.283548079903686E+22"; + results[51][25]="9.293449673246033E+22"; + results[51][26]="2.489225429658254E+47"; + results[51][27]="1.083410706261310E+18"; + results[51][28]="3.838944597143528E+42"; + results[51][29]="18493997321370.88"; + results[51][30]="8.651913529303709E+36"; + results[51][31]="225651988.7241708"; + results[51][32]="1.758979441596474E+32"; + results[51][33]="970.9492576298560"; + results[51][34]="4.653480341774795E+27"; + results[51][35]="1.142324869654275E+19"; + results[51][36]="2.407084905737968E+51"; + results[51][37]="96649690895033.44"; + results[51][38]="1.178043004892208E+46"; + results[51][39]="1030090774.530830"; + results[51][40]="2.135895731345520E+41"; + results[51][41]="16491.57763724665"; + results[51][42]="7.713516096621809E+35"; + results[51][43]="0.2975023978573374"; + results[51][44]="2.026279332645786E+31"; + results[51][45]="2609546076992446"; + results[51][46]="1.420790770352885E+55"; + results[51][47]="9486370362.359466"; + results[51][48]="1.176499662485828E+50"; + results[51][49]="401754.0303139023"; + results[51][50]="3.964973795970168E+45"; + results[51][51]="1"; + results[51][52]="7.104768881441538E+40"; + results[51][53]="0.00002083005351866606"; + results[51][54]="2.897404938618912E+35"; + results[51][55]="105497912307.8994"; + results[51][56]="1.217810771541752E+59"; + results[51][57]="1058156.515955435"; + results[51][58]="9.733804730118538E+53"; + results[51][59]="20.76265399463438"; + results[51][60]="5.027661345707404E+49"; + results[51][61]="0.00009597934824093921"; + results[51][62]="3.594485606829729E+44"; + results[51][63]="8.163399552765810E-10"; + results[51][64]="3.755848932392581E+39"; + results[51][65]="8857014.831211825"; + results[51][66]="7.896124596543564E+62"; + results[51][67]="285.9055773891117"; + results[51][68]="1.684523803389072E+58"; + results[51][69]="0.001269857250584455"; + results[51][70]="1.236825879534966E+53"; + results[51][71]="7.760467764448543E-9"; + results[51][72]="3.014560493978934E+48"; + results[51][73]="1.470524271263579E-13"; + results[51][74]="8.419316996851535E+42"; + results[52][0]="0.000009542165339768479"; + results[52][1]="2.098208695724657E-11"; + results[52][2]="4.707702715884311E-16"; + results[52][3]="5.489694840870986E-21"; + results[52][4]="3.831632560574457E-26"; + results[52][5]="1.195445586399130E-10"; + results[52][6]="0.07429146957357580"; + results[52][7]="1.146424861461206E-15"; + results[52][8]="1.095196209197808E-7"; + results[52][9]="1.068631794769388E-20"; + results[52][10]="3.900039120795011E-12"; + results[52][11]="1.294983992124446E-25"; + results[52][12]="1.738811116505963E-17"; + results[52][13]="1.629308835837862E-30"; + results[52][14]="1.310084692372364E-22"; + results[52][15]="1.407353603167891E-14"; + results[52][16]="161.6768647148971"; + results[52][17]="1.665647922572809E-19"; + results[52][18]="0.001268859998122764"; + results[52][19]="1.073587258148610E-24"; + results[52][20]="4.293922033213574E-8"; + results[52][21]="2.001707682980056E-29"; + results[52][22]="2.466857354302527E-13"; + results[52][23]="2.193887573879874E-34"; + results[52][24]="1.306664331355432E-18"; + results[52][25]="1.308057985886294E-18"; + results[52][26]="3503598.035624204"; + results[52][27]="1.524906333112822E-23"; + results[52][28]="54.03334944745757"; + results[52][29]="2.603039962310287E-28"; + results[52][30]="0.0001217761432311118"; + results[52][31]="3.176063746613903E-33"; + results[52][32]="2.475772922312967E-9"; + results[52][33]="1.366616245837476E-38"; + results[52][34]="6.549798338873787E-14"; + results[52][35]="1.607828331528359E-22"; + results[52][36]="33879848111.95684"; + results[52][37]="1.360349541383301E-27"; + results[52][38]="165810.1796906287"; + results[52][39]="1.449858245525120E-32"; + results[52][40]="3.006284605435543"; + results[52][41]="2.321198326426144E-37"; + results[52][42]="0.00001085681494407283"; + results[52][43]="4.187362077807307E-42"; + results[52][44]="2.851998941075561E-10"; + results[52][45]="3.672949986886802E-26"; + results[52][46]="199977056827865.5"; + results[52][47]="1.335211675518248E-31"; + results[52][48]="1655929534.258291"; + results[52][49]="5.654709351113861E-36"; + results[52][50]="55807.21712605078"; + results[52][51]="1.407505320281584E-41"; + results[52][52]="1"; + results[52][53]="2.931841114927259E-46"; + results[52][54]="0.000004078112866116254"; + results[52][55]="1.484888728519684E-30"; + results[52][56]="1.714075140041236E+18"; + results[52][57]="1.489360925897899E-35"; + results[52][58]="13700381944223.89"; + results[52][59]="2.922354596061357E-40"; + results[52][60]="707646009.2657238"; + results[52][61]="1.350914432862808E-45"; + results[52][62]="5059.257615288420"; + results[52][63]="1.149002830210218E-50"; + results[52][64]="0.05286377354516463"; + results[52][65]="1.246629549674354E-34"; + results[52][66]="1.111383737924134E+22"; + results[52][67]="4.024136212733528E-39"; + results[52][68]="2.370976215411088E+17"; + results[52][69]="1.787330836195764E-44"; + results[52][70]="1740839005707.414"; + results[52][71]="1.092289966633505E-49"; + results[52][72]="42430099.33586029"; + results[52][73]="2.069770735406687E-54"; + results[52][74]="118.5023346620570"; + results[53][0]="3.254666595398102E+40"; + results[53][1]="7.156624842464271E+34"; + results[53][2]="1.605715497990454E+30"; + results[53][3]="1.872439407756647E+25"; + results[53][4]="1.306903208726412E+20"; + results[53][5]="4.077456927364187E+35"; + results[53][6]="2.533952784662378E+44"; + results[53][7]="3.910255762579582E+30"; + results[53][8]="3.735523741793833E+38"; + results[53][9]="3.644917145504665E+25"; + results[53][10]="1.330235496370605E+34"; + results[53][11]="4.416965112915320E+20"; + results[53][12]="5.930782222996091E+28"; + results[53][13]="5557288993398558"; + results[53][14]="4.468470974440470E+23"; + results[53][15]="4.800238307602860E+31"; + results[53][16]="5.514516591357251E+47"; + results[53][17]="5.681235296456829E+26"; + results[53][18]="4.327860714083221E+42"; + results[53][19]="3.661819369005083E+21"; + results[53][20]="1.464582105541592E+38"; + results[53][21]="6.827476675964822E+16"; + results[53][22]="8.414021284245927E+32"; + results[53][23]="748296885090.3456"; + results[53][24]="4.456804718040974E+27"; + results[53][25]="4.461558231196124E+27"; + results[53][26]="1.195016338977540E+52"; + results[53][27]="5.201190219172758E+22"; + results[53][28]="1.842983549563809E+47"; + results[53][29]="8.878516468907865E+17"; + results[53][30]="4.153572395553678E+41"; + results[53][31]="10833000910053.42"; + results[53][32]="8.444430735716701E+36"; + results[53][33]="46612902.68696511"; + results[53][34]="2.234022268644081E+32"; + results[53][35]="5.484022730093443E+23"; + results[53][36]="1.155582679411242E+56"; + results[53][37]="4.639915630001839E+18"; + results[53][38]="5.655496774583657E+50"; + results[53][39]="49452142482867.52"; + results[53][40]="1.025391379542793E+46"; + results[53][41]="791720367.9994558"; + results[53][42]="3.703070704887838E+40"; + results[53][43]="14282.36358541959"; + results[53][44]="9.727672234879347E+35"; + results[53][45]="1.252779343391509E+20"; + results[53][46]="6.820869514711989E+59"; + results[53][47]="455417474269022.8"; + results[53][48]="5.648087564592924E+54"; + results[53][49]="19287229864.95862"; + results[53][50]="1.903487090139787E+50"; + results[53][51]="48007.55788283925"; + results[53][52]="3.410826033199997E+45"; + results[53][53]="1"; + results[53][54]="1.390973353007717E+40"; + results[53][55]="5064697131640181"; + results[53][56]="5.846412110513578E+63"; + results[53][57]="50799510188.83404"; + results[53][58]="4.672961940014202E+58"; + results[53][59]="996764.3134487737"; + results[53][60]="2.413657430693617E+54"; + results[53][61]="4.607734116234075"; + results[53][62]="1.725624758289108E+49"; + results[53][63]="0.00003919048765501487"; + results[53][64]="1.803091350210368E+44"; + results[53][65]="425203652178.5674"; + results[53][66]="3.790736586186758E+67"; + results[53][67]="13725628.55553436"; + results[53][68]="8.086987399622141E+62"; + results[53][69]="60.96274546037631"; + results[53][70]="5.937699000276846E+57"; + results[53][71]="0.0003725611053996715"; + results[53][72]="1.447216874060142E+53"; + results[53][73]="7.059627907080629E-9"; + results[53][74]="4.041908480603224E+47"; + results[54][0]="2.339848271255880"; + results[54][1]="0.000005145048125465107"; + results[54][2]="1.154382644727447E-10"; + results[54][3]="1.346136073496915E-15"; + results[54][4]="9.395602050179328E-21"; + results[54][5]="0.00002931369546761954"; + results[54][6]="18217.11953851009"; + results[54][7]="2.811165112634539E-10"; + results[54][8]="0.02685546587730432"; + results[54][9]="2.620407599917871E-15"; + results[54][10]="9.563342773563720E-7"; + results[54][11]="3.175449122274317E-20"; + results[54][12]="4.263764083022794E-12"; + results[54][13]="3.995251944533639E-25"; + results[54][14]="3.212477769454207E-17"; + results[54][15]="3.450992283369952E-9"; + results[54][16]="39645019.65068670"; + results[54][17]="4.084359548780881E-14"; + results[54][18]="311.1390095809556"; + results[54][19]="2.632558963898978E-19"; + results[54][20]="0.01052918880419032"; + results[54][21]="4.908416585552623E-24"; + results[54][22]="6.049016874444212E-8"; + results[54][23]="5.379663697167850E-29"; + results[54][24]="3.204090652350726E-13"; + results[54][25]="3.207508052939222E-13"; + results[54][26]="859122381024.4411"; + results[54][27]="3.739245045871056E-18"; + results[54][28]="13249596.37493202"; + results[54][29]="6.382952232485079E-23"; + results[54][30]="29.86090557789883"; + results[54][31]="7.788072206149096E-28"; + results[54][32]="0.0006070878868712484"; + results[54][33]="3.351099615688073E-33"; + results[54][34]="1.606085597408052E-8"; + results[54][35]="3.942579286824783E-17"; + results[54][36]="8307726937489580"; + results[54][37]="3.335732938354928E-22"; + results[54][38]="40658555840.44592"; + results[54][39]="3.555218536425345E-27"; + results[54][40]="737175.4299430523"; + results[54][41]="5.691844249118863E-32"; + results[54][42]="2.662215416909782"; + results[54][43]="1.026789158436190E-36"; + results[54][44]="0.00006993428173045223"; + results[54][45]="9.006494198343990E-21"; + results[54][46]="4.903666558358682E+19"; + results[54][47]="3.274092011067419E-26"; + results[54][48]="406052894714338.1"; + results[54][49]="1.386599522072340E-30"; + results[54][50]="13684569053.92081"; + results[54][51]="3.451364311115807E-36"; + results[54][52]="245211.4575613350"; + results[54][53]="7.189210331295627E-41"; + results[54][54]="1"; + results[54][55]="3.641117294367092E-25"; + results[54][56]="4.203108634591608E+23"; + results[54][57]="3.652083634743231E-30"; + results[54][58]="3.359490625690135E+18"; + results[54][59]="7.165948300112717E-35"; + results[54][60]="173522909369510.1"; + results[54][61]="3.312596971229334E-40"; + results[54][62]="1240587934.023157"; + results[54][63]="2.817486587379466E-45"; + results[54][64]="12962.80296320216"; + results[54][65]="3.056878489146789E-29"; + results[54][66]="2.725240262863416E+27"; + results[54][67]="9.867643061497388E-34"; + results[54][68]="5.813905336242105E+22"; + results[54][69]="4.382739994878830E-39"; + results[54][70]="4.268736699691402E+17"; + results[54][71]="2.678420147978238E-44"; + results[54][72]="10404346502618.53"; + results[54][73]="5.075314988468698E-49"; + results[54][74]="29058130.20690411"; + results[55][0]="6.426182081186150E+24"; + results[55][1]="1.413041028209840E+19"; + results[55][2]="317040773861723.4"; + results[55][3]="3697041222.976872"; + results[55][4]="25804.17297930660"; + results[55][5]="8.050741873371843E+19"; + results[55][6]="5.003167452664180E+28"; + results[55][7]="772061124475030.9"; + results[55][8]="7.375611304488999E+22"; + results[55][9]="7196712953.937829"; + results[55][10]="2.626485773572434E+18"; + results[55][11]="87210.84396777946"; + results[55][12]="11710043204647.52"; + results[55][13]="1.097259885232042"; + results[55][14]="88227802.34034201"; + results[55][15]="9477838818070297"; + results[55][16]="1.088814680922766E+32"; + results[55][17]="112173248444.9072"; + results[55][18]="8.545152062590683E+26"; + results[55][19]="723008.5578324046"; + results[55][20]="2.891746668111807E+22"; + results[55][21]="13.48052311620413"; + results[55][22]="1.661307885852018E+17"; + results[55][23]="0.0001477476077326687"; + results[55][24]="879974577393.4671"; + results[55][25]="880913135619.4773"; + results[55][26]="2.359502074688797E+36"; + results[55][27]="10269499.01244810"; + results[55][28]="3.638882052887863E+31"; + results[55][29]="175.3020217821514"; + results[55][30]="8.201028191015562E+25"; + results[55][31]="0.002138923735908606"; + results[55][32]="1.667312085250398E+21"; + results[55][33]="9.203492622641725E-9"; + results[55][34]="4.410969127231112E+16"; + results[55][35]="108279381.5218219"; + results[55][36]="2.281642217442943E+40"; + results[55][37]="916.1289430349850"; + results[55][38]="1.116650537551916E+35"; + results[55][39]="0.009764086814575751"; + results[55][40]="2.024585780533582E+30"; + results[55][41]="1.563213648163519E-7"; + results[55][42]="7.311534349712662E+24"; + results[55][43]="2.819983745167070E-12"; + results[55][44]="1.920681924711475E+20"; + results[55][45]="24735.52338530067"; + results[55][46]="1.346747759525569E+44"; + results[55][47]="0.08991998187294129"; + results[55][48]="1.115187624805477E+39"; + results[55][49]="0.000003808170432239159"; + results[55][50]="3.758343373088038E+34"; + results[55][51]="9.478860558694889E-12"; + results[55][52]="6.734511352893900E+29"; + results[55][53]="1.974451727335874E-16"; + results[55][54]="2.746409739524259E+24"; + results[55][55]="1"; + results[55][56]="1.154345849032090E+48"; + results[55][57]="0.00001003011806401597"; + results[55][58]="9.226537774235836E+42"; + results[55][59]="1.968063020435687E-10"; + results[55][60]="4.765650083230079E+38"; + results[55][61]="9.097748584902804E-16"; + results[55][62]="3.407162784737478E+33"; + results[55][63]="7.737972604557934E-21"; + results[55][64]="3.560116830967234E+28"; + results[55][65]="0.00008395440855134944"; + results[55][66]="7.484626400471738E+51"; + results[55][67]="2.710059101024540E-9"; + results[55][68]="1.596736624012738E+47"; + results[55][69]="1.203679980773772E-14"; + results[55][70]="1.172370004749711E+42"; + results[55][71]="7.356039180945439E-20"; + results[55][72]="2.857459856817670E+37"; + results[55][73]="1.393889451548389E-24"; + results[55][74]="7.980553181260552E+31"; + results[56][0]="5.566946930657264E-24"; + results[56][1]="1.224105435467771E-29"; + results[56][2]="2.746497283526938E-34"; + results[56][3]="3.202715395976701E-39"; + results[56][4]="2.235393578184839E-44"; + results[56][5]="6.974289273983464E-29"; + results[56][6]="4.334201449989442E-20"; + results[56][7]="6.688299915682963E-34"; + results[56][8]="6.389429399060419E-26"; + results[56][9]="6.234451278160885E-39"; + results[56][10]="2.275302307167926E-30"; + results[56][11]="7.555001305796269E-44"; + results[56][12]="1.014431092247293E-35"; + results[56][13]="9.505469146461484E-49"; + results[56][14]="7.643099545454276E-41"; + results[56][15]="8.210571230465625E-33"; + results[56][16]="9.432309059158727E-17"; + results[56][17]="9.717473193927414E-38"; + results[56][18]="7.402592619669160E-22"; + results[56][19]="6.263361699083869E-43"; + results[56][20]="2.505095566061517E-26"; + results[56][21]="1.167806262525866E-47"; + results[56][22]="1.439176904603599E-31"; + results[56][23]="1.279924970982950E-52"; + results[56][24]="7.623144988404633E-37"; + results[56][25]="7.631275638562877E-37"; + results[56][26]="2.044016597510373E-12"; + results[56][27]="8.896379729748234E-42"; + results[56][28]="3.152332601134258E-17"; + results[56][29]="1.518626518466200E-46"; + results[56][30]="7.104481033905097E-23"; + results[56][31]="1.852931456982391E-51"; + results[56][32]="1.444378291521926E-27"; + results[56][33]="7.972907452613771E-57"; + results[56][34]="3.821185072852883E-32"; + results[56][35]="9.380150811181354E-41"; + results[56][36]="1.976567264789908E-8"; + results[56][37]="7.936347185751581E-46"; + results[56][38]="9.673448719794147E-14"; + results[56][39]="8.458545437455212E-51"; + results[56][40]="1.753881457824083E-18"; + results[56][41]="1.354198700046664E-55"; + results[56][42]="6.333920077629528E-24"; + results[56][43]="2.442927955717607E-60"; + results[56][44]="1.663870430445044E-28"; + results[56][45]="2.142817371937639E-44"; + results[56][46]="0.0001166676140131492"; + results[56][47]="7.789691620439270E-50"; + results[56][48]="9.660775630982277E-10"; + results[56][49]="3.298985685643760E-54"; + results[56][50]="3.255820927704967E-14"; + results[56][51]="8.211456355686501E-60"; + results[56][52]="5.834049958719679E-19"; + results[56][53]="1.710450753551403E-64"; + results[56][54]="2.379191419821972E-24"; + results[56][55]="8.662915025323579E-49"; + results[56][56]="1"; + results[56][57]="8.689006048253338E-54"; + results[56][58]="0.000007992871271614319"; + results[56][59]="1.704916271051602E-58"; + results[56][60]="4.128442171144841E-10"; + results[56][61]="7.881302291277083E-64"; + results[56][62]="2.951596168162563E-15"; + results[56][63]="6.703339914156715E-69"; + results[56][64]="3.084098958689342E-20"; + results[56][65]="7.272899072816394E-53"; + results[56][66]="6483.868250358015"; + results[56][67]="2.347701170578040E-57"; + results[56][68]="0.1383239369164440"; + results[56][69]="1.042737739112631E-62"; + results[56][70]="0.000001015614172938495"; + results[56][71]="6.372474234748120E-68"; + results[56][72]="2.475393192788476E-11"; + results[56][73]="1.207514587345858E-72"; + results[56][74]="6.913485406433592E-17"; + results[57][0]="6.406885781574903E+29"; + results[57][1]="1.408798001370755E+24"; + results[57][2]="3.160887756637065E+19"; + results[57][3]="368593988563342.1"; + results[57][4]="2572668917.216598"; + results[57][5]="8.026567406274776E+24"; + results[57][6]="4.988144128246639E+33"; + results[57][7]="7.697428081578381E+19"; + results[57][8]="7.353464094256007E+27"; + results[57][9]="717510293299212.7"; + results[57][10]="2.618599060159830E+23"; + results[57][11]="8694897050.180986"; + results[57][12]="1.167488072414467E+18"; + results[57][13]="109396.5074218388"; + results[57][14]="8796287518974.268"; + results[57][15]="9.449379117552936E+20"; + results[57][16]="1.085545228853283E+37"; + results[57][17]="1.118364188028252E+16"; + results[57][18]="8.519492999037822E+31"; + results[57][19]="72083753473.07911"; + results[57][20]="2.883063439189447E+27"; + results[57][21]="1344004.430472940"; + results[57][22]="1.656319372562645E+22"; + results[57][23]="14.73039567328003"; + results[57][24]="8.773322225891460E+16"; + results[57][25]="8.782679625475591E+16"; + results[57][26]="2.352417049958506E+41"; + results[57][27]="1023866214425.824"; + results[57][28]="3.627955353728795E+36"; + results[57][29]="17477563.14166077"; + results[57][30]="8.176402449775297E+30"; + results[57][31]="213.2501055578004"; + results[57][32]="1.662305542775258E+26"; + results[57][33]="0.0009175856718636401"; + results[57][34]="4.397724033833556E+21"; + results[57][35]="10795424423794.65"; + results[57][36]="2.274790987384843E+45"; + results[57][37]="91337802.52514549"; + results[57][38]="1.113297501011488E+40"; + results[57][39]="973.4767579262472"; + results[57][40]="2.018506429946206E+35"; + results[57][41]="0.01558519688588414"; + results[57][42]="7.289579547366953E+29"; + results[57][43]="2.811516003270229E-7"; + results[57][44]="1.914914572742777E+25"; + results[57][45]="2466124847.925947"; + results[57][46]="1.342703795638417E+49"; + results[57][47]="8964.997350882443"; + results[57][48]="1.111838981044821E+44"; + results[57][49]="0.3796735400255500"; + results[57][50]="3.747057959937145E+39"; + results[57][51]="9.450397790132930E-7"; + results[57][52]="6.714289213658032E+34"; + results[57][53]="1.968522917411524E-11"; + results[57][54]="2.738162922904441E+29"; + results[57][55]="99699.72373382105"; + results[57][56]="1.150879622417825E+53"; + results[57][57]="1"; + results[57][58]="9.198832671109769E+47"; + results[57][59]="0.00001962153394281874"; + results[57][60]="4.751339967101001E+43"; + results[57][61]="9.070430205145709E-11"; + results[57][62]="3.396931883544830E+38"; + results[57][63]="7.714737309343017E-16"; + results[57][64]="3.549426645075597E+33"; + results[57][65]="8.370231338805882"; + results[57][66]="7.462151843778957E+56"; + results[57][67]="0.0002701921436744741"; + results[57][68]="1.591942002897441E+52"; + results[57][69]="1.200065615470761E-9"; + results[57][70]="1.168849655873646E+47"; + results[57][71]="7.333950741154235E-15"; + results[57][72]="2.848879583052055E+42"; + results[57][73]="1.389703932348617E-19"; + results[57][74]="7.956589474147437E+36"; + results[58][0]="6.964890014465238E-19"; + results[58][1]="1.531496497153692E-24"; + results[58][2]="3.436183556816159E-29"; + results[58][3]="4.006964815448415E-34"; + results[58][4]="2.796734117467348E-39"; + results[58][5]="8.725636929437082E-24"; + results[58][6]="5.422583828394453E-15"; + results[58][7]="8.367831394252054E-29"; + results[58][8]="7.993910050511732E-21"; + results[58][9]="7.800014620905704E-34"; + results[58][10]="2.846664521232035E-25"; + results[58][11]="9.452174380221672E-39"; + results[58][12]="1.269169811166505E-30"; + results[58][13]="1.189243367426543E-43"; + results[58][14]="9.562395396755339E-36"; + results[58][15]="1.027236765294149E-27"; + results[58][16]="1.180090200208327E-11"; + results[58][17]="1.215767508784710E-32"; + results[58][18]="9.261493608634160E-17"; + results[58][19]="7.836184878051788E-38"; + results[58][20]="3.134162281529605E-21"; + results[58][21]="1.461059765435212E-42"; + results[58][22]="1.800575607560021E-26"; + results[58][23]="1.601333147361503E-47"; + results[58][24]="9.537429953960697E-32"; + results[58][25]="9.547602331172774E-32"; + results[58][26]="2.557299533609959E-7"; + results[58][27]="1.113039285562200E-36"; + results[58][28]="3.943930152271277E-12"; + results[58][29]="1.899976199866263E-41"; + results[58][30]="8.888521774566507E-18"; + results[58][31]="2.318230075295776E-46"; + results[58][32]="1.807083140011844E-22"; + results[58][33]="9.975022969440973E-52"; + results[58][34]="4.780741416946553E-27"; + results[58][35]="1.173564604311067E-35"; + results[58][36]="0.002472912671331814"; + results[58][37]="9.929281876384678E-41"; + results[58][38]="1.210259541417636E-8"; + results[58][39]="1.058261186752084E-45"; + results[58][40]="2.194307149738259E-13"; + results[58][41]="1.694258113296445E-50"; + results[58][42]="7.924461513753702E-19"; + results[58][43]="3.056383460588637E-55"; + results[58][44]="2.081693016068045E-23"; + results[58][45]="2.680910650403675E-39"; + results[58][46]="14.59645852517100"; + results[58][47]="9.745798919724109E-45"; + results[58][48]="0.0001208673992447659"; + results[58][49]="4.127410005162593E-49"; + results[58][50]="4.073405935195787E-9"; + results[58][51]="1.027347504625585E-54"; + results[58][52]="7.299066581290476E-14"; + results[58][53]="2.139970350361897E-59"; + results[58][54]="2.976641733579987E-19"; + results[58][55]="1.083830169527293E-43"; + results[58][56]="125111.4857249578"; + results[58][57]="1.087094456170119E-48"; + results[58][58]="1"; + results[58][59]="2.133046077079208E-53"; + results[58][60]="0.00005165155337615015"; + results[58][61]="9.860414391091898E-59"; + results[58][62]="3.692785818589105E-10"; + results[58][63]="8.386648159795576E-64"; + results[58][64]="3.858562028444187E-15"; + results[58][65]="9.099232085277269E-48"; + results[58][66]="811206390.0471738"; + results[58][67]="2.937243814892411E-52"; + results[58][68]="17305.91325894164"; + results[58][69]="1.304584677618646E-57"; + results[58][70]="0.1270649980996593"; + results[58][71]="7.972697192533506E-63"; + results[58][72]="0.000003097001201032130"; + results[58][73]="1.510739440573996E-67"; + results[58][74]="8.649564307367203E-12"; + results[59][0]="3.265231862221327E+34"; + results[59][1]="7.179856607930284E+28"; + results[59][2]="1.610927955912394E+24"; + results[59][3]="1.878517702221967E+19"; + results[59][4]="131114566512174.5"; + results[59][5]="4.090693128103987E+29"; + results[59][6]="2.542178477372429E+38"; + results[59][7]="3.922949196535957E+24"; + results[59][8]="3.747649962375796E+32"; + results[59][9]="3.656749239841227E+19"; + results[59][10]="1.334553693809554E+28"; + results[59][11]="443130342180164.7"; + results[59][12]="5.950034670157650E+22"; + results[59][13]="5575329010.496484"; + results[59][14]="4.482976481149991E+17"; + results[59][15]="4.815820794179703E+25"; + results[59][16]="5.532417761102616E+41"; + results[59][17]="5.699677666829715E+20"; + results[59][18]="4.341909773142817E+36"; + results[59][19]="3673706331174018"; + results[59][20]="1.469336417627336E+32"; + results[59][21]="68496399638.76680"; + results[59][22]="8.441334797725325E+26"; + results[59][23]="750725.9991093196"; + results[59][24]="4.471272353863239E+21"; + results[59][25]="4.476041297826234E+21"; + results[59][26]="1.198895589312202E+46"; + results[59][27]="5.218074271917703E+16"; + results[59][28]="1.848966224710778E+41"; + results[59][29]="890733782210.6083"; + results[59][30]="4.167055681580780E+35"; + results[59][31]="10868166.89150073"; + results[59][32]="8.471842964059609E+30"; + results[59][33]="46.76421703510423"; + results[59][34]="2.241274329850788E+26"; + results[59][35]="5.501824910965054E+17"; + results[59][36]="1.159333920586464E+50"; + results[59][37]="4654977678672.980"; + results[59][38]="5.673855592818941E+44"; + results[59][39]="49612673.54342235"; + results[59][40]="1.028719994995578E+40"; + results[59][41]="794.2904429033256"; + results[59][42]="3.715091576739267E+34"; + results[59][43]="0.01432872685419792"; + results[59][44]="9.759250109207765E+29"; + results[59][45]="125684610342532.4"; + results[59][46]="6.843011354521704E+53"; + results[59][47]="456895846.0132791"; + results[59][48]="5.666422331123308E+48"; + results[59][49]="19349.83988163200"; + results[59][50]="1.909666171287554E+44"; + results[59][51]="0.04816339954701486"; + results[59][52]="3.421898223260666E+39"; + results[59][53]="0.000001003246190205216"; + results[59][54]="1.395488717081967E+34"; + results[59][55]="5081138101.861297"; + results[59][56]="5.865390676242383E+57"; + results[59][57]="50964.41506123880"; + results[59][58]="4.688131263293223E+52"; + results[59][59]="1"; + results[59][60]="2.421492621803881E+48"; + results[59][61]="0.000004622691697590433"; + results[59][62]="1.731226464477344E+43"; + results[59][63]="3.931770743217822E-11"; + results[59][64]="1.808944527690531E+38"; + results[59][65]="426583.9441094915"; + results[59][66]="3.803042038163392E+61"; + results[59][67]="13.77018455651177"; + results[59][68]="8.113239298908500E+56"; + results[59][69]="0.00006116064212757286"; + results[59][70]="5.956973900613066E+51"; + results[59][71]="3.737705096108644E-10"; + results[59][72]="1.451914815301539E+47"; + results[59][73]="7.082544802045064E-15"; + results[59][74]="4.055029284323338E+41"; + results[60][0]="1.348437667255375E-14"; + results[60][1]="2.965054092372860E-20"; + results[60][2]="6.652623846164517E-25"; + results[60][3]="7.757685013397121E-30"; + results[60][4]="5.414617634246651E-35"; + results[60][5]="1.689327108110964E-19"; + results[60][6]="1.049839447984212E-10"; + results[60][7]="1.620054160484525E-24"; + results[60][8]="1.547661111428041E-16"; + results[60][9]="1.510121982992930E-29"; + results[60][10]="5.511285402205287E-21"; + results[60][11]="1.829988405457360E-34"; + results[60][12]="2.457176460742298E-26"; + results[60][13]="2.302434853732143E-39"; + results[60][14]="1.851327747515669E-31"; + results[60][15]="1.988781940038362E-23"; + results[60][16]="2.284713862551959E-7"; + results[60][17]="2.353786922788046E-28"; + results[60][18]="1.793071650950697E-12"; + results[60][19]="1.517124726334002E-33"; + results[60][20]="6.067895497169673E-17"; + results[60][21]="2.828685044174972E-38"; + results[60][22]="3.486004756618662E-22"; + results[60][23]="3.100261352644838E-43"; + results[60][24]="1.846494312475907E-27"; + results[60][25]="1.848463735764689E-27"; + results[60][26]="0.004951060261414672"; + results[60][27]="2.154899926158156E-32"; + results[60][28]="7.635646741444116E-8"; + results[60][29]="3.678449292763319E-37"; + results[60][30]="1.720862431732932E-13"; + results[60][31]="4.488209789961917E-42"; + results[60][32]="3.498603666092752E-18"; + results[60][33]="1.931214516782934E-47"; + results[60][34]="9.255755353824531E-23"; + results[60][35]="2.272079981340803E-31"; + results[60][36]="47.87683060222675"; + results[60][37]="1.922358811568574E-36"; + results[60][38]="0.0002343123221491472"; + results[60][39]="2.048846777260200E-41"; + results[60][40]="4.248288785737604E-9"; + results[60][41]="3.280168751088831E-46"; + results[60][42]="1.534215526112867E-14"; + results[60][43]="5.917311795698881E-51"; + results[60][44]="4.030262170254993E-19"; + results[60][45]="5.190377588220942E-35"; + results[60][46]="282594.7637793763"; + results[60][47]="1.886835590161396E-40"; + results[60][48]="2.340053519098534"; + results[60][49]="7.990872946462834E-45"; + results[60][50]="0.00007886318356258115"; + results[60][51]="1.988996336942614E-50"; + results[60][52]="1.413135928001109E-9"; + results[60][53]="4.143090014694539E-55"; + results[60][54]="5.762927809552455E-15"; + results[60][55]="2.098349611355051E-39"; + results[60][56]="2422221163.685803"; + results[60][57]="2.104669434147318E-44"; + results[60][58]="19360.50195272046"; + results[60][59]="4.129684274053472E-49"; + results[60][60]="1"; + results[60][61]="1.909025720733676E-54"; + results[60][62]="0.000007149418705177280"; + results[60][63]="1.623697180745017E-59"; + results[60][64]="7.470369768638670E-11"; + results[60][65]="1.761657005552672E-43"; + results[60][66]="15705362898567.62"; + results[60][67]="5.686651461384062E-48"; + results[60][68]="335051167.4433505"; + results[60][69]="2.525741419852499E-53"; + results[60][70]="2460.042143830875"; + results[60][71]="1.543554195644939E-58"; + results[60][72]="0.05995949780016016"; + results[60][73]="2.924867388928466E-63"; + results[60][74]="1.674599066629639E-7"; + results[61][0]="7.063486115509977E+39"; + results[61][1]="1.553176607402299E+34"; + results[61][2]="3.484826722820572E+29"; + results[61][3]="4.063688052571492E+24"; + results[61][4]="2.836325134564299E+19"; + results[61][5]="8.849158446444201E+34"; + results[61][6]="5.499346795499110E+43"; + results[61][7]="8.486287758668364E+29"; + results[61][8]="8.107073124364424E+37"; + results[61][9]="7.910432879932915E+24"; + results[61][10]="2.886962361139478E+33"; + results[61][11]="9.585980878005454E+19"; + results[61][12]="1.287136382739755E+28"; + results[61][13]="1206078487432465"; + results[61][14]="9.697762200941783E+22"; + results[61][15]="1.041778493835083E+31"; + results[61][16]="1.196795746509847E+47"; + results[61][17]="1.232978108793337E+26"; + results[61][18]="9.392600798807385E+41"; + results[61][19]="7.947115169045187E+20"; + results[61][20]="3.178529985880788E+37"; + results[61][21]="1.481742762003150E+16"; + results[61][22]="1.826064844887958E+32"; + results[61][23]="162400187644.0589"; + results[61][24]="9.672443343331502E+26"; + results[61][25]="9.682759722348257E+26"; + results[61][26]="2.593501076303929E+51"; + results[61][27]="1.128795648353017E+22"; + results[61][28]="3.999761060584132E+46"; + results[61][29]="1.926872567934611E+17"; + results[61][30]="9.014349115587456E+40"; + results[61][31]="2351047312362.565"; + results[61][32]="1.832664499013753E+36"; + results[61][33]="10116230.99578109"; + results[61][34]="4.848418359846594E+31"; + results[61][35]="1.190177773229581E+23"; + results[61][36]="2.507919620057646E+55"; + results[61][37]="1.006984238446915E+18"; + results[61][38]="1.227392169756080E+50"; + results[61][39]="10732421019831.98"; + results[61][40]="2.225370113978822E+45"; + results[61][41]="171824230.3109566"; + results[61][42]="8.036641462972210E+39"; + results[61][43]="3099.650115465570"; + results[61][44]="2.111161796555619E+35"; + results[61][45]="2.718862051908959E+19"; + results[61][46]="1.480308833506809E+59"; + results[61][47]="98837620136215.22"; + results[61][48]="1.225784175500373E+54"; + results[61][49]="4185838283.725054"; + results[61][50]="4.131069723475097E+49"; + results[61][51]="10418.90800810271"; + results[61][52]="7.402393339457015E+44"; + results[61][53]="0.2170264114148377"; + results[61][54]="3.018779551769291E+39"; + results[61][55]="1099173043382890"; + results[61][56]="1.268825839997009E+63"; + results[61][57]="11024835397.91414"; + results[61][58]="1.014156160519400E+58"; + results[61][59]="216324.1819741618"; + results[61][60]="5.238274105681931E+53"; + results[61][61]="1"; + results[61][62]="3.745061487400818E+48"; + results[61][63]="0.000008505370897365375"; + results[61][64]="3.913184451892906E+43"; + results[61][65]="92280422752.79732"; + results[61][66]="8.226899579190449E+66"; + results[61][67]="2978823.909820644"; + results[61][68]="1.755089854497003E+62"; + results[61][69]="13.23052587726166"; + results[61][70]="1.288637506091553E+57"; + results[61][71]="0.00008085559973763583"; + results[61][72]="3.140842847162717E+52"; + results[61][73]="1.532125710597750E-9"; + results[61][74]="8.772008928125169E+46"; + results[62][0]="1.886080145619249E-9"; + results[62][1]="4.147265973142270E-15"; + results[62][2]="9.305125522088941E-20"; + results[62][3]="1.085079127870824E-24"; + results[62][4]="7.573507522122931E-30"; + results[62][5]="2.362887358782933E-14"; + results[62][6]="0.00001468426303279687"; + results[62][7]="2.265994239939194E-19"; + results[62][8]="2.164736988067710E-11"; + results[62][9]="2.112230441755173E-24"; + results[62][10]="7.708718190213518E-16"; + results[62][11]="2.559632441351024E-29"; + results[62][12]="3.436889853664501E-21"; + results[62][13]="3.220450429158424E-34"; + results[62][14]="2.589480101613048E-26"; + results[62][15]="2.781739358191706E-18"; + results[62][16]="0.03195663810957770"; + results[62][17]="3.292277344287504E-23"; + results[62][18]="2.507996418858833E-7"; + results[62][19]="2.122025284706531E-28"; + results[62][20]="8.487257142703900E-12"; + results[62][21]="3.956524524331703E-33"; + results[62][22]="4.875927540926171E-17"; + results[62][23]="4.336382411621481E-38"; + results[62][24]="2.582719502969886E-22"; + results[62][25]="2.585474165089977E-22"; + results[62][26]="692.5122818487806"; + results[62][27]="3.014091096102228E-27"; + results[62][28]="0.01068009450322826"; + results[62][29]="5.145102622258724E-32"; + results[62][30]="2.406996292561188E-8"; + results[62][31]="6.277726868495983E-37"; + results[62][32]="4.893549826028827E-13"; + results[62][33]="2.701218933204230E-42"; + results[62][34]="1.294616490585723E-17"; + results[62][35]="3.177992610357912E-26"; + results[62][36]="6696604.657880305"; + results[62][37]="2.688832324474842E-31"; + results[62][38]="32.77361864111679"; + results[62][39]="2.865752953840177E-36"; + results[62][40]="0.0005942145733696068"; + results[62][41]="4.588021608964494E-41"; + results[62][42]="2.145930444669381E-9"; + results[62][43]="8.276633443518753E-46"; + results[62][44]="5.637188611343273E-14"; + results[62][45]="7.259859580559060E-30"; + results[62][46]="39526956726.52857"; + results[62][47]="2.639145457790906E-35"; + results[62][48]="327306.8224978871"; + results[62][49]="1.117695476511428E-39"; + results[62][50]="11.03071267954583"; + results[62][51]="2.782039238382100E-45"; + results[62][52]="0.0001976574580780646"; + results[62][53]="5.795002622652810E-50"; + results[62][54]="8.060694228719894E-10"; + results[62][55]="2.934993316079701E-34"; + results[62][56]="338799735135353.3"; + results[62][57]="2.943832947737714E-39"; + results[62][58]="2707982669.793906"; + results[62][59]="5.776251810602371E-44"; + results[62][60]="139871.5114105495"; + results[62][61]="2.670183128806329E-49"; + results[62][62]="1"; + results[62][63]="2.271089787438537E-54"; + results[62][64]="0.00001044891910335168"; + results[62][65]="2.464056279536351E-38"; + results[62][66]="2.196732845873822E+18"; + results[62][67]="7.954005347687989E-43"; + results[62][68]="46864113190170.53"; + results[62][69]="3.532792698269964E-48"; + results[62][70]="344089812.7912729"; + results[62][71]="2.158992582889526E-53"; + results[62][72]="8386.625580725921"; + results[62][73]="4.091056223648521E-58"; + results[62][74]="0.02342287024561831"; + results[63][0]="8.304736149364119E+44"; + results[63][1]="1.826112730584637E+39"; + results[63][2]="4.097207241015242E+34"; + results[63][3]="4.777790529781906E+29"; + results[63][4]="3.334745972621699E+24"; + results[63][5]="1.040420053778644E+40"; + results[63][6]="6.465734254108293E+48"; + results[63][7]="9.977563425596263E+34"; + results[63][8]="9.531710283058522E+42"; + results[63][9]="9.300514904509633E+29"; + results[63][10]="3.394281561588036E+38"; + results[63][11]="1.127050306645041E+25"; + results[63][12]="1.513321874227095E+33"; + results[63][13]="1.418019862962190E+20"; + results[63][14]="1.140192746202962E+28"; + results[63][15]="1.224847812524888E+36"; + results[63][16]="1.407105887505231E+52"; + results[63][17]="1.449646492400778E+31"; + results[63][18]="1.104314075441065E+47"; + results[63][19]="9.343643287216183E+25"; + results[63][20]="3.737085688838532E+42"; + results[63][21]="1.742125981198698E+21"; + results[63][22]="2.146954985177189E+37"; + results[63][23]="1.909383959897199E+16"; + results[63][24]="1.137215938028950E+32"; + results[63][25]="1.138428863266573E+32"; + results[63][26]="3.049251005746606E+56"; + results[63][27]="1.327156289801157E+27"; + results[63][28]="4.702629795748353E+51"; + results[63][29]="2.265477415607447E+22"; + results[63][30]="1.059841978011769E+46"; + results[63][31]="2.764191404152434E+17"; + results[63][32]="2.154714381216979E+41"; + results[63][33]="1189393280769.765"; + results[63][34]="5.700419674053768E+36"; + results[63][35]="1.399324953128441E+28"; + results[63][36]="2.948630518669679E+60"; + results[63][37]="1.183939243330163E+23"; + results[63][38]="1.443078949251087E+55"; + results[63][39]="1.261840447564310E+18"; + results[63][40]="2.616429243159934E+50"; + results[63][41]="20201850381878.22"; + results[63][42]="9.448901829150850E+44"; + results[63][43]="364434444.1728835"; + results[63][44]="2.482151362981211E+40"; + results[63][45]="3.196641374864857E+24"; + results[63][46]="1.740440071773177E+64"; + results[63][47]="1.162061259043167E+19"; + results[63][48]="1.441188385893991E+59"; + results[63][49]="492140593777240.2"; + results[63][50]="4.857013025445766E+54"; + results[63][51]="1224979854.944370"; + results[63][52]="8.703198753801531E+49"; + results[63][53]="25516.39593777902"; + results[63][54]="3.549262681424497E+44"; + results[63][55]="1.292328173158645E+20"; + results[63][56]="1.491793662272907E+68"; + results[63][57]="1296220415423529"; + results[63][58]="1.192371470635743E+63"; + results[63][59]="25433832878.60738"; + results[63][60]="6.158783865974074E+58"; + results[63][61]="117572.7680858409"; + results[63][62]="4.403172457253908E+53"; + results[63][63]="1"; + results[63][64]="4.600839280395232E+48"; + results[63][65]="1.084966474317800E+16"; + results[63][66]="9.672593562896609E+71"; + results[63][67]="350228572717.9005"; + results[63][68]="2.063507724325885E+67"; + results[63][69]="1555549.550621002"; + results[63][70]="1.515086786504186E+62"; + results[63][71]="9.506416676394638"; + results[63][72]="3.692775876635344E+57"; + results[63][73]="0.0001801362608504635"; + results[63][74]="1.031349371353387E+52"; + results[64][0]="0.0001805048088671923"; + results[64][1]="3.969086115148465E-10"; + results[64][2]="8.905347462307516E-15"; + results[64][3]="1.038460645678428E-19"; + results[64][4]="7.248125329722949E-25"; + results[64][5]="2.261370133514570E-9"; + results[64][6]="1.405337995973826"; + results[64][7]="2.168639854061398E-14"; + results[64][8]="0.000002071732938743234"; + results[64][9]="2.021482242194446E-19"; + results[64][10]="7.377526913516641E-11"; + results[64][11]="2.449662415828232E-24"; + results[64][12]="3.289230033910451E-16"; + results[64][13]="3.082089541802851E-29"; + results[64][14]="2.478227724801148E-21"; + results[64][15]="2.662226906608371E-13"; + results[64][16]="3058.367836279547"; + results[64][17]="3.150830542109802E-18"; + results[64][18]="0.02400244842602282"; + results[64][19]="2.030856267253379E-23"; + results[64][20]="8.122617333673738E-7"; + results[64][21]="3.786539531215795E-28"; + results[64][22]="4.666442043141217E-12"; + results[64][23]="4.150077504409531E-33"; + results[64][24]="2.471757583175691E-17"; + results[64][25]="2.474393896169260E-17"; + results[64][26]="66275973.14124528"; + results[64][27]="2.884596068061627E-22"; + results[64][28]="1022.124336267703"; + results[64][29]="4.924052498988474E-27"; + results[64][30]="0.002303584005917990"; + results[64][31]="6.008015572139217E-32"; + results[64][32]="4.683307218312307E-8"; + results[64][33]="2.585165897530746E-37"; + results[64][34]="1.238995610723459E-12"; + results[64][35]="3.041455847178024E-21"; + results[64][36]="640889702718.8438"; + results[64][37]="2.573311457270591E-26"; + results[64][38]="3136555.878837656"; + results[64][39]="2.742631008523106E-31"; + results[64][40]="56.86852080029998"; + results[64][41]="4.390905474129667E-36"; + results[64][42]="0.0002053734384814057"; + results[64][43]="7.921042704660115E-41"; + results[64][44]="5.394996894497005E-9"; + results[64][45]="6.947952710467755E-25"; + results[64][46]="3782875179294822"; + results[64][47]="2.525759297863022E-30"; + results[64][48]="31324467082.23605"; + results[64][49]="1.069675691290314E-34"; + results[64][50]="1055679.785673480"; + results[64][51]="2.662513902983238E-40"; + results[64][52]="18.91654592432077"; + results[64][53]="5.546030709333330E-45"; + results[64][54]="0.00007714380931645150"; + results[64][55]="2.808896582554887E-29"; + results[64][56]="3.242438110432659E+19"; + results[64][57]="2.817356435263650E-34"; + results[64][58]="259163904228646.2"; + results[64][59]="5.528085492354452E-39"; + results[64][60]="13386218232.43738"; + results[64][61]="2.555463490907705E-44"; + results[64][62]="95703.67902257296"; + results[64][63]="2.173516480484612E-49"; + results[64][64]="1"; + results[64][65]="2.358192512703023E-33"; + results[64][66]="2.102354151798515E+23"; + results[64][67]="7.612275747389602E-38"; + results[64][68]="4.485068046429608E+18"; + results[64][69]="3.381012584485181E-43"; + results[64][70]="32930660998313.20"; + results[64][71]="2.066235331649750E-48"; + results[64][72]="802630922.6602931"; + results[64][73]="3.915291316913575E-53"; + results[64][74]="2241.654855774030"; + results[65][0]="7.654371214175933E+28"; + results[65][1]="1.683105214594628E+23"; + results[65][2]="3.776344558103940E+18"; + results[65][3]="44036296446727.19"; + results[65][4]="307359356.4002524"; + results[65][5]="9.589421225506852E+23"; + results[65][6]="5.959386218061519E+32"; + results[65][7]="9.196195146831527E+18"; + results[65][8]="8.785257893845823E+26"; + results[65][9]="85721680113273.25"; + results[65][10]="3.128466770111285E+22"; + results[65][11]="1038788140.761402"; + results[65][12]="1.394809802928366E+17"; + results[65][13]="13069.71133696832"; + results[65][14]="1050901362569.648"; + results[65][15]="1.128926876100059E+20"; + results[65][16]="1.296911859318036E+36"; + results[65][17]="1336121001630285"; + results[65][18]="1.017832441445189E+31"; + results[65][19]="8611918901.080548"; + results[65][20]="3.444425037361932E+26"; + results[65][21]="160569.5680407179"; + results[65][22]="1.978821499094838E+21"; + results[65][23]="1.759855262899042"; + results[65][24]="1.048157675788096E+16"; + results[65][25]="1.049275613776351E+16"; + results[65][26]="2.810456431535270E+40"; + results[65][27]="122322331723.2581"; + results[65][28]="4.334354938206963E+35"; + results[65][29]="2088062.137617592"; + results[65][30]="9.768430666746378E+29"; + results[65][31]="25.47720569790407"; + results[65][32]="1.985973237165517E+25"; + results[65][33]="0.0001096248878581826"; + results[65][34]="5.254005362366659E+20"; + results[65][35]="1289740269632.112"; + results[65][36]="2.717715789811575E+44"; + results[65][37]="10912219.60636705"; + results[65][38]="1.330067779429277E+39"; + results[65][39]="116.3022524136263"; + results[65][40]="2.411530038110238E+34"; + results[65][41]="0.001861979227937033"; + results[65][42]="8.708934379831493E+28"; + results[65][43]="3.358946592354670E-8"; + results[65][44]="2.287767799039069E+24"; + results[65][45]="294630428.7305122"; + results[65][46]="1.604141798821501E+48"; + results[65][47]="1071.057296746282"; + results[65][48]="1.328325270880074E+43"; + results[65][49]="0.04535998166087906"; + results[65][50]="4.476648025921479E+38"; + results[65][51]="1.129048577943026E-7"; + results[65][52]="8.021629202205431E+33"; + results[65][53]="2.351814230372703E-12"; + results[65][54]="3.271310925672783E+28"; + results[65][55]="11911.22678671919"; + results[65][56]="1.374967519812914E+52"; + results[65][57]="0.1194710109580630"; + results[65][58]="1.098993838851543E+47"; + results[65][59]="0.000002344204496696504"; + results[65][60]="5.676473892750065E+42"; + results[65][61]="1.083653466433309E-11"; + results[65][62]="4.058348862827780E+37"; + results[65][63]="9.216874656230971E-17"; + results[65][64]="4.240535896086675E+32"; + results[65][65]="1"; + results[65][66]="8.915108246988459E+55"; + results[65][67]="0.00003228012855771563"; + results[65][68]="1.901909204727609E+51"; + results[65][69]="1.433730522963019E-10"; + results[65][70]="1.396436500452086E+46"; + results[65][71]="8.761945093623320E-16"; + results[65][72]="3.403585238850141E+41"; + results[65][73]="1.660293337300849E-20"; + results[65][74]="9.505817882546773E+35"; + results[66][0]="8.585842148087876E-28"; + results[66][1]="1.887924597172652E-33"; + results[66][2]="4.235893108061360E-38"; + results[66][3]="4.939513377372926E-43"; + results[66][4]="3.447623381399535E-48"; + results[66][5]="1.075637104994903E-32"; + results[66][6]="6.684592102484691E-24"; + results[66][7]="1.031529275030174E-37"; + results[66][8]="9.854347979244672E-30"; + results[66][9]="9.615326896589304E-43"; + results[66][10]="3.509174183238983E-34"; + results[66][11]="1.165199694700630E-47"; + results[66][12]="1.564546121354764E-39"; + results[66][13]="1.466018243960560E-52"; + results[66][14]="1.178786991088576E-44"; + results[66][15]="1.266307536401941E-36"; + results[66][16]="1.454734842682516E-20"; + results[66][17]="1.498715399312880E-41"; + results[66][18]="1.141693867585976E-25"; + results[66][19]="9.659915126649943E-47"; + results[66][20]="3.863581845487368E-30"; + results[66][21]="1.801094990573543E-51"; + results[66][22]="2.219627002020180E-35"; + results[66][23]="1.974014464146888E-56"; + results[66][24]="1.175709421298576E-40"; + results[66][25]="1.176963402694295E-40"; + results[66][26]="3.152464730290456E-16"; + results[66][27]="1.372079040819037E-45"; + results[66][28]="4.861808536840948E-21"; + results[66][29]="2.342161283709532E-50"; + results[66][30]="1.095716439567200E-26"; + results[66][31]="2.857756181088471E-55"; + results[66][32]="2.227649044907988E-31"; + results[66][33]="1.229652908535508E-60"; + results[66][34]="5.893372482764269E-36"; + results[66][35]="1.446690532409171E-44"; + results[66][36]="3.048438352646615E-12"; + results[66][37]="1.224014258049331E-49"; + results[66][38]="1.491925552197951E-17"; + results[66][39]="1.304552330622721E-54"; + results[66][40]="2.704992436771430E-22"; + results[66][41]="2.088566034591912E-59"; + results[66][42]="9.768736552103434E-28"; + results[66][43]="3.767701411241225E-64"; + results[66][44]="2.566169401041071E-32"; + results[66][45]="3.304844097995546E-48"; + results[66][46]="1.799352015005968E-8"; + results[66][47]="1.201395728546636E-53"; + results[66][48]="1.489970995392888E-13"; + results[66][49]="5.087990005752511E-58"; + results[66][50]="5.021417465608115E-18"; + results[66][51]="1.266444048309139E-63"; + results[66][52]="8.997792264513616E-23"; + results[66][53]="2.638009730467547E-68"; + results[66][54]="3.669401240055428E-28"; + results[66][55]="1.336072031513787E-52"; + results[66][56]="0.0001542289203585813"; + results[66][57]="1.340096021811295E-57"; + results[66][58]="1.232731906786197E-9"; + results[66][59]="2.629473957860669E-62"; + results[66][60]="6.367251788185060E-14"; + results[66][61]="1.215524743403277E-67"; + results[66][62]="4.552214903502375E-19"; + results[66][63]="1.033848877756975E-72"; + results[66][64]="4.756572526776819E-24"; + results[66][65]="1.121691371877399E-56"; + results[66][66]="1"; + results[66][67]="3.620834168628286E-61"; + results[66][68]="0.00002133355145037165"; + results[66][69]="1.608203157204890E-66"; + results[66][70]="1.566370773931775E-10"; + results[66][71]="9.828198212380789E-72"; + results[66][72]="3.817772195867480E-15"; + results[66][73]="1.862336711235894E-76"; + results[66][74]="1.066259390149060E-20"; + results[67][0]="2.371233187776874E+33"; + results[67][1]="5.214059825026099E+27"; + results[67][2]="1.169866641439169E+23"; + results[67][3]="1.364192102518798E+18"; + results[67][4]="9521627395340.313"; + results[67][5]="2.970688672556348E+28"; + results[67][6]="1.846146990216091E+37"; + results[67][7]="2.848871909041218E+23"; + results[67][8]="2.721568434319621E+31"; + results[67][9]="2.655555722462696E+18"; + results[67][10]="9.691618063161386E+26"; + results[67][11]="32180421428746.45"; + results[67][12]="4.320954919477782E+21"; + results[67][13]="404884116.6663938"; + results[67][14]="3.255567463712780E+16"; + results[67][15]="3.497281226998773E+24"; + results[67][16]="4.017678730737416E+40"; + results[67][17]="4.139143991453913E+19"; + results[67][18]="3.153123878132466E+35"; + results[67][19]="266787007544990.6"; + results[67][20]="1.067041920605562E+31"; + results[67][21]="4974254292.501521"; + results[67][22]="6.130153712234388E+25"; + results[67][23]="54518.22348701272"; + results[67][24]="3.247067848301876E+20"; + results[67][25]="3.250531087260965E+20"; + results[67][26]="8.706459847302905E+44"; + results[67][27]="3789400389299890"; + results[67][28]="1.342731622167273E+40"; + results[67][29]="64685682211.09210"; + results[67][30]="3.026143668938864E+34"; + results[67][31]="789253.5388250330"; + results[67][32]="6.152308946399247E+29"; + results[67][33]="3.396048676267737"; + results[67][34]="1.627628388459699E+25"; + results[67][35]="3.995461998628989E+16"; + results[67][36]="8.419160366577858E+48"; + results[67][37]="338047588219.9918"; + results[67][38]="4.120391828834159E+43"; + results[67][39]="3602905.490468613"; + results[67][40]="7.470633314853486E+38"; + results[67][41]="57.68190249329044"; + results[67][42]="2.697924317203462E+33"; + results[67][43]="0.001040561714724588"; + results[67][44]="7.087232614171990E+28"; + results[67][45]="9127300351475.501"; + results[67][46]="4.969440552113530E+52"; + results[67][47]="33180081.51148695"; + results[67][48]="4.114993744541877E+47"; + results[67][49]="1405.198296524041"; + results[67][50]="1.386812328803897E+43"; + results[67][51]="0.003497658244837316"; + results[67][52]="2.485005345583759E+38"; + results[67][53]="7.285640842996488E-8"; + results[67][54]="1.013413227219280E+33"; + results[67][55]="368995642.7968486"; + results[67][56]="4.259485885734702E+56"; + results[67][57]="3701.069862359855"; + results[67][58]="3.404552236793557E+51"; + results[67][59]="0.07262066792903739"; + results[67][60]="1.758504115806338E+47"; + results[67][61]="3.357029587090330E-7"; + results[67][62]="1.257228221867707E+42"; + results[67][63]="2.855278175163260E-12"; + results[67][64]="1.313667598474634E+37"; + results[67][65]="30978.81094903443"; + results[67][66]="2.761794529736332E+60"; + results[67][67]="1"; + results[67][68]="5.891888569548503E+55"; + results[67][69]="0.000004441526682273164"; + results[67][70]="4.325994234983640E+50"; + results[67][71]="2.714346406011766E-11"; + results[67][72]="1.054390236632627E+46"; + results[67][73]="5.143391341618445E-16"; + results[67][74]="2.944789350993672E+40"; + results[68][0]="4.024572358737908E-23"; + results[68][1]="8.849556069295544E-29"; + results[68][2]="1.985554593624666E-33"; + results[68][3]="2.315373222720905E-38"; + results[68][4]="1.616056937083241E-43"; + results[68][5]="5.041997379091630E-28"; + results[68][6]="3.133370511719575E-19"; + results[68][7]="4.835244040026928E-33"; + results[68][8]="4.619178387700187E-25"; + results[68][9]="4.507138400728770E-38"; + results[68][10]="1.644908580459467E-29"; + results[68][11]="5.461817725994849E-43"; + results[68][12]="7.333734962012186E-35"; + results[68][13]="6.871890258736175E-48"; + results[68][14]="5.525507526633783E-40"; + results[68][15]="5.935755888314043E-32"; + results[68][16]="6.818999856009313E-16"; + results[68][17]="7.025156607418828E-37"; + results[68][18]="5.351635287926178E-21"; + results[68][19]="4.528038919877851E-42"; + results[68][20]="1.811035473617807E-25"; + results[68][21]="8.442546449724692E-47"; + results[68][22]="1.040439519497590E-30"; + results[68][23]="9.253098194827277E-52"; + results[68][24]="5.511081565737588E-36"; + results[68][25]="5.516959543432190E-36"; + results[68][26]="1.477702733941909E-11"; + results[68][27]="6.431554746104564E-41"; + results[68][28]="2.278949451126784E-16"; + results[68][29]="1.097876876786368E-45"; + results[68][30]="5.136118297584773E-22"; + results[68][31]="1.339559513912385E-50"; + results[68][32]="1.044199813655115E-26"; + results[68][33]="5.763939076885797E-56"; + results[68][34]="2.762490106944477E-31"; + results[68][35]="6.781292537131541E-40"; + results[68][36]="1.428940867974192E-7"; + results[68][37]="5.737508172967645E-45"; + results[68][38]="6.993329524475215E-13"; + results[68][39]="6.115026528318585E-50"; + results[68][40]="1.267952240893443E-17"; + results[68][41]="9.790053191333628E-55"; + results[68][42]="4.579048441525779E-23"; + results[68][43]="1.766091979577825E-59"; + results[68][44]="1.202879608212802E-27"; + results[68][45]="1.549129832266147E-43"; + results[68][46]="0.0008434376335284867"; + results[68][47]="5.631484899930744E-49"; + results[68][48]="6.984167633124823E-9"; + results[68][49]="2.384970930690432E-53"; + results[68][50]="2.353765371550753E-13"; + results[68][51]="5.936395781336616E-59"; + results[68][52]="4.217672001516121E-18"; + results[68][53]="1.236554418332251E-63"; + results[68][54]="1.720014245444119E-23"; + results[68][55]="6.262773615644344E-48"; + results[68][56]="7.229406726646745"; + results[68][57]="6.281635877311693E-53"; + results[68][58]="0.00005778371733623009"; + results[68][59]="1.232553315830994E-57"; + results[68][60]="2.984618760264661E-9"; + results[68][61]="5.697713979929495E-63"; + results[68][62]="2.133828919245919E-14"; + results[68][63]="4.846117066640417E-68"; + results[68][64]="2.229620575759295E-19"; + results[68][65]="5.257874547924172E-52"; + results[68][66]="46874.52074382950"; + results[68][67]="1.697248663473332E-56"; + results[68][68]="1"; + results[68][69]="7.538375225269271E-62"; + results[68][70]="0.000007342287933519324"; + results[68][71]="4.606920809807113E-67"; + results[68][72]="1.789562419904057E-10"; + results[68][73]="8.729614080282214E-72"; + results[68][74]="4.998039790184512E-16"; + results[69][0]="5.338779562533849E+38"; + results[69][1]="1.173934144274364E+33"; + results[69][2]="2.633929108448886E+28"; + results[69][3]="3.071448625904928E+23"; + results[69][4]="2.143773543755267E+18"; + results[69][5]="6.688440450921611E+33"; + results[69][6]="4.156559494698874E+42"; + results[69][7]="6.414172677182188E+28"; + results[69][8]="6.127551693389194E+36"; + results[69][9]="5.978925519149620E+23"; + results[69][10]="2.182046570122424E+32"; + results[69][11]="7.245351369200056E+18"; + results[69][12]="9.728535318099962E+26"; + results[69][13]="91158771663435.09"; + results[69][14]="7.329838806791966E+21"; + results[69][15]="7.874052048267494E+29"; + results[69][16]="9.045715624703119E+45"; + results[69][17]="9.319191997593739E+24"; + results[69][18]="7.099189318657215E+40"; + results[69][19]="6.006651015061551E+19"; + results[69][20]="2.402421502642987E+36"; + results[69][21]="1119942454101324"; + results[69][22]="1.380190675584772E+31"; + results[69][23]="12274658554.81710"; + results[69][24]="7.310702108942491E+25"; + results[69][25]="7.318499515570511E+25"; + results[69][26]="1.960240356553922E+50"; + results[69][27]="8.531751941115174E+20"; + results[69][28]="3.023130824647137E+45"; + results[69][29]="1.456383960705739E+16"; + results[69][30]="6.813296160116931E+39"; + results[69][31]="177698704811.3589"; + results[69][32]="1.385178878009241E+35"; + results[69][33]="764612.9178559042"; + results[69][34]="3.664569651142300E+30"; + results[69][35]="8.995695139186061E+21"; + results[69][36]="1.895555508014859E+54"; + results[69][37]="7.611067373954845E+16"; + results[69][38]="9.276971914362904E+48"; + results[69][39]="811186276297.3776"; + results[69][40]="1.681996720782961E+44"; + results[69][41]="12986953.95065576"; + results[69][42]="6.074317481804861E+38"; + results[69][43]="234.2801899350586"; + results[69][44]="1.595674893152901E+34"; + results[69][45]="2.054991673899878E+18"; + results[69][46]="1.118858651001097E+58"; + results[69][47]="7470422646319.768"; + results[69][48]="9.264818245864578E+52"; + results[69][49]="316377317.3157802"; + results[69][50]="3.122377569719179E+48"; + results[69][51]="787.4900895669555"; + results[69][52]="5.594935082798914E+43"; + results[69][53]="0.01640346071109881"; + results[69][54]="2.281677674624746E+38"; + results[69][55]="83078560412474.54"; + results[69][56]="9.590139135570173E+61"; + results[69][57]="833287769.5256027"; + results[69][58]="7.665274758748302E+56"; + results[69][59]="16350.38425388234"; + results[69][60]="3.959233483443444E+52"; + results[69][61]="0.07558278554283523"; + results[69][62]="2.830621792469476E+47"; + results[69][63]="6.428596244978392E-7"; + results[69][64]="2.957693812169788E+42"; + results[69][65]="6974811402.726853"; + results[69][66]="6.218119865763931E+65"; + results[69][67]="225147.8087458437"; + results[69][68]="1.326545800808529E+61"; + results[69][69]="1"; + results[69][70]="9.739881226537191E+55"; + results[69][71]="0.000006111291454907054"; + results[69][72]="2.373936513408476E+51"; + results[69][73]="1.158023290087738E-10"; + results[69][74]="6.630128695943206E+45"; + results[70][0]="5.481360027253576E-18"; + results[70][1]="1.205285893092693E-23"; + results[70][2]="2.704272308036475E-28"; + results[70][3]="3.153476469031765E-33"; + results[70][4]="2.201026371773776E-38"; + results[70][5]="6.867065722216763E-23"; + results[70][6]="4.267566922042078E-14"; + results[70][7]="6.585473198283149E-28"; + results[70][8]="6.291197552485674E-20"; + results[70][9]="6.138602083626537E-33"; + results[70][10]="2.240321539216762E-24"; + results[70][11]="7.438849818270307E-38"; + results[70][12]="9.988351081318820E-30"; + results[70][13]="9.359330934659115E-43"; + results[70][14]="7.525593625126715E-35"; + results[70][15]="8.084340933043336E-27"; + results[70][16]="9.287295619229160E-11"; + results[70][17]="9.568075606715566E-32"; + results[70][18]="7.288784281388184E-16"; + results[70][19]="6.167068032304013E-37"; + results[70][20]="2.466581929251223E-20"; + results[70][21]="1.149852270323317E-41"; + results[70][22]="1.417050827913914E-25"; + results[70][23]="1.260247252438118E-46"; + results[70][24]="7.505945851807534E-31"; + results[70][25]="7.513951500384414E-31"; + results[70][26]="0.000002012591643533670"; + results[70][27]="8.759605730991504E-36"; + results[70][28]="3.103868265262150E-11"; + results[70][29]="1.495278973975256E-40"; + results[70][30]="6.995255898556019E-17"; + results[70][31]="1.824444268654967E-45"; + results[70][32]="1.422172248091892E-21"; + results[70][33]="7.850331026344006E-51"; + results[70][34]="3.762437719628292E-26"; + results[70][35]="9.235939258352015E-35"; + results[70][36]="0.01946179284866684"; + results[70][37]="7.814332841367511E-40"; + results[70][38]="9.524727970077244E-8"; + results[70][39]="8.328502755118070E-45"; + results[70][40]="1.726917075949764E-12"; + results[70][41]="1.333379088368309E-49"; + results[70][42]="6.236541637956356E-18"; + results[70][43]="2.405370091133565E-54"; + results[70][44]="1.638289888797966E-22"; + results[70][45]="2.109873443118451E-38"; + results[70][46]="114.8739522564880"; + results[70][47]="7.669931976137371E-44"; + results[70][48]="0.0009512249718838192"; + results[70][49]="3.248266687829637E-48"; + results[70][50]="3.205765550006891E-8"; + results[70][51]="8.085212450243923E-54"; + results[70][52]="5.744356581633671E-13"; + results[70][53]="1.684154080483660E-58"; + results[70][54]="2.342613448311986E-18"; + results[70][55]="8.529730340665701E-43"; + results[70][56]="984625.8812110530"; + results[70][57]="8.555420237109612E-48"; + results[70][58]="7.869987919219759"; + results[70][59]="1.678704685775246E-52"; + results[70][60]="0.0004064971010792362"; + results[70][61]="7.760134213639389E-58"; + results[70][62]="2.906217978056231E-9"; + results[70][63]="6.600281970033780E-63"; + results[70][64]="3.036683654941584E-14"; + results[70][65]="7.161084658530892E-47"; + results[70][66]="6384184489.665129"; + results[70][67]="2.311607333900624E-51"; + results[70][68]="136197.3282789357"; + results[70][69]="1.026706565245795E-56"; + results[70][70]="1"; + results[70][71]="6.274503058883598E-62"; + results[70][72]="0.00002437336203793195"; + results[70][73]="1.188950114640616E-66"; + results[70][74]="6.807196660549431E-11"; + results[71][0]="8.735926934473208E+43"; + results[71][1]="1.920926457094031E+38"; + results[71][2]="4.309938624075892E+33"; + results[71][3]="5.025858525269176E+28"; + results[71][4]="3.507889550962140E+23"; + results[71][5]="1.094439775990578E+39"; + results[71][6]="6.801442093489699E+47"; + results[71][7]="1.049560919244317E+34"; + results[71][8]="1.002660687778045E+42"; + results[71][9]="9.783407587849290E+28"; + results[71][10]="3.570516291397545E+37"; + results[71][11]="1.185567964261042E+24"; + results[71][12]="1.591895164857249E+32"; + results[71][13]="1.491644971215360E+19"; + results[71][14]="1.199392773340319E+27"; + results[71][15]="1.288443221267910E+35"; + results[71][16]="1.480164330477132E+51"; + results[71][17]="1.524913689087910E+30"; + results[71][18]="1.161651243610208E+46"; + results[71][19]="9.828775242323811E+24"; + results[71][20]="3.931119175659616E+41"; + results[71][21]="1.832579025832696E+20"; + results[71][22]="2.258427184775404E+36"; + results[71][23]="2008521217714331"; + results[71][24]="1.196261406101385E+31"; + results[71][25]="1.197537307714907E+31"; + results[71][26]="3.207571379990312E+55"; + results[71][27]="1.396063664131845E+26"; + results[71][28]="4.946795365519211E+50"; + results[71][29]="2.383103426586433E+21"; + results[71][30]="1.114870107307058E+45"; + results[71][31]="2.907711178930534E+16"; + results[71][32]="2.266589456958420E+40"; + results[71][33]="125114785229.5539"; + results[71][34]="5.996391561721113E+35"; + results[71][35]="1.471979401663617E+27"; + results[71][36]="3.101726569582645E+59"; + results[71][37]="1.245410635397457E+22"; + results[71][38]="1.518005152072067E+54"; + results[71][39]="1.327356553492530E+17"; + results[71][40]="2.752277048466415E+49"; + results[71][41]="2125075206522.494"; + results[71][42]="9.939498920359126E+43"; + results[71][43]="38335627.03787325"; + results[71][44]="2.611027317101128E+39"; + results[71][45]="3.362614414748335E+23"; + results[71][46]="1.830805582186251E+63"; + results[71][47]="1.222396722761668E+18"; + results[71][48]="1.516016428642984E+58"; + results[71][49]="51769305988793.17"; + results[71][50]="5.109194337658483E+53"; + results[71][51]="128858211.9471067"; + results[71][52]="9.155078143600022E+48"; + results[71][53]="2684.123451177847"; + results[71][54]="3.733544196771496E+43"; + results[71][55]="1.359427234414859E+19"; + results[71][56]="1.569249185107967E+67"; + results[71][57]="136352156606197.4"; + results[71][58]="1.254280672965365E+62"; + results[71][59]="2675438469.025040"; + results[71][60]="6.478554512834406E+57"; + results[71][61]="12367.72719817611"; + results[71][62]="4.631789881656898E+52"; + results[71][63]="0.1051921069779213"; + results[71][64]="4.839719777715578E+47"; + results[71][65]="1141299094338961"; + results[71][66]="1.017480496822173E+71"; + results[71][67]="36841281488.06609"; + results[71][68]="2.170647252870554E+66"; + results[71][69]="163631.5347383819"; + results[71][70]="1.593751713267834E+61"; + results[71][71]="1"; + results[71][72]="3.884508750605123E+56"; + results[71][73]="0.00001894891282198470"; + results[71][74]="1.084898134030173E+51"; + results[72][0]="2.248914211639332E-13"; + results[72][1]="4.945094941013564E-19"; + results[72][2]="1.109519607441867E-23"; + results[72][3]="1.293820878762663E-28"; + results[72][4]="9.030458614401850E-34"; + results[72][5]="2.817447060249479E-18"; + results[72][6]="1.750914344685201E-9"; + results[72][7]="2.701914158594232E-23"; + results[72][8]="2.581177575212958E-15"; + results[72][9]="2.518570098812429E-28"; + results[72][10]="9.191680391610227E-20"; + results[72][11]="3.052040915280100E-33"; + results[72][12]="4.098060442286985E-25"; + results[72][13]="3.839983552574039E-38"; + results[72][14]="3.087630509658344E-30"; + results[72][15]="3.316875579356586E-22"; + results[72][16]="0.000003810428616608354"; + results[72][17]="3.925628147575576E-27"; + results[72][18]="2.990471429442005E-11"; + results[72][19]="2.530249221550267E-32"; + results[72][20]="1.011999052659421E-15"; + results[72][21]="4.717659666868350E-37"; + results[72][22]="5.813932545327873E-21"; + results[72][23]="5.170592593983595E-42"; + results[72][24]="3.079569343009031E-26"; + results[72][25]="3.082853932375250E-26"; + results[72][26]="0.08257341110354408"; + results[72][27]="3.593925908686312E-31"; + results[72][28]="0.000001273467427444617"; + results[72][29]="6.134890097017279E-36"; + results[72][30]="2.870041436084768E-12"; + results[72][31]="7.485402571116811E-41"; + results[72][32]="5.834944911902525E-17"; + results[72][33]="3.220865063312414E-46"; + results[72][34]="1.543667924750332E-21"; + results[72][35]="3.789357924433339E-30"; + results[72][36]="798.4861841537783"; + results[72][37]="3.206095584682231E-35"; + results[72][38]="0.003907843306661606"; + results[72][39]="3.417051263652724E-40"; + results[72][40]="7.085264122619546E-8"; + results[72][41]="5.470640801598023E-45"; + results[72][42]="2.558753129030992E-13"; + results[72][43]="9.868848160504565E-50"; + results[72][44]="6.721640971189435E-18"; + results[72][45]="8.656472750188841E-34"; + results[72][46]="4713094.241069868"; + results[72][47]="3.146850222878877E-39"; + results[72][48]="39.02723680071055"; + results[72][49]="1.332711787062614E-43"; + results[72][50]="0.001315274251052358"; + results[72][51]="3.317233148902893E-49"; + results[72][52]="2.356817484881160E-8"; + results[72][53]="6.909814402554038E-54"; + results[72][54]="9.611367708181607E-14"; + results[72][55]="3.499611718478145E-38"; + results[72][56]="40397622604.49307"; + results[72][57]="3.510151871454961E-43"; + results[72][58]="322892.9971569699"; + results[72][59]="6.887456409020225E-48"; + results[72][60]="16.67792487743833"; + results[72][61]="3.183858755949381E-53"; + results[72][62]="0.0001192374680822991"; + results[72][63]="2.707989960417380E-58"; + results[72][64]="1.245902658080421E-9"; + results[72][65]="2.938078319842043E-42"; + results[72][66]="261932862595217.9"; + results[72][67]="9.484154587713828E-47"; + results[72][68]="5587958200.718210"; + results[72][69]="4.212412566013441E-52"; + results[72][70]="41028.39807014366"; + results[72][71]="2.574328091922103E-57"; + results[72][72]="1"; + results[72][73]="4.878071858901815E-62"; + results[72][74]="0.000002792883743307747"; + results[73][0]="4.610252322411714E+48"; + results[73][1]="1.013739666829516E+43"; + results[73][2]="2.274504434405050E+38"; + results[73][3]="2.652320253137757E+33"; + results[73][4]="1.851235257619769E+28"; + results[73][5]="5.775739148057081E+43"; + results[73][6]="3.589357425085942E+52"; + results[73][7]="5.538897820177879E+38"; + results[73][8]="5.291388995229049E+46"; + results[73][9]="5.163044275816442E+33"; + results[73][10]="1.884285565584005E+42"; + results[73][11]="6.256654275624378E+28"; + results[73][12]="8.400984161003253E+36"; + results[73][13]="7.871929040091104E+23"; + results[73][14]="6.329612598928488E+31"; + results[73][15]="6.799562768440446E+39"; + results[73][16]="7.811341708004652E+55"; + results[73][17]="8.047499629206652E+34"; + results[73][18]="6.130437426797644E+50"; + results[73][19]="5.186986364157197E+29"; + results[73][20]="2.074588242919507E+46"; + results[73][21]="9.671156562114322E+24"; + results[73][22]="1.191850533058106E+41"; + results[73][23]="1.059966466985920E+20"; + results[73][24]="6.313087285479891E+35"; + results[73][25]="6.319820661824533E+35"; + results[73][26]="1.692746919110240E+60"; + results[73][27]="7.367513256550102E+30"; + results[73][28]="2.610595875336918E+55"; + results[73][29]="1.257646519868694E+26"; + results[73][30]="5.883557108424581E+49"; + results[73][31]="1.534500267243291E+21"; + results[73][32]="1.196158047826734E+45"; + results[73][33]="6602742141723014"; + results[73][34]="3.164504274231525E+40"; + results[73][35]="7.768146993403301E+31"; + results[73][36]="1.636888933271145E+64"; + results[73][37]="6.572464853775255E+26"; + results[73][38]="8.011040877822095E+58"; + results[73][39]="7.004921949677867E+21"; + results[73][40]="1.452472273381932E+54"; + results[73][41]="1.121476058540394E+17"; + results[73][42]="5.245419098043044E+48"; + results[73][43]="2023104301445.511"; + results[73][44]="1.377929880004403E+44"; + results[73][45]="1.774568518172187E+28"; + results[73][46]="9.661797483505934E+67"; + results[73][47]="6.451012436678859E+22"; + results[73][48]="8.000545692964971E+62"; + results[73][49]="2.732046237963053E+18"; + results[73][50]="2.696299458262718E+58"; + results[73][51]="6800295782542.430"; + results[73][52]="4.831452986040559E+53"; + results[73][53]="141650525.0931179"; + results[73][54]="1.970321058440780E+48"; + results[73][55]="7.174170081344397E+23"; + results[73][56]="8.281473453650119E+71"; + results[73][57]="7.195777292721534E+18"; + results[73][58]="6.619275125431665E+66"; + results[73][59]="141192188394099.9"; + results[73][60]="3.418958424526566E+62"; + results[73][61]="652687957.0540302"; + results[73][62]="2.444356531253368E+57"; + results[73][63]="5551.353154988210"; + results[73][64]="2.554088365481576E+52"; + results[73][65]="6.023032060260553E+19"; + results[73][66]="5.369598279230475E+75"; + results[73][67]="1944242492124535"; + results[73][68]="1.145526011577904E+71"; + results[73][69]="8635404905.580393"; + results[73][70]="8.410781812340964E+65"; + results[73][71]="52773.47620913591"; + results[73][72]="2.049990301342397E+61"; + results[73][73]="1"; + results[73][74]="5.725384586557730E+55"; + results[74][0]="8.052301557585906E-8"; + results[74][1]="1.770605365462456E-13"; + results[74][2]="3.972666639277327E-18"; + results[74][3]="4.632562604379404E-23"; + results[74][4]="3.233381495395381E-28"; + results[74][5]="1.008794965777072E-12"; + results[74][6]="0.0006269198812448631"; + results[74][7]="9.674280804091849E-18"; + results[74][8]="9.241980019390084E-10"; + results[74][9]="9.017812162240471E-23"; + results[74][10]="3.291107413129942E-14"; + results[74][11]="1.092791965506384E-27"; + results[74][12]="1.467322244295588E-19"; + results[74][13]="1.374917076937174E-32"; + results[74][14]="1.105534921407618E-24"; + results[74][15]="1.187616773274011E-16"; + results[74][16]="1.364334847713883"; + results[74][17]="1.405582368754908E-21"; + results[74][18]="0.00001070746835276518"; + results[74][19]="9.059629594726956E-27"; + results[74][20]="3.623491507959662E-10"; + results[74][21]="1.689171516062104E-31"; + results[74][22]="2.081695150848690E-15"; + results[74][23]="1.851345444067719E-36"; + results[74][24]="1.102648597668354E-20"; + results[74][25]="1.103824654270814E-20"; + results[74][26]="29565.64565260007"; + results[74][27]="1.286815434870144E-25"; + results[74][28]="0.4559686490696489"; + results[74][29]="2.196614918797670E-30"; + results[74][30]="0.000001027626532239985"; + results[74][31]="2.680169766841597E-35"; + results[74][32]="2.089218688706290E-11"; + results[74][33]="1.153239933824738E-40"; + results[74][34]="5.527147087483460E-16"; + results[74][35]="1.356790426208511E-24"; + results[74][36]="285900258.4934282"; + results[74][37]="1.147951679823628E-29"; + results[74][38]="1399.214455677041"; + results[74][39]="1.223484963110475E-34"; + results[74][40]="0.02536899052671676"; + results[74][41]="1.958778561659312E-39"; + results[74][42]="9.161688649454979E-8"; + results[74][43]="3.533569266587664E-44"; + results[74][44]="2.406702744894305E-12"; + results[74][45]="3.099474788713032E-28"; + results[74][46]="1687536852317.355"; + results[74][47]="1.126738708841461E-33"; + results[74][48]="13973813.58756047"; + results[74][49]="4.771812612164872E-38"; + results[74][50]="470.9377016512027"; + results[74][51]="1.187744802071186E-43"; + results[74][52]="0.008438652308849302"; + results[74][53]="2.474078779366023E-48"; + results[74][54]="3.441377655339997E-8"; + results[74][55]="1.253045969730694E-32"; + results[74][56]="1.446448413805017E+16"; + results[74][57]="1.256819901603824E-37"; + results[74][58]="115612759725.7422"; + results[74][59]="2.466073435932954E-42"; + results[74][60]="5971578.629938194"; + results[74][61]="1.139989719793558E-47"; + results[74][62]="42.69331595631704"; + results[74][63]="9.696035386027837E-53"; + results[74][64]="0.0004460990046813902"; + results[74][65]="1.051987332763925E-36"; + results[74][66]="9.378580946051059E+19"; + results[74][67]="3.395828634270787E-41"; + results[74][68]="2000784391440555"; + results[74][69]="1.508266348754094E-46"; + results[74][70]="14690335094.84779"; + results[74][71]="9.217455248864755E-52"; + results[74][72]="358052.8557252626"; + results[74][73]="1.746607559512835E-56"; + results[74][74]="1"; + } + + public static int mcDivideTests() { + int failures = 0; + for(int i=0; i 0) { + throw new RuntimeException("Incurred " + failures + + " failures while testing DECIMAL64 divide."); + } + } + +} diff --git a/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java b/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java index c945e778b65..ade80fe51c4 100644 --- a/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java +++ b/jdk/test/java/math/BigDecimal/FloatDoubleValueTests.java @@ -25,6 +25,8 @@ * @test * @bug 6274390 * @summary Verify {float, double}Value methods work with condensed representation + * @run main FloatDoubleValueTests + * @run main/othervm -XX:+AggressiveOpts FloatDoubleValueTests */ import java.math.*; @@ -64,6 +66,7 @@ public class FloatDoubleValueTests { static void checkDouble(BigDecimal bd, double d) { double dbd = bd.doubleValue(); + if (d != dbd ) { String message = String.format("Bad conversion:"+ "got %g (%a)\texpected %g (%a)", @@ -156,9 +159,29 @@ public class FloatDoubleValueTests { } } + static void testFloatValue1() { + checkFloat(new BigDecimal("85070591730234615847396907784232501249"), 8.507059e+37f); + checkFloat(new BigDecimal("7784232501249e12"), 7.7842326e24f); + checkFloat(new BigDecimal("907784232501249e-12"),907.78424f); + checkFloat(new BigDecimal("7784e8"),7.7839997e11f); + checkFloat(new BigDecimal("9077e-8"),9.077e-5f); + + } + + static void testDoubleValue1() { + checkDouble(new BigDecimal("85070591730234615847396907784232501249"), 8.507059173023462e37); + checkDouble(new BigDecimal("7784232501249e12"), 7.784232501249e24); + checkDouble(new BigDecimal("907784232501249e-12"), 907.784232501249); + checkDouble(new BigDecimal("7784e8"), 7.784e11); + checkDouble(new BigDecimal("9077e-8"), 9.077e-5); + + } + public static void main(String[] args) throws Exception { testFloatDoubleValue(); testDoubleValue(); testFloatValue(); + testFloatValue1(); + testDoubleValue1(); } } diff --git a/jdk/test/java/math/BigDecimal/RangeTests.java b/jdk/test/java/math/BigDecimal/RangeTests.java new file mode 100644 index 00000000000..cef3ef538c7 --- /dev/null +++ b/jdk/test/java/math/BigDecimal/RangeTests.java @@ -0,0 +1,245 @@ +/* + * 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 7036582 + * @summary Some new tests for the add method and constructor with MathContext. + * @run main RangeTests + * @run main/othervm -XX:+AggressiveOpts RangeTests + * @author Sergey V. Kuksenko + */ + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.MathContext; + +public class RangeTests { + + + private static int addTest(BigDecimal arg1, BigDecimal arg2, BigDecimal expectedResult) { + int failures = 0; + BigDecimal result = arg1.add(arg2); + if (!result.equals(expectedResult)) { + System.out.println("Sum:" + + arg1 + " + " + + arg2 + " == " + + result + "; expected " + + expectedResult + ); + failures++; + } + result = arg2.add(arg1); + if (!result.equals(expectedResult)) { + System.out.println("Sum:" + + arg2 + " + " + + arg1 + " == " + + result + "; expected " + + expectedResult + ); + failures++; + } + return failures; + } + + /* + * Test BigDecimal.add(BigDecimal) when values are withing different ranges: + * 1. within 32 bits + * 2. within 64 bits + * 3. outside 64 bits. + */ + private static int addBoundaryTest() { + int failures = 0; + failures += addTest( + new BigDecimal("85070591730234615847396907784232501249"), + BigDecimal.valueOf(0), + new BigDecimal("85070591730234615847396907784232501249") ); + failures += addTest( + new BigDecimal("-85070591730234615847396907784232501249"), + BigDecimal.valueOf(0), + new BigDecimal("-85070591730234615847396907784232501249") ); + failures += addTest( + new BigDecimal("85070591730234615847396907784232501249"), + BigDecimal.valueOf(1), + new BigDecimal("85070591730234615847396907784232501250") ); + failures += addTest( + new BigDecimal("85070591730234615847396907784232501249"), + BigDecimal.valueOf(-1), + new BigDecimal("85070591730234615847396907784232501248") ); + failures += addTest( + new BigDecimal("-85070591730234615847396907784232501250"), + BigDecimal.valueOf(-1), + new BigDecimal("-85070591730234615847396907784232501251") ); + failures += addTest( + new BigDecimal("-85070591730234615847396907784232501249"), + BigDecimal.valueOf(1), + new BigDecimal("-85070591730234615847396907784232501248") ); + failures += addTest( + new BigDecimal("147573952589676412927"), + BigDecimal.valueOf(Integer.MAX_VALUE), + new BigDecimal("147573952591823896574") ); + failures += addTest( + new BigDecimal("-147573952589676412927"), + BigDecimal.valueOf(Integer.MAX_VALUE), + new BigDecimal("-147573952587528929280") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(999), + new BigDecimal("79228162514264337593543951334") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(Integer.MAX_VALUE/2), + new BigDecimal("79228162514264337594617692158") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(Integer.MIN_VALUE/2), + new BigDecimal("79228162514264337592470208511") ); + failures += addTest( + new BigDecimal("-79228162514264337593543950335"), + BigDecimal.valueOf(Integer.MAX_VALUE/2), + new BigDecimal("-79228162514264337592470208512") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(-(Integer.MIN_VALUE/2)), + new BigDecimal("79228162514264337594617692159") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(Long.MAX_VALUE/2), + new BigDecimal("79228162518876023611971338238") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(Long.MIN_VALUE/2), + new BigDecimal("79228162509652651575116562431") ); + failures += addTest( + new BigDecimal("-79228162514264337593543950335"), + BigDecimal.valueOf(Long.MAX_VALUE/2), + new BigDecimal("-79228162509652651575116562432") ); + failures += addTest( + new BigDecimal("79228162514264337593543950335"), + BigDecimal.valueOf(-(Long.MIN_VALUE/2)), + new BigDecimal("79228162518876023611971338239") ); + failures += addTest( + new BigDecimal("-9223372036854775808"), + BigDecimal.valueOf(1), + new BigDecimal("-9223372036854775807") ); + failures += addTest( + new BigDecimal("-9223372036854775808"), + BigDecimal.valueOf(Long.MAX_VALUE/2), + new BigDecimal("-4611686018427387905") ); + failures += addTest( + new BigDecimal("9223372036854775808"), + BigDecimal.valueOf(-1), + new BigDecimal("9223372036854775807") ); + failures += addTest( + new BigDecimal("9223372036854775808"), + BigDecimal.valueOf(-Long.MAX_VALUE/2), + new BigDecimal("4611686018427387905") ); + + return failures; + } + + private static int testRoundingFromBigInteger(BigInteger bi, int scale, MathContext mc) { + int failures = 0; + BigDecimal bd1 = new BigDecimal(bi,scale, mc); + BigDecimal bd2 = (new BigDecimal(bi,scale)).round(mc); + if (!bd1.equals(bd2)) { + System.out.println("new BigDecimal(BigInteger,int,MathContext):" + + "BigInteger == " + + bi + "; scale == " + scale + "; result == " + + bd1 + "; expected == " + + bd2 + ); + failures++; + } + return failures; + } + + private static int roundingConstructorTest() { + int failures = 0; + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 7, MathContext.DECIMAL64); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 0, MathContext.DECIMAL64); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + -7, MathContext.DECIMAL64); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 7, MathContext.DECIMAL128); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 177, MathContext.DECIMAL128); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 177, MathContext.DECIMAL32); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 177, MathContext.UNLIMITED); + failures += testRoundingFromBigInteger( + new BigInteger("85070591730234615847396907784232501249"), + 0, MathContext.UNLIMITED); + return failures; + } + + private static int minLongConstructorTest(MathContext mc) { + int failures = 0; + BigDecimal bd1 = new BigDecimal(Long.MIN_VALUE,mc); + BigDecimal bd2 = new BigDecimal(Long.MIN_VALUE).round(mc); + if (!bd1.equals(bd2)) { + System.out.println("new BigDecimal(long,MathContext):" + + "long == " + + Long.MIN_VALUE + "; result == " + + bd1 + "; expected == " + + bd2 + ); + failures++; + } + return failures; + } + + private static int minLongConstructorTest() { + int failures = 0; + failures+=minLongConstructorTest(MathContext.UNLIMITED); + failures+=minLongConstructorTest(MathContext.DECIMAL32); + failures+=minLongConstructorTest(MathContext.DECIMAL64); + failures+=minLongConstructorTest(MathContext.DECIMAL128); + return failures; + } + + public static void main(String argv[]) { + int failures = 0; + + failures += addBoundaryTest(); + failures += roundingConstructorTest(); + failures += minLongConstructorTest(); + if (failures > 0) { + throw new RuntimeException("Incurred " + failures + + " failures while testing."); + } + } + + + +} diff --git a/jdk/test/java/math/BigDecimal/StrippingZerosTest.java b/jdk/test/java/math/BigDecimal/StrippingZerosTest.java index c028d0830a9..30885e66574 100644 --- a/jdk/test/java/math/BigDecimal/StrippingZerosTest.java +++ b/jdk/test/java/math/BigDecimal/StrippingZerosTest.java @@ -25,6 +25,8 @@ * @test * @bug 4108852 * @summary A few tests of stripTrailingZeros + * @run main StrippingZerosTest + * @run main/othervm -XX:+AggressiveOpts StrippingZerosTest * @author Joseph D. Darcy */ @@ -53,6 +55,11 @@ public class StrippingZerosTest { {new BigDecimal("10000000e2"), new BigDecimal("1e9")}, {new BigDecimal("1000000e3"), new BigDecimal("1e9")}, {new BigDecimal("100000e4"), new BigDecimal("1e9")}, + // BD value which larger than Long.MaxValue + {new BigDecimal("1.0000000000000000000000000000"), new BigDecimal("1")}, + {new BigDecimal("-1.0000000000000000000000000000"), new BigDecimal("-1")}, + {new BigDecimal("1.00000000000000000000000000001"), new BigDecimal("1.00000000000000000000000000001")}, + {new BigDecimal("1000000000000000000000000000000e4"), new BigDecimal("1e34")}, }; for(int i = 0; i < testCases.length; i++) { diff --git a/jdk/test/java/math/BigDecimal/ToPlainStringTests.java b/jdk/test/java/math/BigDecimal/ToPlainStringTests.java index 3f5cdc59901..df3bc6ae9d5 100644 --- a/jdk/test/java/math/BigDecimal/ToPlainStringTests.java +++ b/jdk/test/java/math/BigDecimal/ToPlainStringTests.java @@ -25,6 +25,8 @@ * @test * @bug 4984872 * @summary Basic tests of toPlainString method + * @run main ToPlainStringTests + * @run main/othervm -XX:+AggressiveOpts ToPlainStringTests * @author Joseph D. Darcy */ @@ -60,6 +62,11 @@ public class ToPlainStringTests { {"8e-8", "0.00000008"}, {"9e-9", "0.000000009"}, {"9000e-12", "0.000000009000"}, + + {"9000e-22", "0.0000000000000000009000"}, + {"12345678901234567890", "12345678901234567890"}, + {"12345678901234567890e22", "123456789012345678900000000000000000000000"}, + {"12345678901234567890e-22", "0.0012345678901234567890"}, }; int errors = 0; @@ -73,8 +80,8 @@ public class ToPlainStringTests { s + "'' from BigDecimal " + bd); } - - if (!(s=("-"+bd.toPlainString())).equals("-"+testCase[1])) { + bd = new BigDecimal("-"+testCase[0]); + if (bd.signum()!=0 && !(s=(bd.toPlainString())).equals("-"+testCase[1])) { errors++; System.err.println("Unexpected plain result ``" + s + "'' from BigDecimal " + diff --git a/jdk/test/java/net/URL/Equals.java b/jdk/test/java/net/URL/Equals.java index 281d92895b4..e33ff1b2d5c 100644 --- a/jdk/test/java/net/URL/Equals.java +++ b/jdk/test/java/net/URL/Equals.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 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 @@ -23,16 +23,19 @@ /* * @test - * @bug 4052976 - * @summary Test URL.equals involving anchors - * + * @bug 4052976 7030649 + * @summary Test URL.equals with anchors, and jar URLs */ import java.net.*; public class Equals { - public static void main(String[] args) throws Exception { + anchors(); + jarURLs(); + } + + static void anchors() throws Exception { URL url1, url2; url1 = new URL(null, "http://JavaSoft/Test#bar"); @@ -45,4 +48,74 @@ public class Equals { if (url1.equals(null)) throw new RuntimeException("URL.equals fails given null"); } + + static final String HTTP_URL1A = "http://localhost/xyz"; + static final String HTTP_URL1B = "http://LOCALHOST/xyz"; + static final String FILE_URL1A = "file:///c:/foo/xyz"; + static final String FILE_URL1B = "file:/c:/foo/xyz"; + + static void jarURLs() throws Exception { + int failed = 0; + failed = compareJarURLS(HTTP_URL1A, HTTP_URL1A, "!/abc", "!/abc", true); + failed = compareJarURLS(HTTP_URL1A, HTTP_URL1B, "!/abc", "!/abc", true); + failed = compareJarURLS(HTTP_URL1B, HTTP_URL1A, "!/", "!/", true); + failed = compareJarURLS(HTTP_URL1A, HTTP_URL1B, "!/abc", "!/", false); + failed = compareJarURLS(HTTP_URL1A, HTTP_URL1B, "!/abc", "!/xy", false); + failed = compareJarURLS(FILE_URL1A, FILE_URL1A, "!/abc", "!/abc", true); + failed = compareJarURLS(FILE_URL1A, FILE_URL1B, "!/abc", "!/abc", true); + failed = compareJarURLS(FILE_URL1A, FILE_URL1B, "!/", "!/", true); + failed = compareJarURLS(FILE_URL1A, FILE_URL1B, "!/abc", "!/", false); + failed = compareJarURLS(FILE_URL1A, FILE_URL1B, "!/abc", "!/xy", false); + + failed = (new URL("jar:file://xzy!/abc")).equals( + new URL("file://xzy!/abc")) ? 1 : 0; + + if (failed > 0) + throw new RuntimeException("Some jar URL tests failed. Check output"); + } + + static int compareJarURLS(String urlStr1, String urlStr2, + String entry1, String entry2, + boolean expectEqual) throws Exception { + int failed = 0; + + URL url1 = new URL(urlStr1); + URL url2 = new URL(urlStr2); + + if (!url1.equals(url2)) { + System.out.println("Urls are not equal, so the test cannot run."); + System.out.println("url1: " + url1 + ", url2:" + url2); + return 1; + } + + URL jarUrl1 = new URL("jar:" + urlStr1 + entry1); + URL jarUrl2 = new URL("jar:" + urlStr2 + entry2); + jarUrl2.openConnection(); + + boolean equal = jarUrl1.equals(jarUrl2); + if (expectEqual && !equal) { + System.out.println("URLs should be equal, but are not. " + + jarUrl1 + ", " + jarUrl2); + failed++; + } else if (!expectEqual && equal) { + System.out.println("URLs should NOT be equal, but are. " + + jarUrl1 + ", " + jarUrl2); + failed++; + } + + if (expectEqual) { + // hashCode MUST produce the same integer result for equal urls + int hash1 = jarUrl1.hashCode(); + int hash2 = jarUrl2.hashCode(); + if (hash1 != hash2) { + System.out.println("jarUrl1.hashCode = " + hash1); + System.out.println("jarUrl2.hashCode = " + hash2); + System.out.println("Equal urls should have same hashCode. " + + jarUrl1 + ", " + jarUrl2); + failed++; + } + } + + return failed; + } } diff --git a/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java b/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java new file mode 100644 index 00000000000..36366678e8f --- /dev/null +++ b/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java @@ -0,0 +1,65 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6597112 + * @summary GC'ing objects whilst being exported to RMI should not cause exceptions + * @author Neil Richards , + */ + +import java.rmi.Remote; +import java.rmi.server.UnicastRemoteObject; + +public class GcDuringExport { + private static final long MAX_EXPORT_ITERATIONS = 50000; + + public static void main(String[] args) throws Exception { + Thread gcInducingThread = new Thread() { + public void run() { + while (true) { + System.gc(); + try { Thread.sleep(1); } catch (InterruptedException e) { } + } + } + }; + gcInducingThread.setDaemon(true); + gcInducingThread.start(); + + long i = 0; + try { + while (i < MAX_EXPORT_ITERATIONS) { + i++; + UnicastRemoteObject.exportObject(new Remote() { }, 0); + } + } catch (Throwable e) { + throw new RuntimeException("Test FAILED on iteration " + i + ".", e); + } + + System.out.println("Test successfully exported " + i + " objects."); + } +} diff --git a/jdk/test/java/util/Currency/CurrencyTest.java b/jdk/test/java/util/Currency/CurrencyTest.java index c3a3be4ad70..e7ae4fd79fc 100644 --- a/jdk/test/java/util/Currency/CurrencyTest.java +++ b/jdk/test/java/util/Currency/CurrencyTest.java @@ -23,7 +23,7 @@ /* * @test * @bug 4290801 4692419 4693631 5101540 5104960 6296410 6336600 6371531 - * 6488442 + * 6488442 7036905 * @summary Basic tests for Currency class. */ @@ -249,7 +249,7 @@ public class CurrencyTest { testDisplayName("ITL", new Locale("it"), "Lira Italiana"); testDisplayName("JPY", Locale.JAPANESE, "\u65e5\u672c\u5186"); testDisplayName("KRW", Locale.KOREAN, "\ub300\ud55c\ubbfc\uad6d \uc6d0"); - testDisplayName("SEK", new Locale("sv"), "Svensk krona"); + testDisplayName("SEK", new Locale("sv"), "svensk krona"); testDisplayName("CNY", Locale.SIMPLIFIED_CHINESE, "\u4eba\u6c11\u5e01"); testDisplayName("TWD", Locale.TRADITIONAL_CHINESE, "\u65b0\u81fa\u5e63"); } diff --git a/jdk/test/java/util/EnumMap/DistinctEntrySetElements.java b/jdk/test/java/util/EnumMap/DistinctEntrySetElements.java new file mode 100644 index 00000000000..b63aea902b0 --- /dev/null +++ b/jdk/test/java/util/EnumMap/DistinctEntrySetElements.java @@ -0,0 +1,60 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary Sets from Map.entrySet() return distinct objects for each Entry + * @author Neil Richards , + */ + +import java.util.EnumMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class DistinctEntrySetElements { + static enum TestEnum { e00, e01, e02 } + + public static void main(String[] args) throws Exception { + final EnumMap enumMap = new EnumMap<>(TestEnum.class); + + for (TestEnum e : TestEnum.values()) { + enumMap.put(e, e.name()); + } + + Set> entrySet = enumMap.entrySet(); + HashSet> hashSet = new HashSet<>(entrySet); + + if (false == hashSet.equals(entrySet)) { + throw new RuntimeException("Test FAILED: Sets are not equal."); + } + if (hashSet.hashCode() != entrySet.hashCode()) { + throw new RuntimeException("Test FAILED: Set's hashcodes are not equal."); + } + } +} diff --git a/jdk/test/java/util/EnumMap/EntrySetIteratorRemoveInvalidatesEntry.java b/jdk/test/java/util/EnumMap/EntrySetIteratorRemoveInvalidatesEntry.java new file mode 100644 index 00000000000..f57716232c5 --- /dev/null +++ b/jdk/test/java/util/EnumMap/EntrySetIteratorRemoveInvalidatesEntry.java @@ -0,0 +1,60 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary Iterator.remove() from Map.entrySet().iterator() invalidates returned Entry. + * @author Neil Richards , + */ + +import java.util.EnumMap; +import java.util.Iterator; +import java.util.Map; + +public class EntrySetIteratorRemoveInvalidatesEntry { + static enum TestEnum { e00, e01, e02 } + + public static void main(String[] args) throws Exception { + final EnumMap enumMap = new EnumMap<>(TestEnum.class); + + for (TestEnum e : TestEnum.values()) { + enumMap.put(e, e.name()); + } + + Iterator> entrySetIterator = + enumMap.entrySet().iterator(); + Map.Entry entry = entrySetIterator.next(); + + entrySetIterator.remove(); + + try { + entry.getKey(); + throw new RuntimeException("Test FAILED: Entry not invalidated by removal."); + } catch (Exception e) { } + } +} diff --git a/jdk/test/java/util/EnumMap/SimpleSerialization.java b/jdk/test/java/util/EnumMap/SimpleSerialization.java new file mode 100644 index 00000000000..b6a9ed2757f --- /dev/null +++ b/jdk/test/java/util/EnumMap/SimpleSerialization.java @@ -0,0 +1,89 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary A serialized EnumMap can be successfully de-serialized. + * @author Neil Richards , + */ + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.EnumMap; + +public class SimpleSerialization { + private enum TestEnum { e00, e01, e02, e03, e04, e05, e06, e07 } + public static void main(final String[] args) throws Exception { + final EnumMap enumMap = new EnumMap<>(TestEnum.class); + + enumMap.put(TestEnum.e01, TestEnum.e01.name()); + enumMap.put(TestEnum.e04, TestEnum.e04.name()); + enumMap.put(TestEnum.e05, TestEnum.e05.name()); + + final ByteArrayOutputStream baos = new ByteArrayOutputStream(); + final ObjectOutputStream oos = new ObjectOutputStream(baos); + + oos.writeObject(enumMap); + oos.close(); + + final byte[] data = baos.toByteArray(); + final ByteArrayInputStream bais = new ByteArrayInputStream(data); + final ObjectInputStream ois = new ObjectInputStream(bais); + + final Object deserializedObject = ois.readObject(); + ois.close(); + + if (false == enumMap.equals(deserializedObject)) { + throw new RuntimeException(getFailureText(enumMap, deserializedObject)); + } + } + + private static String getFailureText(final Object orig, final Object copy) { + final StringWriter sw = new StringWriter(); + final PrintWriter pw = new PrintWriter(sw); + + pw.println("Test FAILED: Deserialized object is not equal to the original object"); + pw.print("\tOriginal: "); + printObject(pw, orig).println(); + pw.print("\tCopy: "); + printObject(pw, copy).println(); + + pw.close(); + return sw.toString(); + } + + private static PrintWriter printObject(final PrintWriter pw, final Object o) { + pw.printf("%s@%08x", o.getClass().getName(), System.identityHashCode(o)); + return pw; + } +} diff --git a/jdk/test/java/util/IdentityHashMap/DistinctEntrySetElements.java b/jdk/test/java/util/IdentityHashMap/DistinctEntrySetElements.java new file mode 100644 index 00000000000..7920115849d --- /dev/null +++ b/jdk/test/java/util/IdentityHashMap/DistinctEntrySetElements.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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary Sets from Map.entrySet() return distinct objects for each Entry + * @author Neil Richards , + */ + +import java.util.IdentityHashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class DistinctEntrySetElements { + public static void main(String[] args) throws Exception { + final IdentityHashMap identityHashMap = + new IdentityHashMap<>(); + + identityHashMap.put("One", "Un"); + identityHashMap.put("Two", "Deux"); + identityHashMap.put("Three", "Trois"); + + Set> entrySet = identityHashMap.entrySet(); + HashSet> hashSet = new HashSet<>(entrySet); + + // NB: These comparisons are valid in this case because none of the + // keys put into 'identityHashMap' above are equal to any other. + if (false == hashSet.equals(entrySet)) { + throw new RuntimeException("Test FAILED: Sets are not equal."); + } + if (hashSet.hashCode() != entrySet.hashCode()) { + throw new RuntimeException("Test FAILED: Set's hashcodes are not equal."); + } + } +} diff --git a/jdk/test/java/util/IdentityHashMap/EntrySetIteratorRemoveInvalidatesEntry.java b/jdk/test/java/util/IdentityHashMap/EntrySetIteratorRemoveInvalidatesEntry.java new file mode 100644 index 00000000000..369cadfc435 --- /dev/null +++ b/jdk/test/java/util/IdentityHashMap/EntrySetIteratorRemoveInvalidatesEntry.java @@ -0,0 +1,59 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary Iterator.remove() from Map.entrySet().iterator() invalidates returned Entry. + * @author Neil Richards , + */ + +import java.util.IdentityHashMap; +import java.util.Iterator; +import java.util.Map; + +public class EntrySetIteratorRemoveInvalidatesEntry { + public static void main(String[] args) throws Exception { + final IdentityHashMap identityHashMap = + new IdentityHashMap<>(); + + identityHashMap.put("One", "Un"); + identityHashMap.put("Two", "Deux"); + identityHashMap.put("Three", "Trois"); + + Iterator> entrySetIterator = + identityHashMap.entrySet().iterator(); + Map.Entry entry = entrySetIterator.next(); + + entrySetIterator.remove(); + + try { + entry.getKey(); + throw new RuntimeException("Test FAILED: Entry not invalidated by removal."); + } catch (Exception e) { } + } +} diff --git a/jdk/test/java/util/PriorityQueue/NoNulls.java b/jdk/test/java/util/PriorityQueue/NoNulls.java index 21f76876b4c..5ef7c536c8a 100644 --- a/jdk/test/java/util/PriorityQueue/NoNulls.java +++ b/jdk/test/java/util/PriorityQueue/NoNulls.java @@ -28,7 +28,7 @@ * * Written by Martin Buchholz with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/PriorityQueue/PriorityQueueSort.java b/jdk/test/java/util/PriorityQueue/PriorityQueueSort.java index 29d663d01fe..206d6e815c5 100644 --- a/jdk/test/java/util/PriorityQueue/PriorityQueueSort.java +++ b/jdk/test/java/util/PriorityQueue/PriorityQueueSort.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/Random/DistinctSeeds.java b/jdk/test/java/util/Random/DistinctSeeds.java index 76067507c7c..fd2bcfcb658 100644 --- a/jdk/test/java/util/Random/DistinctSeeds.java +++ b/jdk/test/java/util/Random/DistinctSeeds.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/ResourceBundle/Bug4168625Test.java b/jdk/test/java/util/ResourceBundle/Bug4168625Test.java index f9f58fba46b..cf511101bf1 100644 --- a/jdk/test/java/util/ResourceBundle/Bug4168625Test.java +++ b/jdk/test/java/util/ResourceBundle/Bug4168625Test.java @@ -282,7 +282,7 @@ public class Bug4168625Test extends RBTestFmwk { thread1.start(); //start thread 1 loader.waitForNotify(1); //wait for thread1 to do getBundle & block in loader thread2.start(); //start second thread - thread2.join(1000); //wait until thread2 blocks somewhere in getBundle + thread2.join(); //wait until thread2 terminates. //Thread1 should be blocked inside getBundle at the class loader //Thread2 should have completed its getBundle call and terminated @@ -292,7 +292,6 @@ public class Bug4168625Test extends RBTestFmwk { thread1.ping(); //continue thread1 thread1.join(); - thread2.join(); } /** @@ -318,8 +317,7 @@ public class Bug4168625Test extends RBTestFmwk { loader.waitForNotify(3); //wait for thread1 to do getBundle(en) & block in loader causeResourceBundleCacheFlush(); //cause a cache flush thread1.ping(); //kick thread 1 - thread1.ping(); //kick thread 1 - thread1.join(1000); //wait until thread2 blocks somewhere in getBundle + thread1.join(); //wait until thread1 terminates ResourceBundle bundle = (ResourceBundle)thread1.bundle; String s1 = bundle.getString("Bug4168625Resource3_en_US"); diff --git a/jdk/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java b/jdk/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java index 755ff9c2d97..acee6e676be 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java b/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java index 5bf6d0dbbee..d9859f30066 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** diff --git a/jdk/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java b/jdk/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java index d57939fc374..58983059bfe 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java b/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java index f5e9cc27913..bba0512ac6a 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java b/jdk/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java index c9f50131075..417fa7ee6c9 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java b/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java index 9f18ab53c89..7755126674c 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java b/jdk/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java index 85699bc7d56..a697d312df5 100644 --- a/jdk/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java +++ b/jdk/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java b/jdk/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java new file mode 100644 index 00000000000..cf6f29112e1 --- /dev/null +++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java @@ -0,0 +1,59 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 6312706 + * @summary Sets from Map.entrySet() return distinct objects for each Entry + * @author Neil Richards , + */ + +import java.util.concurrent.ConcurrentHashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class DistinctEntrySetElements { + public static void main(String[] args) throws Exception { + final ConcurrentHashMap concurrentHashMap = + new ConcurrentHashMap<>(); + + concurrentHashMap.put("One", "Un"); + concurrentHashMap.put("Two", "Deux"); + concurrentHashMap.put("Three", "Trois"); + + Set> entrySet = concurrentHashMap.entrySet(); + HashSet> hashSet = new HashSet<>(entrySet); + + if (false == hashSet.equals(entrySet)) { + throw new RuntimeException("Test FAILED: Sets are not equal."); + } + if (hashSet.hashCode() != entrySet.hashCode()) { + throw new RuntimeException("Test FAILED: Set's hashcodes are not equal."); + } + } +} diff --git a/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java b/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java index 5bf6d0dbbee..d9859f30066 100644 --- a/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** diff --git a/jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java b/jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java index c6075c131b9..723ef64dc89 100644 --- a/jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java +++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java b/jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java index 53ed2919a9d..49f615a3401 100644 --- a/jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java +++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java b/jdk/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java index b9936285339..7ee63a336fd 100644 --- a/jdk/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java +++ b/jdk/test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ConcurrentQueues/GCRetention.java b/jdk/test/java/util/concurrent/ConcurrentQueues/GCRetention.java index 1786ed3509d..363558cbc03 100644 --- a/jdk/test/java/util/concurrent/ConcurrentQueues/GCRetention.java +++ b/jdk/test/java/util/concurrent/ConcurrentQueues/GCRetention.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* * @test diff --git a/jdk/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java b/jdk/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java index dabb2b9de2a..c143c3f04b7 100644 --- a/jdk/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java +++ b/jdk/test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ import java.util.*; diff --git a/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java b/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java index 5bf6d0dbbee..d9859f30066 100644 --- a/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** diff --git a/jdk/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java b/jdk/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java index 1bccb53cd70..f973d498f15 100644 --- a/jdk/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java +++ b/jdk/test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java b/jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java index 2055c056ca3..7527e4fe4c2 100644 --- a/jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java +++ b/jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java b/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java index 6b65b8b2d4a..5a6924c687e 100644 --- a/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** * Misc utilities in JSR166 performance tests diff --git a/jdk/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java b/jdk/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java index 71c45e75f7f..79b2c5634e9 100644 --- a/jdk/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java +++ b/jdk/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java b/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java index 6b65b8b2d4a..5a6924c687e 100644 --- a/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** * Misc utilities in JSR166 performance tests diff --git a/jdk/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java b/jdk/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java index 6a0ca8c93df..25cec33881d 100644 --- a/jdk/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java +++ b/jdk/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java b/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java index 6b65b8b2d4a..5a6924c687e 100644 --- a/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** * Misc utilities in JSR166 performance tests diff --git a/jdk/test/java/util/concurrent/Phaser/Arrive.java b/jdk/test/java/util/concurrent/Phaser/Arrive.java index 94496ab6572..0787176200d 100644 --- a/jdk/test/java/util/concurrent/Phaser/Arrive.java +++ b/jdk/test/java/util/concurrent/Phaser/Arrive.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Phaser/Basic.java b/jdk/test/java/util/concurrent/Phaser/Basic.java index a358873c2ec..d9f60ecd3ae 100644 --- a/jdk/test/java/util/concurrent/Phaser/Basic.java +++ b/jdk/test/java/util/concurrent/Phaser/Basic.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Phaser/FickleRegister.java b/jdk/test/java/util/concurrent/Phaser/FickleRegister.java index 9ce91c5de44..c3bc7dda50e 100644 --- a/jdk/test/java/util/concurrent/Phaser/FickleRegister.java +++ b/jdk/test/java/util/concurrent/Phaser/FickleRegister.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Phaser/PhaseOverflow.java b/jdk/test/java/util/concurrent/Phaser/PhaseOverflow.java index da8b5367072..093d9497cc8 100644 --- a/jdk/test/java/util/concurrent/Phaser/PhaseOverflow.java +++ b/jdk/test/java/util/concurrent/Phaser/PhaseOverflow.java @@ -29,7 +29,7 @@ * Written by Martin Buchholz and Doug Lea with assistance from * members of JCP JSR-166 Expert Group and released to the public * domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Phaser/TieredArriveLoops.java b/jdk/test/java/util/concurrent/Phaser/TieredArriveLoops.java index 33a03f08dab..d9c8954d05d 100644 --- a/jdk/test/java/util/concurrent/Phaser/TieredArriveLoops.java +++ b/jdk/test/java/util/concurrent/Phaser/TieredArriveLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java index bc34d00965f..e03f489e648 100644 --- a/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java +++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java b/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java index 3290abebf67..d8137a2ace0 100644 --- a/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java +++ b/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/Semaphore/RacingReleases.java b/jdk/test/java/util/concurrent/Semaphore/RacingReleases.java index a5f69beae22..1a23bb924a2 100644 --- a/jdk/test/java/util/concurrent/Semaphore/RacingReleases.java +++ b/jdk/test/java/util/concurrent/Semaphore/RacingReleases.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/forkjoin/Integrate.java b/jdk/test/java/util/concurrent/forkjoin/Integrate.java index 5b5438d0657..dda58467983 100644 --- a/jdk/test/java/util/concurrent/forkjoin/Integrate.java +++ b/jdk/test/java/util/concurrent/forkjoin/Integrate.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/forkjoin/NQueensCS.java b/jdk/test/java/util/concurrent/forkjoin/NQueensCS.java index ab147bfbd08..4a55281c1c2 100644 --- a/jdk/test/java/util/concurrent/forkjoin/NQueensCS.java +++ b/jdk/test/java/util/concurrent/forkjoin/NQueensCS.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java b/jdk/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java index 3f7667c247a..e942e1811bd 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java b/jdk/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java index 8682e24dbab..c3cedf4ab1e 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java b/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java index 6b65b8b2d4a..5a6924c687e 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** * Misc utilities in JSR166 performance tests diff --git a/jdk/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java b/jdk/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java index db7d5af61dc..f3e77053027 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java b/jdk/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java index 3c20867531a..303e11038a8 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java index 6b65b8b2d4a..5a6924c687e 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /** * Misc utilities in JSR166 performance tests diff --git a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java index a8e47e5a25e..36116703814 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ /* diff --git a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java index 53f63d6e33c..a281634c33a 100644 --- a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java +++ b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java @@ -28,7 +28,7 @@ * * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain + * http://creativecommons.org/publicdomain/zero/1.0/ */ import java.util.*; diff --git a/jdk/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java b/jdk/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java new file mode 100644 index 00000000000..5ab8e835b79 --- /dev/null +++ b/jdk/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java @@ -0,0 +1,148 @@ +/* + * 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. + */ + +/* + * Portions Copyright (c) 2011 IBM Corporation + */ + +/* + * @test + * @bug 7031076 + * @summary Allow stale InputStreams from ZipFiles to be GC'd + * @author Neil Richards , + */ +import java.lang.ref.ReferenceQueue; +import java.lang.ref.WeakReference; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Random; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; +import java.util.zip.ZipOutputStream; + +public class ClearStaleZipFileInputStreams { + private static final int ZIP_ENTRY_NUM = 5; + + private static final byte[][] data; + + static { + data = new byte[ZIP_ENTRY_NUM][]; + Random r = new Random(); + for (int i = 0; i < ZIP_ENTRY_NUM; i++) { + data[i] = new byte[1000]; + r.nextBytes(data[i]); + } + } + + private static File createTestFile(int compression) throws Exception { + File tempZipFile = + File.createTempFile("test-data" + compression, ".zip"); + tempZipFile.deleteOnExit(); + + ZipOutputStream zos = + new ZipOutputStream(new FileOutputStream(tempZipFile)); + zos.setLevel(compression); + + try { + for (int i = 0; i < ZIP_ENTRY_NUM; i++) { + String text = "Entry" + i; + ZipEntry entry = new ZipEntry(text); + zos.putNextEntry(entry); + try { + zos.write(data[i], 0, data[i].length); + } finally { + zos.closeEntry(); + } + } + } finally { + zos.close(); + } + + return tempZipFile; + } + + private static void startGcInducingThread(final int sleepMillis) { + final Thread gcInducingThread = new Thread() { + public void run() { + while (true) { + System.gc(); + try { + Thread.sleep(sleepMillis); + } catch (InterruptedException e) { } + } + } + }; + + gcInducingThread.setDaemon(true); + gcInducingThread.start(); + } + + public static void main(String[] args) throws Exception { + startGcInducingThread(500); + runTest(ZipOutputStream.DEFLATED); + runTest(ZipOutputStream.STORED); + } + + private static void runTest(int compression) throws Exception { + ReferenceQueue rq = new ReferenceQueue<>(); + + System.out.println("Testing with a zip file with compression level = " + + compression); + File f = createTestFile(compression); + try { + ZipFile zf = new ZipFile(f); + try { + Set refSet = createTransientInputStreams(zf, rq); + + System.out.println("Waiting for 'stale' input streams from ZipFile to be GC'd ..."); + System.out.println("(The test will hang on failure)"); + while (false == refSet.isEmpty()) { + refSet.remove(rq.remove()); + } + System.out.println("Test PASSED."); + System.out.println(); + } finally { + zf.close(); + } + } finally { + f.delete(); + } + } + + private static Set createTransientInputStreams(ZipFile zf, + ReferenceQueue rq) throws Exception { + Enumeration zfe = zf.entries(); + Set refSet = new HashSet<>(); + + while (zfe.hasMoreElements()) { + InputStream is = zf.getInputStream(zfe.nextElement()); + refSet.add(new WeakReference(is, rq)); + } + + return refSet; + } +} diff --git a/jdk/test/javax/crypto/Cipher/GCMAPI.java b/jdk/test/javax/crypto/Cipher/GCMAPI.java new file mode 100644 index 00000000000..1ccb230d328 --- /dev/null +++ b/jdk/test/javax/crypto/Cipher/GCMAPI.java @@ -0,0 +1,138 @@ +/* + * 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 7031343 + * @summary Provide API changes to support GCM AEAD ciphers + * @author Brad Wetmore + */ + +import javax.crypto.*; +import javax.crypto.spec.*; +import java.nio.ByteBuffer; + +/* + * At this point in time, we can't really do any testing since only the API + * is available, the underlying implementation doesn't exist yet. Test + * what we can... + */ +public class GCMAPI { + + // 16 elements + private static byte[] bytes = new byte[] { + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; + + private static int failed = 0; + private static Cipher c; + + public static void main(String[] args) throws Exception { + c = Cipher.getInstance("AES"); + c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(new byte[16], "AES")); + + updateAADFail((byte[]) null); + updateAADPass(bytes); + + updateAADFail(null, 2, 4); + updateAADFail(bytes, -2, 4); + updateAADFail(bytes, 2, -4); + updateAADFail(bytes, 2, 15); // one too many + + updateAADPass(bytes, 2, 14); // ok. + updateAADPass(bytes, 4, 4); + updateAADPass(bytes, 0, 0); + + ByteBuffer bb = ByteBuffer.wrap(bytes); + + updateAADFail((ByteBuffer) null); + updateAADPass(bb); + + if (failed != 0) { + throw new Exception("Test(s) failed"); + } + } + + private static void updateAADPass(byte[] src) { + try { + c.updateAAD(src); + } catch (UnsupportedOperationException e) { + // swallow + }catch (Exception e) { + e.printStackTrace(); + failed++; + } + } + + private static void updateAADFail(byte[] src) { + try { + c.updateAAD(src); + new Exception("Didn't Fail as Expected").printStackTrace(); + failed++; + } catch (IllegalArgumentException e) { + // swallow + } + } + + private static void updateAADPass(byte[] src, int offset, int len) { + try { + c.updateAAD(src, offset, len); + } catch (UnsupportedOperationException e) { + // swallow + } catch (Exception e) { + e.printStackTrace(); + failed++; + } + } + + private static void updateAADFail(byte[] src, int offset, int len) { + try { + c.updateAAD(src, offset, len); + new Exception("Didn't Fail as Expected").printStackTrace(); + failed++; + } catch (IllegalArgumentException e) { + // swallow + } + } + + private static void updateAADPass(ByteBuffer src) { + try { + c.updateAAD(src); + } catch (UnsupportedOperationException e) { + // swallow + }catch (Exception e) { + e.printStackTrace(); + failed++; + } + } + + private static void updateAADFail(ByteBuffer src) { + try { + c.updateAAD(src); + new Exception("Didn't Fail as Expected").printStackTrace(); + failed++; + } catch (IllegalArgumentException e) { + // swallow + } + } +} diff --git a/jdk/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java b/jdk/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java new file mode 100644 index 00000000000..3991c8f29a0 --- /dev/null +++ b/jdk/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java @@ -0,0 +1,130 @@ +/* + * 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 7031343 + * @summary Provide API changes to support GCM AEAD ciphers + * @author Brad Wetmore + */ + +import javax.crypto.AEADBadTagException; +import javax.crypto.spec.GCMParameterSpec; +import java.util.Arrays; + +public class GCMParameterSpecTest { + + // 16 elements + private static byte[] bytes = new byte[] { + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f }; + + private static int failed = 0; + + public static void main(String[] args) throws Exception { + newGCMParameterSpecFail(-1, bytes); + newGCMParameterSpecFail(128, null); + newGCMParameterSpecPass(128, bytes); + + newGCMParameterSpecFail(-1, bytes, 2, 4); + newGCMParameterSpecFail(128, null, 2, 4); + newGCMParameterSpecFail(128, bytes, -2, 4); + newGCMParameterSpecFail(128, bytes, 2, -4); + newGCMParameterSpecFail(128, bytes, 2, 15); // one too many + + newGCMParameterSpecPass(128, bytes, 2, 14); // ok. + newGCMParameterSpecPass(96, bytes, 4, 4); + newGCMParameterSpecPass(96, bytes, 0, 0); + + // Might as well check the Exception constructors. + try { + new AEADBadTagException(); + new AEADBadTagException("Bad Tag Seen"); + } catch (Exception e) { + e.printStackTrace(); + failed++; + } + + if (failed != 0) { + throw new Exception("Test(s) failed"); + } + } + + private static void newGCMParameterSpecPass( + int tLen, byte[] src) { + try { + GCMParameterSpec gcmps = new GCMParameterSpec(tLen, src); + if (gcmps.getTLen() != tLen) { + throw new Exception("tLen's not equal"); + } + if (!Arrays.equals(gcmps.getIV(), src)) { + throw new Exception("IV's not equal"); + } + } catch (Exception e) { + e.printStackTrace(); + failed++; + } + } + + private static void newGCMParameterSpecFail( + int tLen, byte[] src) { + try { + new GCMParameterSpec(tLen, src); + new Exception("Didn't Fail as Expected").printStackTrace(); + failed++; + } catch (IllegalArgumentException e) { + // swallow + } + } + + private static void newGCMParameterSpecPass( + int tLen, byte[] src, int offset, int len) { + try { + GCMParameterSpec gcmps = + new GCMParameterSpec(tLen, src, offset, len); + if (gcmps.getTLen() != tLen) { + throw new Exception("tLen's not equal"); + } + if (!Arrays.equals(gcmps.getIV(), + Arrays.copyOfRange(src, offset, offset + len))) { + System.out.println(offset + " " + len); + System.out.println(Arrays.copyOfRange(src, offset, len)[0]); + throw new Exception("IV's not equal"); + } + } catch (Exception e) { + e.printStackTrace(); + failed++; + } + } + + private static void newGCMParameterSpecFail( + int tLen, byte[] src, int offset, int len) { + try { + new GCMParameterSpec(tLen, src, offset, len); + new Exception("Didn't Fail as Expected").printStackTrace(); + failed++; + } catch (IllegalArgumentException e) { + // swallow + } + } +} diff --git a/jdk/test/javax/imageio/metadata/DOML3Node.java b/jdk/test/javax/imageio/metadata/DOML3Node.java index 0a72c135175..459334940cc 100644 --- a/jdk/test/javax/imageio/metadata/DOML3Node.java +++ b/jdk/test/javax/imageio/metadata/DOML3Node.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,7 @@ /* * @test - * @bug 6559064 + * @bug 6559064 6942504 * * @summary Verify DOM L3 Node APIs behave as per Image I/O spec. * @@ -34,6 +34,7 @@ import javax.imageio.metadata.IIOMetadataNode; import org.w3c.dom.Attr; +import org.w3c.dom.Node; import org.w3c.dom.DOMException; import org.w3c.dom.UserDataHandler; @@ -74,7 +75,7 @@ public class DOML3Node { } try { - node.setUserData("key"); + node.getUserData("key"); throw new RuntimeException("No expected DOM exception"); } catch (DOMException e) { } @@ -115,12 +116,6 @@ public class DOML3Node { } catch (DOMException e) { } - try { - node.lookupPrefix("namespaceURI"); - throw new RuntimeException("No expected DOM exception"); - } catch (DOMException e) { - } - try { node.getTextContent(); throw new RuntimeException("No expected DOM exception"); diff --git a/jdk/test/sample/chatserver/ChatTest.java b/jdk/test/sample/chatserver/ChatTest.java new file mode 100644 index 00000000000..05d6f44e860 --- /dev/null +++ b/jdk/test/sample/chatserver/ChatTest.java @@ -0,0 +1,399 @@ +/* + * 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 + * @summary Test chat server chatserver test + * + * @library ../../../src/share/sample/nio/chatserver + * @build ChatTest ChatServer Client ClientReader DataReader MessageReader NameReader + * @run main ChatTest + */ + +import java.io.*; +import java.net.InetSocketAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CyclicBarrier; + +public class ChatTest { + public static int listeningPort = 0; + + public static void main(String[] args) throws Throwable { + testStartStop(); + testPortOpen(); + testAsksForName(); + testUseName(); + testConnectDisconnectConnect(); + testUsernameAndMessage(); + testDontReceiveMessageInNameState(); + } + + private static ChatServer startServer() throws IOException { + ChatServer server = new ChatServer(0); + InetSocketAddress address = (InetSocketAddress) server.getSocketAddress(); + listeningPort = address.getPort(); + server.run(); + return server; + } + + public static void testStartStop() throws Exception { + ChatServer server = startServer(); + server.shutdown(); + } + + public static void testPortOpen() throws Exception { + ChatServer server = startServer(); + try { + Socket socket = new Socket("localhost", listeningPort); + if (!socket.isConnected()) { + throw new RuntimeException("Failed to connect to server: port not open"); + } + } finally { + server.shutdown(); + } + } + + public static void testAsksForName() throws Exception { + ChatServer server = startServer(); + try { + Socket socket = new Socket("localhost", listeningPort); + + Reader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); + String string = readAvailableString(reader); + if (!string.equals("Name: ")) { + throw new RuntimeException("Server doesn't send Name: "); + } + } finally { + server.shutdown(); + } + } + + public static void testUseName() throws Throwable { + ChatServer server = startServer(); + try { + performTestUseName(); + } finally { + server.shutdown(); + } + } + + public static void testConnectDisconnectConnect() throws Exception { + ChatServer server = startServer(); + try { + performTestConnectDisconnectConnect(); + } finally { + server.shutdown(); + } + } + + public static void testUsernameAndMessage() throws Exception { + ChatServer server = startServer(); + try { + performTestUsernameAndMessage(); + } finally { + server.shutdown(); + } + } + + public static void testDontReceiveMessageInNameState() throws Exception { + ChatServer server = startServer(); + try { + performDontReceiveMessageInNameState(); + } finally { + server.shutdown(); + } + } + + private static void assertEqual(List exception, Object value, Object expected) { + if (expected == value) { + return; + } + if (expected == null) { + exception.add(new RuntimeException("Expected null, but was: " + value)); + return; + } + if (!expected.equals(value)) { + exception.add(new RuntimeException("Expected: " + expected + " but was: " + value)); + return; + } + } + + private static void performDontReceiveMessageInNameState() throws Exception { + final CyclicBarrier barrier1 = new CyclicBarrier(2); + final CyclicBarrier barrier2 = new CyclicBarrier(2); + final CyclicBarrier barrier3 = new CyclicBarrier(2); + final List exceptions = Collections.synchronizedList(new ArrayList()); + + ChatConnection chatConnection = new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + assertEqual(exceptions, string, "Name: "); + writer.write("testClient1\n"); + waitForJoin(reader, "testClient1"); + barrier1.await(); + writer.write("Ignore this!\n"); + barrier2.await(); + barrier3.await(); + } + }; + + Thread client2 = new Thread(new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + barrier1.await(); + barrier2.await(); + String string = readAvailableString(reader); + assertEqual(exceptions, string, "Name: "); + string = readAvailableString(reader, true); + assertEqual(exceptions, string, null); + writer.write("testClient2\n"); + barrier3.await(); + } + }); + + client2.start(); + chatConnection.run(); + if (!exceptions.isEmpty()) { + throw exceptions.get(0); + } + + } + + private static void waitForJoin(BufferedReader reader, String s) throws IOException { + String joined; + do { + joined = readAvailableString(reader); + } while (!(joined != null && joined.contains("Welcome " + s))); + } + + private static void performTestUsernameAndMessage() throws Exception { + final CyclicBarrier barrier1 = new CyclicBarrier(2); + final CyclicBarrier barrier2 = new CyclicBarrier(2); + final CyclicBarrier barrier3 = new CyclicBarrier(2); + final List exceptions = Collections.synchronizedList(new ArrayList()); + + ChatConnection chatConnection = new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + assertEqual(exceptions, string, "Name: "); + writer.write("testClient1\n"); + waitForJoin(reader, "testClient1"); + barrier1.await(); + barrier2.await(); + string = readAvailableString(reader); + assertEqual(exceptions, string, "testClient2: Hello world!\n"); + barrier3.await(); + } + }; + + Thread client2 = new Thread(new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + assertEqual(exceptions, string, "Name: "); + barrier1.await(); + writer.write("testClient2\nHello world!\n"); + barrier2.await(); + barrier3.await(); + } + }); + + client2.start(); + chatConnection.run(); + if (!exceptions.isEmpty()) { + throw exceptions.get(0); + } + } + + private static void performTestConnectDisconnectConnect() throws Exception { + final CyclicBarrier barrier1 = new CyclicBarrier(2); + final CyclicBarrier barrier2 = new CyclicBarrier(2); + final CyclicBarrier barrier3 = new CyclicBarrier(2); + final List exceptions = new ArrayList(); + + ChatConnection chatConnection = new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + assertEqual(exceptions, string, "Name: "); + writer.write("testClient1\n"); + } + }; + + ChatConnection chatConnection2 = new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + readAvailableString(reader); + writer.write("testClient1\n"); + waitForJoin(reader, "testClient1"); + barrier1.await(); + writer.write("Good morning!\n"); + barrier2.await(); + String string = readAvailableString(reader); + assertEqual(exceptions, string, "testClient2: Hello world!\n"); + barrier3.await(); + } + }; + + Thread client2 = new Thread(new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + readAvailableString(reader); + writer.write("testClient2\n"); + waitForJoin(reader, "testClient2"); + barrier1.await(); + writer.write("Hello world!\n"); + barrier2.await(); + String string = readAvailableString(reader); + assertEqual(exceptions, string, "testClient1: Good morning!\n"); + barrier3.await(); + } + }); + + client2.start(); + chatConnection.run(); + chatConnection2.run(); + if (!exceptions.isEmpty()) { + throw exceptions.get(0); + } + } + + private static void performTestUseName() throws Exception { + final CyclicBarrier barrier1 = new CyclicBarrier(2); + final CyclicBarrier barrier2 = new CyclicBarrier(2); + final CyclicBarrier barrier3 = new CyclicBarrier(2); + final List exceptions = new ArrayList(); + + ChatConnection chatConnection = new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + if (!"Name: ".equals(string)) { + exceptions.add(new RuntimeException("Expected Name: ")); + } + writer.write("testClient1\n"); + waitForJoin(reader, "testClient1"); + barrier1.await(); + barrier2.await(); + string = readAvailableString(reader); + if (!"testClient2: Hello world!\n".equals(string)) { + exceptions.add(new RuntimeException("testClient2: Hello world!\n")); + } + barrier3.await(); + } + }; + + Thread client2 = new Thread(new ChatConnection() { + @Override + public void run(Socket socket, BufferedReader reader, Writer writer) throws Exception { + String string = readAvailableString(reader); + if (!"Name: ".equals(string)) { + exceptions.add(new RuntimeException("Expected Name: ")); + } + writer.write("testClient2\n"); + waitForJoin(reader, "testClient2"); + barrier1.await(); + writer.write("Hello world!\n"); + barrier2.await(); + barrier3.await(); + } + }); + + client2.start(); + chatConnection.run(); + if (!exceptions.isEmpty()) { + throw exceptions.get(0); + } + } + + private static String readAvailableString(Reader reader) throws IOException { + return readAvailableString(reader, false); + } + + private static String readAvailableString(Reader reader, boolean now) throws IOException { + StringBuilder builder = new StringBuilder(); + int bytes; + if (now && !reader.ready()) { + return null; + } + do { + char[] buf = new char[256]; + bytes = reader.read(buf); + builder.append(buf, 0, bytes); + } while (bytes == 256); + return builder.toString(); + } + + private abstract static class ChatConnection implements Runnable { + public Exception exception; + + @Override + public void run() { + try (Socket socket = new Socket("localhost", listeningPort); + BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); + Writer writer = new FlushingWriter(new OutputStreamWriter(socket.getOutputStream()))) { + socket.setTcpNoDelay(true); + + run(socket, reader, writer); + } catch (Exception e) { + exception = e; + } + } + + public abstract void run(Socket socket, BufferedReader reader, Writer writer) throws Exception; + } + + private static class FlushingWriter extends Writer { + public final Writer delegate; + + private FlushingWriter(Writer delegate) { + this.delegate = delegate; + } + + @Override + public void write(char[] cbuf, int off, int len) throws IOException { + delegate.write(cbuf, off, len); + } + + @Override + public void flush() throws IOException { + delegate.flush(); + } + + @Override + public void close() throws IOException { + delegate.close(); + } + + @Override + public void write(String str) throws IOException { + super.write(str); + flush(); + } + } +} diff --git a/jdk/test/sample/mergesort/MergeSortTest.java b/jdk/test/sample/mergesort/MergeSortTest.java new file mode 100644 index 00000000000..001e4f0a170 --- /dev/null +++ b/jdk/test/sample/mergesort/MergeSortTest.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 + * @summary Test MergeSort + * + * @library ../../../src/share/sample/forkjoin/mergesort + * @build MergeSortTest MergeDemo MergeSort + * @run main MergeSortTest + */ + +import java.util.Arrays; +import java.util.Random; + +public class MergeSortTest { + private Random random; + private MergeSort target; + + public MergeSortTest(Random random, MergeSort target) { + this.random = random; + this.target = target; + } + + public static void main(String[] args) { + MergeSortTest test = new MergeSortTest(new Random(), new MergeSort(Runtime.getRuntime().availableProcessors() * 4)); + test.run(); + } + + private int[] generateArray(int elements) { + int[] array = new int[elements]; + for (int i = 0; i < array.length; ++i) { + array[i] = random.nextInt(10); + } + return array; + } + + private void run() { + testSort(); + testSortSingle(); + testSortEmpty(); + testLong(); + } + + public void testLong() { + for (int i = 0; i < 1000; ++i) { + int elements = 1 + i * 100; + + int[] array = generateArray(elements); + int[] copy = Arrays.copyOf(array, array.length); + Arrays.sort(copy); + target.sort(array); + assertEqual(copy, array); + } + } + + private void testSortEmpty() { + int[] array = { }; + target.sort(array); + assertEqual(new int[] { }, array); + } + + private void testSortSingle() { + int[] array = { 1 }; + target.sort(array); + assertEqual(new int[] { 1 }, array); + } + + private void testSort() { + int[] array = { 7, 3, 9, 0, -6, 12, 54, 3, -6, 88, 1412}; + target.sort(array); + assertEqual(new int[] { -6, -6, 0, 3, 3, 7, 9, 12, 54, 88, 1412 }, array); + } + + private void assertEqual(int[] expected, int[] array) { + if (!Arrays.equals(expected, array)) { + throw new RuntimeException("Invalid sorted array!"); + } + } + + +} diff --git a/jdk/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java b/jdk/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java index bf16b776e91..89bd29af056 100644 --- a/jdk/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java +++ b/jdk/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java @@ -23,7 +23,7 @@ /** * @test - * @bug 6476665 + * @bug 6476665 7033534 * @summary Verifies color conversion of Component Color Model based images * @run main ColConvCCMTest */ diff --git a/jdk/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java b/jdk/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java index c54c1305a25..d764054e472 100644 --- a/jdk/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java +++ b/jdk/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java @@ -23,7 +23,7 @@ /** * @test - * @bug 6476665 + * @bug 6476665 7033534 * @summary Verifies MT safety of color conversion of Component and Direct Color Model based images * @run main MTColConvTest */ diff --git a/jdk/test/sun/net/InetAddress/nameservice/dns/cname.sh b/jdk/test/sun/net/InetAddress/nameservice/dns/cname.sh index 26859d34dd3..9587d6af504 100644 --- a/jdk/test/sun/net/InetAddress/nameservice/dns/cname.sh +++ b/jdk/test/sun/net/InetAddress/nameservice/dns/cname.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2002, 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 @@ -26,16 +26,16 @@ # @test # @bug 4763315 -# @build CanonicalName Lookup +# @build CanonicalName Lookup # @run shell/timeout=120 cname.sh # @summary Test DNS provider's handling of CNAME records # The host that we try to resolve -HOST=webcache.sfbay.sun.com +HOST=www-proxy.us.oracle.com -# fail gracefully if DNS is not configured or there +# fail gracefully if DNS is not configured or there # isn't a CNAME record. CLASSPATH=${TESTCLASSES} @@ -43,7 +43,7 @@ export CLASSPATH JAVA="${TESTJAVA}/bin/java" sh -xc "$JAVA CanonicalName $HOST" 2>&1 -if [ $? != 0 ]; then +if [ $? != 0 ]; then echo "DNS not configured or host doesn't resolve to CNAME record" exit 0 fi @@ -70,7 +70,7 @@ go "$np" "$HOST" go "$np $sm" "$HOST" -# +# # Results # echo '' diff --git a/jdk/test/sun/security/krb5/KrbCredSubKey.java b/jdk/test/sun/security/krb5/KrbCredSubKey.java new file mode 100644 index 00000000000..e6c96430f76 --- /dev/null +++ b/jdk/test/sun/security/krb5/KrbCredSubKey.java @@ -0,0 +1,352 @@ +/* + * 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 7030180 + * @run main/othervm KrbCredSubKey + * @summary AES 128/256 decrypt exception + */ + +import java.io.FileOutputStream; +import java.security.PrivilegedExceptionAction; +import javax.security.auth.Subject; +import javax.security.auth.kerberos.KerberosKey; +import javax.security.auth.kerberos.KerberosPrincipal; +import org.ietf.jgss.GSSContext; +import org.ietf.jgss.GSSCredential; +import org.ietf.jgss.GSSManager; +import sun.security.jgss.GSSUtil; +import sun.security.krb5.Config; +import sun.security.krb5.EncryptedData; + +public class KrbCredSubKey { + + public static void main(String[] args) throws Exception { + + // We don't care about clock difference + new FileOutputStream("krb5.conf").write( + "[libdefaults]\nclockskew=999999999".getBytes()); + System.setProperty("java.security.krb5.conf", "krb5.conf"); + Config.refresh(); + + Subject subj = new Subject(); + KerberosPrincipal kp = new KerberosPrincipal(princ); + KerberosKey kk = new KerberosKey( + kp, key, EncryptedData.ETYPE_AES128_CTS_HMAC_SHA1_96, 0); + subj.getPrincipals().add(kp); + subj.getPrivateCredentials().add(kk); + + Subject.doAs(subj, new PrivilegedExceptionAction() { + public Object run() throws Exception { + GSSManager man = GSSManager.getInstance(); + GSSContext ctxt = man.createContext(man.createCredential( + null, GSSCredential.INDEFINITE_LIFETIME, + GSSUtil.GSS_KRB5_MECH_OID, GSSCredential.ACCEPT_ONLY)); + return ctxt.acceptSecContext(token, 0, token.length); + } + }); + } + + // All following data generated by myself on a test machine + + private static String princ = "server/host.rabbit.hole@RABBIT.HOLE"; + + // A aes-128 key for princ + private static byte[] key = { + (byte)0x83, (byte)0xA1, (byte)0xD6, (byte)0xE2, + (byte)0xC7, (byte)0x76, (byte)0xD5, (byte)0x24, + (byte)0x63, (byte)0x9F, (byte)0xF9, (byte)0xFF, + (byte)0x76, (byte)0x6D, (byte)0x26, (byte)0x30, + }; + + // A JGSS token generated by the first call of an initiator's + // initSecContext, targetting princ, using the authenticator + // subkey to encrypt the KRB_CRED inside AP_REQ + private static byte[] token = { + (byte)0x60, (byte)0x82, (byte)0x04, (byte)0x1C, + (byte)0x06, (byte)0x09, (byte)0x2A, (byte)0x86, + (byte)0x48, (byte)0x86, (byte)0xF7, (byte)0x12, + (byte)0x01, (byte)0x02, (byte)0x02, (byte)0x01, + (byte)0x00, (byte)0x6E, (byte)0x82, (byte)0x04, + (byte)0x0B, (byte)0x30, (byte)0x82, (byte)0x04, + (byte)0x07, (byte)0xA0, (byte)0x03, (byte)0x02, + (byte)0x01, (byte)0x05, (byte)0xA1, (byte)0x03, + (byte)0x02, (byte)0x01, (byte)0x0E, (byte)0xA2, + (byte)0x07, (byte)0x03, (byte)0x05, (byte)0x00, + (byte)0x20, (byte)0x00, (byte)0x00, (byte)0x00, + (byte)0xA3, (byte)0x82, (byte)0x01, (byte)0x04, + (byte)0x61, (byte)0x82, (byte)0x01, (byte)0x00, + (byte)0x30, (byte)0x81, (byte)0xFD, (byte)0xA0, + (byte)0x03, (byte)0x02, (byte)0x01, (byte)0x05, + (byte)0xA1, (byte)0x0D, (byte)0x1B, (byte)0x0B, + (byte)0x52, (byte)0x41, (byte)0x42, (byte)0x42, + (byte)0x49, (byte)0x54, (byte)0x2E, (byte)0x48, + (byte)0x4F, (byte)0x4C, (byte)0x45, (byte)0xA2, + (byte)0x25, (byte)0x30, (byte)0x23, (byte)0xA0, + (byte)0x03, (byte)0x02, (byte)0x01, (byte)0x00, + (byte)0xA1, (byte)0x1C, (byte)0x30, (byte)0x1A, + (byte)0x1B, (byte)0x06, (byte)0x73, (byte)0x65, + (byte)0x72, (byte)0x76, (byte)0x65, (byte)0x72, + (byte)0x1B, (byte)0x10, (byte)0x68, (byte)0x6F, + (byte)0x73, (byte)0x74, (byte)0x2E, (byte)0x72, + (byte)0x61, (byte)0x62, (byte)0x62, (byte)0x69, + (byte)0x74, (byte)0x2E, (byte)0x68, (byte)0x6F, + (byte)0x6C, (byte)0x65, (byte)0xA3, (byte)0x81, + (byte)0xBF, (byte)0x30, (byte)0x81, (byte)0xBC, + (byte)0xA0, (byte)0x03, (byte)0x02, (byte)0x01, + (byte)0x11, (byte)0xA2, (byte)0x81, (byte)0xB4, + (byte)0x04, (byte)0x81, (byte)0xB1, (byte)0xA7, + (byte)0xE8, (byte)0x58, (byte)0xBA, (byte)0x98, + (byte)0x69, (byte)0x45, (byte)0xB3, (byte)0x68, + (byte)0xBF, (byte)0xFD, (byte)0x25, (byte)0x74, + (byte)0xC4, (byte)0x2E, (byte)0x09, (byte)0x7B, + (byte)0x3C, (byte)0x7F, (byte)0xA5, (byte)0x6C, + (byte)0xC3, (byte)0x86, (byte)0xC9, (byte)0xEE, + (byte)0x58, (byte)0xD3, (byte)0x7C, (byte)0xD6, + (byte)0x19, (byte)0xA1, (byte)0x3B, (byte)0xF7, + (byte)0x17, (byte)0xD6, (byte)0x18, (byte)0xA9, + (byte)0x58, (byte)0x43, (byte)0x55, (byte)0xD6, + (byte)0xBA, (byte)0x85, (byte)0xF7, (byte)0x6B, + (byte)0x20, (byte)0x01, (byte)0xEF, (byte)0xB4, + (byte)0x74, (byte)0x0B, (byte)0x31, (byte)0x07, + (byte)0x55, (byte)0xD8, (byte)0x8C, (byte)0x85, + (byte)0x25, (byte)0x12, (byte)0x66, (byte)0x85, + (byte)0xA8, (byte)0x5A, (byte)0x84, (byte)0xB2, + (byte)0x6C, (byte)0xDE, (byte)0xEE, (byte)0xF9, + (byte)0x15, (byte)0xF2, (byte)0xBC, (byte)0xB0, + (byte)0x43, (byte)0xA5, (byte)0x21, (byte)0x31, + (byte)0xFA, (byte)0x2F, (byte)0x2C, (byte)0x37, + (byte)0x39, (byte)0xD8, (byte)0xAA, (byte)0xE0, + (byte)0x78, (byte)0x08, (byte)0x18, (byte)0xFB, + (byte)0x03, (byte)0x43, (byte)0x22, (byte)0xE6, + (byte)0x2C, (byte)0xF2, (byte)0x98, (byte)0xDC, + (byte)0x2A, (byte)0xDE, (byte)0x8C, (byte)0x95, + (byte)0x0B, (byte)0xB6, (byte)0xE6, (byte)0x0F, + (byte)0xB5, (byte)0x4E, (byte)0xAD, (byte)0xAC, + (byte)0xD1, (byte)0x4C, (byte)0xE8, (byte)0x22, + (byte)0x93, (byte)0x38, (byte)0xA2, (byte)0x44, + (byte)0x0E, (byte)0x83, (byte)0x9E, (byte)0x4D, + (byte)0xC0, (byte)0x1A, (byte)0x02, (byte)0xB2, + (byte)0xB8, (byte)0xCE, (byte)0xDF, (byte)0xB5, + (byte)0xFB, (byte)0xF2, (byte)0x75, (byte)0x5E, + (byte)0x74, (byte)0xC1, (byte)0x90, (byte)0x82, + (byte)0x60, (byte)0x00, (byte)0xA5, (byte)0xC3, + (byte)0xBF, (byte)0x66, (byte)0x97, (byte)0x0E, + (byte)0xF3, (byte)0x9F, (byte)0xB3, (byte)0xD9, + (byte)0x51, (byte)0x51, (byte)0x38, (byte)0xBC, + (byte)0xD9, (byte)0xC1, (byte)0xD0, (byte)0x1E, + (byte)0x90, (byte)0x9B, (byte)0x43, (byte)0xEE, + (byte)0xD9, (byte)0xD6, (byte)0x3E, (byte)0x31, + (byte)0xEA, (byte)0x8E, (byte)0xB1, (byte)0xDC, + (byte)0xDE, (byte)0xFD, (byte)0xA4, (byte)0x77, + (byte)0x6C, (byte)0x4A, (byte)0x81, (byte)0x1F, + (byte)0xA4, (byte)0x82, (byte)0x02, (byte)0xE8, + (byte)0x30, (byte)0x82, (byte)0x02, (byte)0xE4, + (byte)0xA0, (byte)0x03, (byte)0x02, (byte)0x01, + (byte)0x11, (byte)0xA2, (byte)0x82, (byte)0x02, + (byte)0xDB, (byte)0x04, (byte)0x82, (byte)0x02, + (byte)0xD7, (byte)0x81, (byte)0x78, (byte)0x25, + (byte)0x75, (byte)0x92, (byte)0x7A, (byte)0xEC, + (byte)0xBE, (byte)0x31, (byte)0xF1, (byte)0x50, + (byte)0xE7, (byte)0xC1, (byte)0x32, (byte)0xA5, + (byte)0xCB, (byte)0x34, (byte)0x46, (byte)0x95, + (byte)0x2B, (byte)0x84, (byte)0xB7, (byte)0x06, + (byte)0x0E, (byte)0x15, (byte)0x02, (byte)0x74, + (byte)0xCA, (byte)0x18, (byte)0x5D, (byte)0xE8, + (byte)0x0E, (byte)0x1B, (byte)0xB7, (byte)0x77, + (byte)0x5A, (byte)0x6C, (byte)0xFB, (byte)0x94, + (byte)0x82, (byte)0x2B, (byte)0xE6, (byte)0x14, + (byte)0x0C, (byte)0xDA, (byte)0x22, (byte)0xA2, + (byte)0x42, (byte)0xD7, (byte)0xB0, (byte)0xFC, + (byte)0xCA, (byte)0x4A, (byte)0xEA, (byte)0xB8, + (byte)0x92, (byte)0xB5, (byte)0x8C, (byte)0x71, + (byte)0xED, (byte)0x2B, (byte)0x46, (byte)0xC5, + (byte)0xE5, (byte)0x47, (byte)0x76, (byte)0x29, + (byte)0x27, (byte)0x0F, (byte)0xFF, (byte)0x03, + (byte)0x72, (byte)0x13, (byte)0xAA, (byte)0xDB, + (byte)0x4E, (byte)0xFF, (byte)0x48, (byte)0x36, + (byte)0xAB, (byte)0x73, (byte)0xD7, (byte)0xDA, + (byte)0xF1, (byte)0x80, (byte)0x1B, (byte)0x5B, + (byte)0x9A, (byte)0x88, (byte)0x07, (byte)0x47, + (byte)0x43, (byte)0x27, (byte)0xD5, (byte)0x00, + (byte)0x04, (byte)0xEE, (byte)0xAF, (byte)0x53, + (byte)0x5C, (byte)0xCC, (byte)0x2C, (byte)0xC7, + (byte)0x2F, (byte)0x94, (byte)0x12, (byte)0x86, + (byte)0xEF, (byte)0xAC, (byte)0xB1, (byte)0x6C, + (byte)0xB0, (byte)0xB5, (byte)0x3D, (byte)0x92, + (byte)0xBD, (byte)0xBE, (byte)0x7B, (byte)0x1A, + (byte)0x39, (byte)0x4A, (byte)0x1E, (byte)0x91, + (byte)0xA4, (byte)0xDF, (byte)0x82, (byte)0x12, + (byte)0x2E, (byte)0x67, (byte)0x17, (byte)0x92, + (byte)0xB3, (byte)0x93, (byte)0x38, (byte)0x32, + (byte)0x94, (byte)0xF5, (byte)0xF7, (byte)0x09, + (byte)0x07, (byte)0x5E, (byte)0x21, (byte)0x12, + (byte)0x70, (byte)0x37, (byte)0xAF, (byte)0x5A, + (byte)0x2D, (byte)0xAC, (byte)0xFF, (byte)0x22, + (byte)0x46, (byte)0xA0, (byte)0x12, (byte)0x74, + (byte)0x1C, (byte)0xA1, (byte)0x68, (byte)0xC3, + (byte)0x64, (byte)0xDB, (byte)0xC3, (byte)0x9F, + (byte)0xAB, (byte)0x0E, (byte)0x19, (byte)0xFE, + (byte)0xD9, (byte)0xA4, (byte)0xAA, (byte)0x7B, + (byte)0x73, (byte)0xAD, (byte)0xC8, (byte)0xA8, + (byte)0xD5, (byte)0x29, (byte)0xAD, (byte)0x1F, + (byte)0xEF, (byte)0x54, (byte)0xAE, (byte)0x72, + (byte)0x02, (byte)0xD9, (byte)0x06, (byte)0x0D, + (byte)0x1A, (byte)0x94, (byte)0x7B, (byte)0xBC, + (byte)0x32, (byte)0x9A, (byte)0xBC, (byte)0x4B, + (byte)0x33, (byte)0xC2, (byte)0x02, (byte)0xA3, + (byte)0xF4, (byte)0xB1, (byte)0xED, (byte)0x76, + (byte)0x0D, (byte)0x59, (byte)0xCD, (byte)0x56, + (byte)0xCB, (byte)0xDC, (byte)0xCE, (byte)0xED, + (byte)0xFF, (byte)0x25, (byte)0x84, (byte)0x5E, + (byte)0x41, (byte)0xF9, (byte)0x42, (byte)0xBE, + (byte)0x73, (byte)0xAC, (byte)0xA2, (byte)0x20, + (byte)0x97, (byte)0xB7, (byte)0x88, (byte)0x77, + (byte)0x65, (byte)0x43, (byte)0x9F, (byte)0xEE, + (byte)0xF4, (byte)0x3A, (byte)0x7E, (byte)0x9B, + (byte)0x5B, (byte)0x54, (byte)0xD3, (byte)0x0D, + (byte)0x50, (byte)0x6D, (byte)0xF6, (byte)0x14, + (byte)0xB7, (byte)0x5A, (byte)0x34, (byte)0x0F, + (byte)0x1F, (byte)0xC7, (byte)0x39, (byte)0x99, + (byte)0x9B, (byte)0x96, (byte)0xE3, (byte)0xAD, + (byte)0x86, (byte)0xE3, (byte)0x6A, (byte)0x71, + (byte)0x63, (byte)0x04, (byte)0xAD, (byte)0x9C, + (byte)0x17, (byte)0x68, (byte)0x44, (byte)0xFE, + (byte)0x21, (byte)0x62, (byte)0xD5, (byte)0x99, + (byte)0x4A, (byte)0xDF, (byte)0x48, (byte)0xDE, + (byte)0x9A, (byte)0xD4, (byte)0xBB, (byte)0xA1, + (byte)0x9B, (byte)0xE7, (byte)0x2A, (byte)0x08, + (byte)0x80, (byte)0x3A, (byte)0x08, (byte)0xA4, + (byte)0xBA, (byte)0xBE, (byte)0x1E, (byte)0x81, + (byte)0x63, (byte)0x20, (byte)0xAC, (byte)0x9C, + (byte)0x42, (byte)0x2F, (byte)0xCA, (byte)0x06, + (byte)0x95, (byte)0x92, (byte)0x97, (byte)0x09, + (byte)0x3C, (byte)0x0C, (byte)0x5A, (byte)0x99, + (byte)0xFB, (byte)0xAB, (byte)0xEB, (byte)0xDE, + (byte)0xC4, (byte)0x09, (byte)0xD3, (byte)0xA3, + (byte)0xF0, (byte)0x65, (byte)0xDC, (byte)0x5F, + (byte)0xAA, (byte)0xBB, (byte)0x28, (byte)0xC0, + (byte)0x3E, (byte)0xBF, (byte)0x77, (byte)0xAE, + (byte)0xCC, (byte)0x3A, (byte)0xD3, (byte)0x31, + (byte)0x0D, (byte)0x9B, (byte)0x96, (byte)0xEF, + (byte)0x2C, (byte)0xED, (byte)0x60, (byte)0x63, + (byte)0xC5, (byte)0x8F, (byte)0xCA, (byte)0xB0, + (byte)0xA2, (byte)0x0B, (byte)0x49, (byte)0x5A, + (byte)0xB2, (byte)0x8F, (byte)0xEF, (byte)0xE4, + (byte)0x19, (byte)0xC0, (byte)0xC6, (byte)0x2D, + (byte)0xD3, (byte)0x4F, (byte)0xB2, (byte)0xED, + (byte)0xA3, (byte)0xA4, (byte)0x6F, (byte)0xAE, + (byte)0xD4, (byte)0xE9, (byte)0xA2, (byte)0x5A, + (byte)0xFB, (byte)0xB0, (byte)0x14, (byte)0xBD, + (byte)0x06, (byte)0x12, (byte)0xD7, (byte)0x91, + (byte)0x15, (byte)0x46, (byte)0x78, (byte)0xE4, + (byte)0xD1, (byte)0x73, (byte)0xCA, (byte)0xA5, + (byte)0xA5, (byte)0x64, (byte)0xC8, (byte)0x6F, + (byte)0xD1, (byte)0xBD, (byte)0xEA, (byte)0x74, + (byte)0xE4, (byte)0xCA, (byte)0x40, (byte)0x16, + (byte)0x9E, (byte)0x46, (byte)0x7C, (byte)0x25, + (byte)0x6C, (byte)0x32, (byte)0xB4, (byte)0x14, + (byte)0xF9, (byte)0x26, (byte)0x8A, (byte)0x3A, + (byte)0xDD, (byte)0x51, (byte)0x26, (byte)0x79, + (byte)0x43, (byte)0x27, (byte)0x2E, (byte)0xED, + (byte)0xC7, (byte)0x82, (byte)0x7C, (byte)0xCE, + (byte)0x43, (byte)0x03, (byte)0x60, (byte)0x2A, + (byte)0x9C, (byte)0xB2, (byte)0x71, (byte)0x41, + (byte)0xAB, (byte)0x3D, (byte)0xA6, (byte)0xB5, + (byte)0x51, (byte)0xBC, (byte)0x80, (byte)0x1F, + (byte)0x96, (byte)0x73, (byte)0x23, (byte)0x11, + (byte)0xED, (byte)0xC0, (byte)0x1D, (byte)0x0B, + (byte)0xA0, (byte)0x13, (byte)0xB3, (byte)0x2F, + (byte)0x16, (byte)0x59, (byte)0x64, (byte)0x45, + (byte)0xE8, (byte)0x68, (byte)0xFB, (byte)0xF9, + (byte)0x6F, (byte)0xB0, (byte)0x2B, (byte)0xFB, + (byte)0x39, (byte)0xBB, (byte)0x53, (byte)0x8F, + (byte)0xD2, (byte)0xAF, (byte)0x38, (byte)0x5E, + (byte)0xEF, (byte)0x5B, (byte)0xE2, (byte)0x98, + (byte)0xE8, (byte)0x46, (byte)0x3C, (byte)0x03, + (byte)0x71, (byte)0x46, (byte)0x8D, (byte)0x41, + (byte)0x92, (byte)0x32, (byte)0x85, (byte)0x8D, + (byte)0xBA, (byte)0x33, (byte)0x05, (byte)0xB1, + (byte)0xE4, (byte)0x56, (byte)0x3E, (byte)0xF5, + (byte)0x20, (byte)0x35, (byte)0xA6, (byte)0x74, + (byte)0xA2, (byte)0xBE, (byte)0x54, (byte)0x08, + (byte)0xB4, (byte)0xFC, (byte)0x1D, (byte)0x13, + (byte)0x84, (byte)0xBE, (byte)0x1C, (byte)0xC5, + (byte)0x3E, (byte)0x43, (byte)0x14, (byte)0x6F, + (byte)0xC0, (byte)0x3D, (byte)0xF4, (byte)0xDC, + (byte)0x66, (byte)0x4E, (byte)0xF0, (byte)0x3E, + (byte)0xD4, (byte)0xC6, (byte)0xE9, (byte)0x8D, + (byte)0x7D, (byte)0xB9, (byte)0xDC, (byte)0x9F, + (byte)0xBE, (byte)0x54, (byte)0x63, (byte)0x93, + (byte)0x49, (byte)0x2F, (byte)0x6A, (byte)0xC3, + (byte)0x34, (byte)0xC5, (byte)0xF7, (byte)0x76, + (byte)0xE8, (byte)0xD5, (byte)0x5B, (byte)0xD9, + (byte)0x41, (byte)0xCA, (byte)0x74, (byte)0x25, + (byte)0x25, (byte)0x09, (byte)0xF4, (byte)0xD3, + (byte)0x00, (byte)0x9F, (byte)0x7D, (byte)0xFB, + (byte)0x3D, (byte)0xAB, (byte)0x87, (byte)0xF7, + (byte)0xCE, (byte)0x42, (byte)0x0F, (byte)0x60, + (byte)0xEB, (byte)0x03, (byte)0x47, (byte)0x98, + (byte)0x0F, (byte)0xEB, (byte)0xA4, (byte)0x05, + (byte)0xE2, (byte)0x58, (byte)0x8F, (byte)0x44, + (byte)0x09, (byte)0xD3, (byte)0x66, (byte)0x1E, + (byte)0x69, (byte)0x89, (byte)0xB7, (byte)0xEE, + (byte)0x8B, (byte)0xA4, (byte)0x8E, (byte)0x05, + (byte)0x2D, (byte)0x2E, (byte)0xB3, (byte)0x5A, + (byte)0xAE, (byte)0xAB, (byte)0x80, (byte)0xD6, + (byte)0x5C, (byte)0x93, (byte)0x40, (byte)0x91, + (byte)0x53, (byte)0xE6, (byte)0x13, (byte)0xD5, + (byte)0x2F, (byte)0x64, (byte)0xF0, (byte)0x68, + (byte)0xD2, (byte)0x85, (byte)0x94, (byte)0xE5, + (byte)0x2D, (byte)0x73, (byte)0x10, (byte)0x59, + (byte)0x18, (byte)0xCD, (byte)0xED, (byte)0xBC, + (byte)0x05, (byte)0x97, (byte)0xFD, (byte)0xE7, + (byte)0x6F, (byte)0x5D, (byte)0x7C, (byte)0x46, + (byte)0x28, (byte)0x5F, (byte)0xC2, (byte)0xB4, + (byte)0x31, (byte)0xA5, (byte)0x2B, (byte)0x82, + (byte)0xAB, (byte)0x32, (byte)0x49, (byte)0xA5, + (byte)0xCD, (byte)0x91, (byte)0x37, (byte)0x97, + (byte)0xA1, (byte)0x85, (byte)0x8F, (byte)0xBB, + (byte)0x6E, (byte)0x1E, (byte)0x9F, (byte)0xFC, + (byte)0x10, (byte)0x3B, (byte)0x8A, (byte)0xF6, + (byte)0x9A, (byte)0x66, (byte)0xBD, (byte)0x75, + (byte)0x4F, (byte)0x1D, (byte)0xBA, (byte)0x64, + (byte)0x15, (byte)0xDD, (byte)0x9F, (byte)0x00, + (byte)0x6C, (byte)0x2F, (byte)0x87, (byte)0x20, + (byte)0x25, (byte)0xA2, (byte)0x09, (byte)0x9F, + (byte)0x5D, (byte)0x64, (byte)0xC9, (byte)0xA8, + (byte)0x32, (byte)0x59, (byte)0x90, (byte)0x1D, + (byte)0x78, (byte)0xFE, (byte)0x5A, (byte)0xA2, + (byte)0x1F, (byte)0x9B, (byte)0x22, (byte)0xBE, + (byte)0x8F, (byte)0xEA, (byte)0x59, (byte)0x5B, + (byte)0x96, (byte)0xE3, (byte)0x4A, (byte)0xB2, + (byte)0x71, (byte)0x65, (byte)0xB7, (byte)0x3C, + (byte)0xC6, (byte)0x1B, (byte)0xD6, (byte)0x80, + (byte)0x90, (byte)0xD2, (byte)0xF2, (byte)0x6F, + (byte)0xA2, (byte)0x68, (byte)0x53, (byte)0xC0, + (byte)0x44, (byte)0xAF, (byte)0xD4, (byte)0x68, + (byte)0x12, (byte)0xFF, (byte)0xB4, (byte)0x36, + (byte)0x34, (byte)0x43, (byte)0xAC, (byte)0x1C, + }; +} diff --git a/jdk/test/sun/security/krb5/auto/KDC.java b/jdk/test/sun/security/krb5/auto/KDC.java index 5d2ff476ea6..8d01dd346cd 100644 --- a/jdk/test/sun/security/krb5/auto/KDC.java +++ b/jdk/test/sun/security/krb5/auto/KDC.java @@ -691,7 +691,10 @@ public class KDC { new KerberosTime(new Date()), body.from, till, body.rtime, - body.addresses, + body.addresses != null // always set caddr + ? body.addresses + : new HostAddresses( + new InetAddress[]{InetAddress.getLocalHost()}), null); EncryptionKey skey = keyForUser(body.sname, e3, true); if (skey == null) { @@ -716,7 +719,10 @@ public class KDC { till, body.rtime, body.crealm, body.sname, - body.addresses + body.addresses != null // always set caddr + ? body.addresses + : new HostAddresses( + new InetAddress[]{InetAddress.getLocalHost()}) ); EncryptedData edata = new EncryptedData(ckey, enc_part.asn1Encode(), KeyUsage.KU_ENC_TGS_REP_PART_SESSKEY); TGSRep tgsRep = new TGSRep(null, diff --git a/jdk/test/sun/security/krb5/auto/NoAddresses.java b/jdk/test/sun/security/krb5/auto/NoAddresses.java new file mode 100644 index 00000000000..04c5b71e52a --- /dev/null +++ b/jdk/test/sun/security/krb5/auto/NoAddresses.java @@ -0,0 +1,81 @@ +/* + * 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 7032354 + * @run main/othervm NoAddresses 1 + * @run main/othervm NoAddresses 2 + * @run main/othervm/fail NoAddresses 3 + * @summary no-addresses should not be used on acceptor side + */ + +import java.net.InetAddress; +import org.ietf.jgss.ChannelBinding; +import sun.security.jgss.GSSUtil; +import sun.security.krb5.Config; + +public class NoAddresses { + + public static void main(String[] args) + throws Exception { + + OneKDC kdc = new OneKDC(null); + kdc.writeJAASConf(); + KDC.saveConfig(OneKDC.KRB5_CONF, kdc, + "noaddresses = false", + "default_keytab_name = " + OneKDC.KTAB); + Config.refresh(); + + Context c = Context.fromJAAS("client"); + Context s = Context.fromJAAS("server"); + + c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID); + s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); + + InetAddress initiator = InetAddress.getLocalHost(); + InetAddress acceptor = InetAddress.getLocalHost(); + switch (args[0]) { + case "1": + // no initiator host address available, should be OK + break; + case "2": + // correct initiator host address, still fine + c.x().setChannelBinding( + new ChannelBinding(initiator, acceptor, null)); + s.x().setChannelBinding( + new ChannelBinding(initiator, acceptor, null)); + break; + case "3": + // incorrect initiator host address, fail + initiator = InetAddress.getByAddress(new byte[]{1,1,1,1}); + c.x().setChannelBinding( + new ChannelBinding(initiator, acceptor, null)); + s.x().setChannelBinding( + new ChannelBinding(initiator, acceptor, null)); + break; + } + + Context.handshake(c, s); + } +} diff --git a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java index daa1ab3c1bf..21238f735d5 100644 --- a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java +++ b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.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 @@ -22,27 +22,44 @@ */ /** * @test - * @bug 6581254 - * @summary Allow "~" in config to support windows short path + * @bug 6581254 6986789 + * @summary Allow '~' and '+' in config file * @author Valerie Peng */ import java.security.*; import java.io.*; +import java.lang.reflect.*; public class ConfigShortPath { - public static void main(String[] args) { - String testSrc = System.getProperty("test.src", "."); - String configFile = testSrc + File.separator + "csp.cfg"; - System.out.println("Testing against " + configFile); + private static final String[] configNames = { "csp.cfg", "cspPlus.cfg" }; + + public static void main(String[] args) throws Exception { + Constructor cons = null; try { - Provider p = new sun.security.pkcs11.SunPKCS11(configFile); - } catch (ProviderException pe) { - String cause = pe.getCause().getMessage(); - if (cause.indexOf("Unexpected token") != -1) { - // re-throw to indicate test failure - throw pe; + Class clazz = Class.forName("sun.security.pkcs11.SunPKCS11"); + cons = clazz.getConstructor(String.class); + } catch (Exception ex) { + System.out.println("Skipping test - no PKCS11 provider available"); + return; + } + String testSrc = System.getProperty("test.src", "."); + for (int i = 0; i < configNames.length; i++) { + String configFile = testSrc + File.separator + configNames[i]; + + System.out.println("Testing against " + configFile); + try { + Object obj = cons.newInstance(configFile); + } catch (InvocationTargetException ite) { + Throwable cause = ite.getCause(); + if (cause instanceof ProviderException) { + String causeMsg = cause.getCause().getMessage(); + // Indicate failure if due to parsing config + if (causeMsg.indexOf("Unexpected token") != -1) { + throw (ProviderException) cause; + } + } } } } diff --git a/jdk/test/sun/security/pkcs11/Provider/cspPlus.cfg b/jdk/test/sun/security/pkcs11/Provider/cspPlus.cfg new file mode 100644 index 00000000000..51099cda9b8 --- /dev/null +++ b/jdk/test/sun/security/pkcs11/Provider/cspPlus.cfg @@ -0,0 +1,4 @@ +showInfo = false +name = NSS +nssSecmodDirectory = /export/local/38289.JDK7.PIT.JSN-TL+7-b112_pit_security_oel5.5-x64-32/results/ResultDir/KeytoolNSS/db +nssLibraryDirectory = /export/local/common/testbase/7/security/tools/lib/nss/Linux2.6 diff --git a/jdk/test/sun/security/ssl/javax/net/ssl/SSLContextVersion.java b/jdk/test/sun/security/ssl/javax/net/ssl/SSLContextVersion.java new file mode 100644 index 00000000000..2480b2f0c9e --- /dev/null +++ b/jdk/test/sun/security/ssl/javax/net/ssl/SSLContextVersion.java @@ -0,0 +1,112 @@ +/* + * 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 6976117 + * @summary SSLContext.getInstance("TLSv1.1") returns SSLEngines/SSLSockets + * without TLSv1.1 enabled + */ + +import javax.net.ssl.*; + +public class SSLContextVersion { + static enum ContextVersion { + TLS_CV_01("SSL", "TLSv1", "TLSv1.2"), + TLS_CV_02("TLS", "TLSv1", "TLSv1.2"), + TLS_CV_03("SSLv3", "TLSv1", "TLSv1.2"), + TLS_CV_04("TLSv1", "TLSv1", "TLSv1.2"), + TLS_CV_05("TLSv1.1", "TLSv1.1", "TLSv1.2"), + TLS_CV_06("TLSv1.2", "TLSv1.2", "TLSv1.2"), + TLS_CV_07("Default", "TLSv1", "TLSv1.2"); + + final String contextVersion; + final String defaultProtocolVersion; + final String supportedProtocolVersion; + + ContextVersion(String contextVersion, String defaultProtocolVersion, + String supportedProtocolVersion) { + this.contextVersion = contextVersion; + this.defaultProtocolVersion = defaultProtocolVersion; + this.supportedProtocolVersion = supportedProtocolVersion; + } + } + + public static void main(String[] args) throws Exception { + for (ContextVersion cv : ContextVersion.values()) { + System.out.println("Checking SSLContext of " + cv.contextVersion); + SSLContext context = SSLContext.getInstance(cv.contextVersion); + + // Default SSLContext is initialized automatically. + if (!cv.contextVersion.equals("Default")) { + // Use default TK, KM and random. + context.init((KeyManager[])null, (TrustManager[])null, null); + } + + SSLParameters parameters = context.getDefaultSSLParameters(); + + String[] protocols = parameters.getProtocols(); + String[] ciphers = parameters.getCipherSuites(); + + if (protocols.length == 0 || ciphers.length == 0) { + throw new Exception("No default protocols or cipher suites"); + } + + boolean isMatch = false; + for (String protocol : protocols) { + System.out.println("\tdefault protocol version " + protocol); + if (protocol.equals(cv.defaultProtocolVersion)) { + isMatch = true; + break; + } + } + + if (!isMatch) { + throw new Exception("No matched default protocol"); + } + + parameters = context.getSupportedSSLParameters(); + + protocols = parameters.getProtocols(); + ciphers = parameters.getCipherSuites(); + + if (protocols.length == 0 || ciphers.length == 0) { + throw new Exception("No default protocols or cipher suites"); + } + + isMatch = false; + for (String protocol : protocols) { + System.out.println("\tsupported protocol version " + protocol); + if (protocol.equals(cv.supportedProtocolVersion)) { + isMatch = true; + break; + } + } + + if (!isMatch) { + throw new Exception("No matched default protocol"); + } + System.out.println("\t... Success"); + } + } +} diff --git a/jdk/test/sun/text/resources/LocaleData b/jdk/test/sun/text/resources/LocaleData index 95078736233..a3d7088e35d 100644 --- a/jdk/test/sun/text/resources/LocaleData +++ b/jdk/test/sun/text/resources/LocaleData @@ -6942,3 +6942,14 @@ CurrencyNames/zh_TW/xpt=\u94c2 CurrencyNames/zh_TW/xts=XTS CurrencyNames/zh_TW/xxx=XXX CurrencyNames/zh_TW/yer=\u8449\u9580\u91cc\u96c5 + +# bug 7036905 +CurrencyNames/de/afa=Afghani (1927-2002) +CurrencyNames/de/afn=Afghani +CurrencyNames/de/bob=Boliviano +CurrencyNames/de/dem=Deutsche Mark +CurrencyNames/de/mwk=Malawi Kwacha +CurrencyNames/de/mxv=Mexican Unidad de Inversion (UDI) +CurrencyNames/de/svc=El Salvador Colon + +CurrencyNames/it/bob=Boliviano diff --git a/jdk/test/sun/text/resources/LocaleDataTest.java b/jdk/test/sun/text/resources/LocaleDataTest.java index 30e65c52ab5..65037949c6d 100644 --- a/jdk/test/sun/text/resources/LocaleDataTest.java +++ b/jdk/test/sun/text/resources/LocaleDataTest.java @@ -33,7 +33,7 @@ * 6379214 6485516 6486607 4225362 4494727 6533691 6531591 6531593 6570259 * 6509039 6609737 6610748 6645271 6507067 6873931 6450945 6645268 6646611 * 6645405 6650730 6910489 6573250 6870908 6585666 6716626 6914413 6916787 - * 6919624 6998391 7019267 7020960 7025837 7020583 + * 6919624 6998391 7019267 7020960 7025837 7020583 7036905 * @summary Verify locale data * */ diff --git a/jdk/test/tools/launcher/ExecutionEnvironment.java b/jdk/test/tools/launcher/ExecutionEnvironment.java index a8c59e65932..fec9f6a0ba8 100644 --- a/jdk/test/tools/launcher/ExecutionEnvironment.java +++ b/jdk/test/tools/launcher/ExecutionEnvironment.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 @@ -30,7 +30,7 @@ */ /* - * This test tests for various things as follows: + * This tests for various things as follows: * Ensures that: * 1. uneccessary execs do not occur * 2. the environment is pristine, users environment variable wrt. @@ -84,7 +84,9 @@ public class ExecutionEnvironment { static int errors = 0; static int passes = 0; - private static void createTestJar() { + static final String LIBJVM = TestHelper.isWindows ? "jvm.dll" : "libjvm.so"; + + static void createTestJar() { try { List codeList = new ArrayList(); codeList.add("static void printValue(String name, boolean property) {\n"); @@ -127,6 +129,7 @@ public class ExecutionEnvironment { testJarFile.getAbsolutePath()); if (!tr.isNotZeroOutput()) { + System.out.println(tr); throw new RuntimeException("Error: No output at all. Did the test execute ?"); } @@ -177,7 +180,6 @@ public class ExecutionEnvironment { Map env = new HashMap(); - if (TestHelper.isLinux) { for (String x : LD_PATH_STRINGS) { String pairs[] = x.split("="); @@ -209,7 +211,7 @@ public class ExecutionEnvironment { verifyJavaLibraryPathOverride(tr, true); // try changing the model from 32 to 64 bit - if (TestHelper.java64Cmd != null && TestHelper.is32Bit) { + if (TestHelper.dualModePresent() && TestHelper.is32Bit) { // verify the override occurs env.clear(); for (String x : LD_PATH_STRINGS) { @@ -326,7 +328,7 @@ public class ExecutionEnvironment { File symLink = null; String libPathPrefix = TestHelper.isSDK ? "jre/lib" : "/lib"; symLink = new File(TestHelper.JAVAHOME, libPathPrefix + - TestHelper.getJreArch() + "/libjvm.so"); + TestHelper.getJreArch() + "/" + LIBJVM); if (symLink.exists()) { System.out.println("FAIL: The symlink exists " + symLink.getAbsolutePath()); diff --git a/jdk/test/tools/launcher/Test7029048.java b/jdk/test/tools/launcher/Test7029048.java new file mode 100644 index 00000000000..69c94d52e57 --- /dev/null +++ b/jdk/test/tools/launcher/Test7029048.java @@ -0,0 +1,313 @@ +/* + * 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 7029048 + * @summary Checks for LD_LIBRARY_PATH on *nixes + * @compile -XDignore.symbol.file ExecutionEnvironment.java TestHelper.java Test7029048.java + * @run main Test7029048 + */ + +/* + * 7029048: test for LD_LIBRARY_PATH set to different paths pointing which may + * contain a libjvm.so and may not, but we test to ensure that the launcher + * behaves correctly in all cases. + */ +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Test7029048 { + + static int passes = 0; + static int errors = 0; + + private static final String LIBJVM = ExecutionEnvironment.LIBJVM; + private static final String LD_LIBRARY_PATH = + ExecutionEnvironment.LD_LIBRARY_PATH; + private static final String LD_LIBRARY_PATH_32 = + ExecutionEnvironment.LD_LIBRARY_PATH_32; + private static final String LD_LIBRARY_PATH_64 = + ExecutionEnvironment.LD_LIBRARY_PATH_64; + + private static final File libDir = + new File(System.getProperty("sun.boot.library.path")); + private static final File srcServerDir = new File(libDir, "server"); + private static final File srcLibjvmSo = new File(srcServerDir, LIBJVM); + + private static final File dstLibDir = new File("lib"); + private static final File dstLibArchDir = + new File(dstLibDir, TestHelper.getJreArch()); + + private static final File dstServerDir = new File(dstLibArchDir, "server"); + private static final File dstServerLibjvm = new File(dstServerDir, LIBJVM); + + private static final File dstClientDir = new File(dstLibArchDir, "client"); + private static final File dstClientLibjvm = new File(dstClientDir, LIBJVM); + + // used primarily to test the solaris variants in dual mode + private static final File dstOtherArchDir; + private static final File dstOtherServerDir; + private static final File dstOtherServerLibjvm; + + private static final Map env = new HashMap<>(); + + static { + if (TestHelper.isDualMode) { + dstOtherArchDir = new File(dstLibDir, TestHelper.getComplementaryJreArch()); + dstOtherServerDir = new File(dstOtherArchDir, "server"); + dstOtherServerLibjvm = new File(dstOtherServerDir, LIBJVM); + } else { + dstOtherArchDir = null; + dstOtherServerDir = null; + dstOtherServerLibjvm = null; + } + } + + static String getValue(String name, List in) { + for (String x : in) { + String[] s = x.split("="); + if (name.equals(s[0].trim())) { + return s[1].trim(); + } + } + return null; + } + + static void run(boolean want32, String dflag, Map env, + int nLLPComponents, String caseID) { + final boolean want64 = want32 == false; + env.put(ExecutionEnvironment.JLDEBUG_KEY, "true"); + List cmdsList = new ArrayList<>(); + + // only for a dual-mode system + if (want64 && TestHelper.isDualMode) { + cmdsList.add(TestHelper.java64Cmd); + } else { + cmdsList.add(TestHelper.javaCmd); // a 32-bit java command for all + } + + /* + * empty or null strings can confuse the ProcessBuilder. A null flag + * indicates that the appropriate data model is enforced on the chosen + * launcher variant. + */ + + if (dflag != null) { + cmdsList.add(dflag); + } else { + cmdsList.add(want32 ? "-d32" : "-d64"); + } + cmdsList.add("-server"); + cmdsList.add("-jar"); + cmdsList.add(ExecutionEnvironment.testJarFile.getAbsolutePath()); + String[] cmds = new String[cmdsList.size()]; + TestHelper.TestResult tr = TestHelper.doExec(env, cmdsList.toArray(cmds)); + analyze(tr, nLLPComponents, caseID); + } + + // no cross launch, ie. no change to the data model. + static void run(Map env, int nLLPComponents, String caseID) + throws IOException { + boolean want32 = TestHelper.is32Bit; + run(want32, null, env, nLLPComponents, caseID); + } + + static void analyze(TestHelper.TestResult tr, int nLLPComponents, String caseID) { + String envValue = getValue(LD_LIBRARY_PATH, tr.testOutput); + /* + * the envValue can never be null, since the test code should always + * print a "null" string. + */ + if (envValue == null) { + System.out.println(tr); + throw new RuntimeException("NPE, likely a program crash ??"); + } + String values[] = envValue.split(File.pathSeparator); + if (values.length == nLLPComponents) { + System.out.println(caseID + " :OK"); + passes++; + } else { + System.out.println("FAIL: test7029048, " + caseID); + System.out.println(" expected " + nLLPComponents + + " but got " + values.length); + System.out.println(envValue); + System.out.println(tr); + errors++; + } + } + + /* + * A crucial piece, specifies what we should expect, given the conditions. + * That is for a given enum type, the value indicates how many absolute + * environment variables that can be expected. This value is used to base + * the actual expected values by adding the set environment variable usually + * it is 1, but it could be more if the test wishes to set more paths in + * the future. + */ + private static enum LLP_VAR { + LLP_SET_NON_EXISTENT_PATH(0), // env set, but the path does not exist + LLP_SET_EMPTY_PATH(0), // env set, with a path but no libjvm.so + LLP_SET_WITH_JVM(3); // env set, with a libjvm.so + private final int value; + LLP_VAR(int i) { + this.value = i; + } + } + + /* + * test for 7029048 + */ + static void test7029048() throws IOException { + String desc = null; + for (LLP_VAR v : LLP_VAR.values()) { + switch (v) { + case LLP_SET_WITH_JVM: + // copy the files into the directory structures + TestHelper.copyFile(srcLibjvmSo, dstServerLibjvm); + // does not matter if it is client or a server + TestHelper.copyFile(srcLibjvmSo, dstClientLibjvm); + // does not matter if the arch do not match either + if (TestHelper.isDualMode) { + TestHelper.copyFile(srcLibjvmSo, dstOtherServerLibjvm); + } + desc = "LD_LIBRARY_PATH should be set"; + break; + case LLP_SET_EMPTY_PATH: + if (!dstClientDir.exists()) { + Files.createDirectories(dstClientDir.toPath()); + } else { + Files.deleteIfExists(dstClientLibjvm.toPath()); + } + + if (!dstServerDir.exists()) { + Files.createDirectories(dstServerDir.toPath()); + } else { + Files.deleteIfExists(dstServerLibjvm.toPath()); + } + + if (TestHelper.isDualMode) { + if (!dstOtherServerDir.exists()) { + Files.createDirectories(dstOtherServerDir.toPath()); + } else { + Files.deleteIfExists(dstOtherServerLibjvm.toPath()); + } + } + + desc = "LD_LIBRARY_PATH should not be set"; + break; + case LLP_SET_NON_EXISTENT_PATH: + if (dstLibDir.exists()) { + TestHelper.recursiveDelete(dstLibDir); + } + desc = "LD_LIBRARY_PATH should not be set"; + break; + default: + throw new RuntimeException("unknown case"); + } + + /* + * Case 1: set the server path + */ + env.clear(); + env.put(LD_LIBRARY_PATH, dstServerDir.getAbsolutePath()); + run(env, v.value + 1, "Case 1: " + desc); + + /* + * Case 2: repeat with client path + */ + env.clear(); + env.put(LD_LIBRARY_PATH, dstClientDir.getAbsolutePath()); + run(env, v.value + 1, "Case 2: " + desc); + + if (!TestHelper.isDualMode) { + continue; // nothing more to do for Linux + } + + // Tests applicable only to solaris. + + // initialize test variables for dual mode operations + final File dst32ServerDir = TestHelper.is32Bit + ? dstServerDir + : dstOtherServerDir; + + final File dst64ServerDir = TestHelper.is64Bit + ? dstServerDir + : dstOtherServerDir; + + /* + * Case 3: set the appropriate LLP_XX flag, + * java32 -d32, LLP_32 is relevant, LLP_64 is ignored + * java64 -d64, LLP_64 is relevant, LLP_32 is ignored + */ + env.clear(); + env.put(LD_LIBRARY_PATH_32, dst32ServerDir.getAbsolutePath()); + env.put(LD_LIBRARY_PATH_64, dst64ServerDir.getAbsolutePath()); + run(TestHelper.is32Bit, null, env, v.value + 1, "Case 3: " + desc); + + /* + * Case 4: we are in dual mode environment, running 64-bit then + * we have the following scenarios: + * java32 -d64, LLP_64 is relevant, LLP_32 is ignored + * java64 -d32, LLP_32 is relevant, LLP_64 is ignored + */ + if (TestHelper.dualModePresent()) { + run(true, "-d64", env, v.value + 1, "Case 4A: " + desc); + run(false,"-d32", env, v.value + 1, "Case 4B: " + desc); + } + } + return; + } + + public static void main(String... args) throws Exception { + if (TestHelper.isWindows) { + System.out.println("Warning: noop on windows"); + return; + } + // create our test jar first + ExecutionEnvironment.createTestJar(); + + // run the tests + test7029048(); + if (errors > 0) { + throw new Exception("Test7029048: FAIL: with " + + errors + " errors and passes " + passes); + } else if (TestHelper.dualModePresent() && passes < 15) { + throw new Exception("Test7029048: FAIL: " + + "all tests did not run, expected " + 15 + " got " + passes); + } else if (TestHelper.isSolaris && passes < 9) { + throw new Exception("Test7029048: FAIL: " + + "all tests did not run, expected " + 9 + " got " + passes); + } else if (TestHelper.isLinux && passes < 6) { + throw new Exception("Test7029048: FAIL: " + + "all tests did not run, expected " + 6 + " got " + passes); + } else { + System.out.println("Test7029048: PASS " + passes); + } + } +} diff --git a/jdk/test/tools/launcher/TestHelper.java b/jdk/test/tools/launcher/TestHelper.java index af17bb49fc2..3cfdfb8ecbd 100644 --- a/jdk/test/tools/launcher/TestHelper.java +++ b/jdk/test/tools/launcher/TestHelper.java @@ -1,6 +1,5 @@ - /* - * Copyright (c) 2008, 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 @@ -22,20 +21,28 @@ * questions. */ +import java.nio.file.attribute.BasicFileAttributes; +import java.nio.file.FileVisitResult; +import java.nio.file.SimpleFileVisitor; import javax.tools.ToolProvider; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.tools.JavaCompiler; +import static java.nio.file.StandardCopyOption.*; + /** - * This class provides some common utilites for the launcher tests. + * This class provides some common utilities for the launcher tests. */ public enum TestHelper { INSTANCE; @@ -100,6 +107,13 @@ public enum TestHelper { } } + /* + * is a dual mode available in the test jdk + */ + static boolean dualModePresent() { + return isDualMode && java64Cmd != null; + } + /* * usually the jre/lib/arch-name is the same as os.arch, except for x86. */ @@ -108,6 +122,27 @@ public enum TestHelper { return arch.equals("x86") ? "i386" : arch; } + /* + * get the complementary jre arch ie. if sparc then return sparcv9 and + * vice-versa. + */ + static String getComplementaryJreArch() { + String arch = System.getProperty("os.arch"); + if (arch != null) { + switch (arch) { + case "sparc": + return "sparcv9"; + case "sparcv9": + return "sparc"; + case "x86": + return "amd64"; + case "amd64": + return "i386"; + } + } + return null; + } + /* * A convenience method to create a jar with jar file name and defs */ @@ -168,6 +203,44 @@ public enum TestHelper { } } + static void copyFile(File src, File dst) throws IOException { + Path parent = dst.toPath().getParent(); + if (parent != null) { + Files.createDirectories(parent); + } + Files.copy(src.toPath(), dst.toPath(), COPY_ATTRIBUTES, REPLACE_EXISTING); + } + + static void recursiveDelete(File target) throws IOException { + if (!target.exists()) { + return; + } + Files.walkFileTree(target.toPath(), new SimpleFileVisitor() { + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) { + try { + Files.deleteIfExists(dir); + } catch (IOException ex) { + System.out.println("Error: could not delete: " + dir.toString()); + System.out.println(ex.getMessage()); + return FileVisitResult.TERMINATE; + } + return FileVisitResult.CONTINUE; + } + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + try { + Files.deleteIfExists(file); + } catch (IOException ex) { + System.out.println("Error: could not delete: " + file.toString()); + System.out.println(ex.getMessage()); + return FileVisitResult.TERMINATE; + } + return FileVisitResult.CONTINUE; + } + }); + } + static TestResult doExec(String...cmds) { return doExec(null, cmds); } @@ -187,7 +260,7 @@ public enum TestHelper { } BufferedReader rdr = null; try { - List outputList = new ArrayList(); + List outputList = new ArrayList<>(); pb.redirectErrorStream(true); Process p = pb.start(); rdr = new BufferedReader(new InputStreamReader(p.getInputStream())); @@ -198,7 +271,9 @@ public enum TestHelper { } p.waitFor(); p.destroy(); - return new TestHelper.TestResult(cmdStr, p.exitValue(), outputList); + + return new TestHelper.TestResult(cmdStr, p.exitValue(), outputList, + env, new Throwable("current stack of the test")); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex.getMessage()); @@ -213,11 +288,16 @@ public enum TestHelper { StringBuilder status; int exitValue; List testOutput; + Map env; + Throwable t; - public TestResult(String str, int rv, List oList) { + public TestResult(String str, int rv, List oList, + Map env, Throwable t) { status = new StringBuilder("Executed command: " + str + "\n"); exitValue = rv; testOutput = oList; + this.env = env; + this.t = t; } void appendStatus(String x) { @@ -262,11 +342,21 @@ public enum TestHelper { @Override public String toString() { - status = status.append("++++Test Output Begin++++\n"); + status.append("++++Begin Test Info++++\n"); + status.append("++++Test Environment++++\n"); + for (String x : env.keySet()) { + status.append(x).append("=").append(env.get(x)).append("\n"); + } + status.append("++++Test Output++++\n"); for (String x : testOutput) { appendStatus(x); } - status = status.append("++++Test Output End++++\n"); + status.append("++++Test Stack Trace++++\n"); + status.append(t.toString()); + for (StackTraceElement e : t.getStackTrace()) { + status.append(e.toString()); + } + status.append("++++End of Test Info++++\n"); return status.toString(); } diff --git a/langtools/.hgtags b/langtools/.hgtags index 4f9d4e25542..8ea0912e659 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -112,3 +112,5 @@ e77e98f936e83d94c9b56cc7af218dc822a06122 jdk7-b133 9d0a61ac567b983da7cc8f4a7030f2245bb6dbab jdk7-b135 ed0f7f1f9511db4f9615b1426d22f8b961629275 jdk7-b136 a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137 +53f212bed4f4304dce7f0bf0fa01c998c65bacd6 jdk7-b138 +853b6bb99f9b58eb7cf8211c67d3b6e4f1228a3e jdk7-b139 diff --git a/langtools/make/build.properties b/langtools/make/build.properties index ad48717afd5..5c4ad09c135 100644 --- a/langtools/make/build.properties +++ b/langtools/make/build.properties @@ -71,9 +71,18 @@ javac.version.opt = javac.lint.opts = -Xlint:all,-deprecation -Werror # options for the task for javac -javadoc.jls3.url=http://java.sun.com/docs/books/jls/ -javadoc.jls3.cite=<a href="${javadoc.jls3.url}">The Java Language Specification, Third Edition</a> -javadoc.jls3.option=-tag "jls3:a:See <cite>${javadoc.jls3.cite}</cite>:" +#javadoc.jls3.url=http://java.sun.com/docs/books/jls/ +#javadoc.jls3.cite=<a href="${javadoc.jls3.url}">The Java Language Specification, Third Edition</a> +#javadoc.jls3.option=-tag "jls3:a:See <cite>${javadoc.jls3.cite}</cite>:" + + +javadoc.jls.cite=The Java™ Language Specification + +javadoc.jls.option=-tag "jls:a:See <cite>${javadoc.jls.cite}</cite>:" + + + + # jtreg, used to run the JDK regression tests # See http://openjdk.java.net/jtreg/ diff --git a/langtools/make/build.xml b/langtools/make/build.xml index 6e9687bd114..5141cfdad58 100644 --- a/langtools/make/build.xml +++ b/langtools/make/build.xml @@ -464,7 +464,7 @@ - + diff --git a/langtools/src/share/classes/com/sun/javadoc/ClassDoc.java b/langtools/src/share/classes/com/sun/javadoc/ClassDoc.java index 03ce11cb50b..8eda69b4bdd 100644 --- a/langtools/src/share/classes/com/sun/javadoc/ClassDoc.java +++ b/langtools/src/share/classes/com/sun/javadoc/ClassDoc.java @@ -311,8 +311,8 @@ public interface ClassDoc extends ProgramElementDoc, Type { /** * Get the list of classes and interfaces declared as imported. - * These are called "single-type-import declarations" in the - * Java Language Specification. + * These are called "single-type-import declarations" in + * The Java™ Language Specification. * * @return an array of ClassDoc representing the imported classes. * @@ -325,8 +325,8 @@ public interface ClassDoc extends ProgramElementDoc, Type { /** * Get the list of packages declared as imported. - * These are called "type-import-on-demand declarations" in the - * Java Language Specification. + * These are called "type-import-on-demand declarations" in + * The Java™ Language Specification. * * @return an array of PackageDoc representing the imported packages. * diff --git a/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java b/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java index 2ab8afb11e7..5a9074b28f3 100644 --- a/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java @@ -36,7 +36,7 @@ import java.util.List; * {@code @}annotationType ( arguments ) * * - * @see "The Java Language Specification, 3rd ed, section 9.7" + * @jls section 9.7 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java b/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java index b52307e2e03..7e5fc2cfc5f 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * expression [ index ] * * - * @see "The Java Language Specification, 3rd ed, section 15.13" + * @jls section 15.13 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java b/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java index bd6ef6c1779..0c58a719ccb 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * type [] * * - * @see "The Java Language Specification, 3rd ed, section 10.1" + * @jls section 10.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/AssertTree.java b/langtools/src/share/classes/com/sun/source/tree/AssertTree.java index 1212f7fdd17..fce758ed9dc 100644 --- a/langtools/src/share/classes/com/sun/source/tree/AssertTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/AssertTree.java @@ -35,7 +35,7 @@ package com.sun.source.tree; * assert condition : detail ; * * - * @see "The Java Language Specification, 3rd ed, section 14.10" + * @jls section 14.10 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java b/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java index 0224d63389f..9c5480d503d 100644 --- a/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * variable = expression * * - * @see "The Java Language Specification, 3rd ed, section 15.26.1" + * @jls section 15.26.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java b/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java index 21875f308d3..d24497a3c74 100644 --- a/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * leftOperand operator rightOperand * * - * @see "The Java Language Specification, 3rd ed, sections 15.17 to 15.24" + * @jls sections 15.17 to 15.24 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/BlockTree.java b/langtools/src/share/classes/com/sun/source/tree/BlockTree.java index 1013f964711..330309a080a 100644 --- a/langtools/src/share/classes/com/sun/source/tree/BlockTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/BlockTree.java @@ -39,7 +39,7 @@ import java.util.List; * static { statements } * * - * @see "The Java Language Specification, 3rd ed, section 14.2" + * @jls section 14.2 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/BreakTree.java b/langtools/src/share/classes/com/sun/source/tree/BreakTree.java index ae40b156fc0..e287a98152c 100644 --- a/langtools/src/share/classes/com/sun/source/tree/BreakTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/BreakTree.java @@ -37,7 +37,7 @@ import javax.lang.model.element.Name; * break label ; * * - * @see "The Java Language Specification, 3rd ed, section 14.15" + * @jls section 14.15 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/CaseTree.java b/langtools/src/share/classes/com/sun/source/tree/CaseTree.java index 717f00d8ca2..a273c2ffbd8 100644 --- a/langtools/src/share/classes/com/sun/source/tree/CaseTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/CaseTree.java @@ -39,7 +39,7 @@ import java.util.List; * statements * * - * @see "The Java Language Specification, 3rd ed, section 14.11" + * @jls section 14.11 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/CatchTree.java b/langtools/src/share/classes/com/sun/source/tree/CatchTree.java index 29743866ff4..9c34e860028 100644 --- a/langtools/src/share/classes/com/sun/source/tree/CatchTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/CatchTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * block * * - * @see "The Java Language Specification, 3rd ed, section 14.20" + * @jls section 14.20 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ClassTree.java b/langtools/src/share/classes/com/sun/source/tree/ClassTree.java index 4ff167a6cc1..81c7c2f223e 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ClassTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ClassTree.java @@ -42,8 +42,7 @@ import javax.lang.model.element.Name; * } * * - * @see "The Java Language Specification, 3rd ed, - * sections 8.1, 8.9, 9.1, and 9.6" + * @jls sections 8.1, 8.9, 9.1, and 9.6 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java b/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java index 6f130fc66f6..66b585cf347 100644 --- a/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java @@ -33,7 +33,7 @@ import com.sun.source.tree.LineMap; * Represents the abstract syntax tree for compilation units (source * files) and package declarations (package-info.java). * - * @see "The Java Language Specification, 3rd ed, sections 7.3, and 7.4" + * @jls sections 7.3, and 7.4 * * @author Peter von der Ahé * @since 1.6 diff --git a/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java b/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java index 37a292ca377..86eb99c27c1 100644 --- a/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * variable operator expression * * - * @see "The Java Language Specification, 3rd ed, section 15.26.2" + * @jls section 15.26.2 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java b/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java index 6c9fb8c2e99..4492611f931 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * condition ? trueExpression : falseExpression * * - * @see "The Java Language Specification, 3rd ed, section 15.25" + * @jls section 15.25 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java b/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java index 0d141d8686d..98db3549faf 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java @@ -36,7 +36,7 @@ import javax.lang.model.element.Name; * continue label ; * * - * @see "The Java Language Specification, 3rd ed, section 14.16" + * @jls section 14.16 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java b/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java index 70d9833131c..4a6e20b43bd 100644 --- a/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java @@ -35,7 +35,7 @@ package com.sun.source.tree; * while ( expression ); * * - * @see "The Java Language Specification, 3rd ed, section 14.13" + * @jls section 14.13 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java b/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java index d8b072a09f8..baf13c15503 100644 --- a/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * ; * * - * @see "The Java Language Specification, 3rd ed, section 14.6" + * @jls section 14.6 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java b/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java index be486acb6f6..f550bfaf1d3 100644 --- a/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * statement * * - * @see "The Java Language Specification, 3rd ed, section 14.14.2" + * @jls section 14.14.2 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java b/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java index 099e93840fb..f3661c1d323 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * expression ; * * - * @see "The Java Language Specification, 3rd ed, section 14.8" + * @jls section 14.8 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java b/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java index 71ead42d9a4..1ef4349fce8 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java @@ -29,7 +29,7 @@ package com.sun.source.tree; * A tree node used as the base class for the different types of * expressions. * - * @see "The Java Language Specification, 3rd ed, chapter 15" + * @jls chapter 15 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java b/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java index 7e0f60a97f1..12e21b7954a 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java @@ -36,7 +36,7 @@ import java.util.List; * statement * * - * @see "The Java Language Specification, 3rd ed, section 14.14.1" + * @jls section 14.14.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java b/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java index 4a973cfc948..1d2d8adc7ad 100644 --- a/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java @@ -35,7 +35,7 @@ import javax.lang.model.element.Name; * name * * - * @see "The Java Language Specification, 3rd ed, section 6.5.6.1" + * @jls section 6.5.6.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/IfTree.java b/langtools/src/share/classes/com/sun/source/tree/IfTree.java index 30d225d8fb8..f6009466451 100644 --- a/langtools/src/share/classes/com/sun/source/tree/IfTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/IfTree.java @@ -39,7 +39,7 @@ package com.sun.source.tree; * elseStatement * * - * @see "The Java Language Specification, 3rd ed, section 14.9" + * @jls section 14.9 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ImportTree.java b/langtools/src/share/classes/com/sun/source/tree/ImportTree.java index 4a176ec8d01..1fd027d5259 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ImportTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ImportTree.java @@ -35,7 +35,7 @@ package com.sun.source.tree; * static import qualifiedIdentifier ; * * - * @see "The Java Language Specification, 3rd ed, section 7.5" + * @jls section 7.5 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java b/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java index 5fb307ba0ce..20d95e73eab 100644 --- a/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * expression instanceof type * * - * @see "The Java Language Specification, 3rd ed, section 15.20.2" + * @jls section 15.20.2 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java b/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java index d7d7a353a8f..ba58dd488fd 100644 --- a/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java @@ -35,7 +35,7 @@ import javax.lang.model.element.Name; * label : statement * * - * @see "The Java Language Specification, 3rd ed, section 14.7" + * @jls section 14.7 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java b/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java index 76a91551ec6..a8be528c2f8 100644 --- a/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * value * * - * @see "The Java Language Specification, 3rd ed, section 15.28" + * @jls section 15.28 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java b/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java index d0332c0298d..e5beec5d234 100644 --- a/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java @@ -35,8 +35,7 @@ import javax.lang.model.element.Name; * expression . identifier * * - * @see "The Java Language Specification, 3rd ed, sections 6.5, - * 15.11, and 15.12" + * @jls sections 6.5, 15.11,and 15.12 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java b/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java index 1d1cbab8dff..4728d9963dc 100644 --- a/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java @@ -37,7 +37,7 @@ import java.util.List; * this . typeArguments identifier ( arguments ) * * - * @see "The Java Language Specification, 3rd ed, section 15.12" + * @jls section 15.12 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/MethodTree.java b/langtools/src/share/classes/com/sun/source/tree/MethodTree.java index 074c8c08329..8dfd0ba8c02 100644 --- a/langtools/src/share/classes/com/sun/source/tree/MethodTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/MethodTree.java @@ -40,8 +40,7 @@ import javax.lang.model.element.Name; * modifiers type name () default defaultValue * * - * @see "The Java Language Specification, 3rd ed, sections 8.4, 8.6, 8.7, - * 9.4, and 9.6" + * @jls sections 8.4, 8.6, 8.7, 9.4, and 9.6 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java b/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java index 8aeee844e5e..3189651e373 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java @@ -39,8 +39,7 @@ import javax.lang.model.element.Modifier; * flags annotations * * - * @see "The Java Language Specification, 3rd ed, sections - * 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7" + * @jls sections 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java b/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java index bff2108e526..cdd5cd51a9b 100644 --- a/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java @@ -37,7 +37,7 @@ import java.util.List; * new type dimensions [ ] initializers * * - * @see "The Java Language Specification, 3rd ed, section 15.10" + * @jls section 15.10 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java b/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java index aed47b0a85e..06d713bef9f 100644 --- a/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java @@ -42,7 +42,7 @@ import java.util.List; * enclosingExpression.new identifier ( arguments ) * * - * @see "The Java Language Specification, 3rd ed, section 15.9" + * @jls section 15.9 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java b/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java index 7f88ddf1dd5..aef328ddee9 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java @@ -35,7 +35,7 @@ import java.util.List; * type < typeArguments > * * - * @see "The Java Language Specification, 3rd ed, section 4.5.1" + * @jls section 4.5.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java b/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java index 9290fd237c8..d68516fac66 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * ( expression ) * * - * @see "The Java Language Specification, 3rd ed, section 15.8.5" + * @jls section 15.8.5 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java b/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java index 0e1f95f748b..f6cd5669de5 100644 --- a/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java @@ -35,7 +35,7 @@ import javax.lang.model.type.TypeKind; * primitiveTypeKind * * - * @see "The Java Language Specification, 3rd ed, section 4.2" + * @jls section 4.2 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java b/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java index e785be6df98..62a51cb3316 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * return expression; * * - * @see "The Java Language Specification, 3rd ed, section 14.17" + * @jls section 14.17 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/StatementTree.java b/langtools/src/share/classes/com/sun/source/tree/StatementTree.java index 24b8bd3c421..47dba7dd64a 100644 --- a/langtools/src/share/classes/com/sun/source/tree/StatementTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/StatementTree.java @@ -29,7 +29,7 @@ package com.sun.source.tree; * A tree node used as the base class for the different kinds of * statements. * - * @see "The Java Language Specification, 3rd ed, chapter 14" + * @jls chapter 14 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java b/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java index 5cc5186ae02..c5a87c42c88 100644 --- a/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java @@ -37,7 +37,7 @@ import java.util.List; * } * * - * @see "The Java Language Specification, 3rd ed, section 14.11" + * @jls section 14.11 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java b/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java index 17d1441c9e4..20c9a442d46 100644 --- a/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java @@ -34,7 +34,7 @@ package com.sun.source.tree; * block * * - * @see "The Java Language Specification, 3rd ed, section 14.19" + * @jls section 14.19 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java b/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java index e30e31b5f55..a91f63b0cb9 100644 --- a/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * throw expression; * * - * @see "The Java Language Specification, 3rd ed, section 14.18" + * @jls section 14.18 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/Tree.java b/langtools/src/share/classes/com/sun/source/tree/Tree.java index c271a0ca069..5e26c18936c 100644 --- a/langtools/src/share/classes/com/sun/source/tree/Tree.java +++ b/langtools/src/share/classes/com/sun/source/tree/Tree.java @@ -232,9 +232,9 @@ public interface Tree { PARAMETERIZED_TYPE(ParameterizedTypeTree.class), /** - * Used for instances of {@link DisjunctiveTypeTree}. + * Used for instances of {@link UnionTypeTree}. */ - DISJUNCTIVE_TYPE(DisjunctiveTypeTree.class), + UNION_TYPE(UnionTypeTree.class), /** * Used for instances of {@link TypeCastTree}. diff --git a/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java b/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java index ccdee51ca32..ffaf0c3e563 100644 --- a/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java +++ b/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java @@ -95,7 +95,7 @@ public interface TreeVisitor { R visitCompilationUnit(CompilationUnitTree node, P p); R visitTry(TryTree node, P p); R visitParameterizedType(ParameterizedTypeTree node, P p); - R visitDisjunctiveType(DisjunctiveTypeTree node, P p); + R visitUnionType(UnionTypeTree node, P p); R visitArrayType(ArrayTypeTree node, P p); R visitTypeCast(TypeCastTree node, P p); R visitPrimitiveType(PrimitiveTypeTree node, P p); diff --git a/langtools/src/share/classes/com/sun/source/tree/TryTree.java b/langtools/src/share/classes/com/sun/source/tree/TryTree.java index 24c185dc6d4..f2510bd5821 100644 --- a/langtools/src/share/classes/com/sun/source/tree/TryTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/TryTree.java @@ -39,7 +39,7 @@ import java.util.List; * finallyBlock * * - * @see "The Java Language Specification, 3rd ed, section 14.20" + * @jls section 14.20 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java b/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java index 682b5403d30..43dc6192e38 100644 --- a/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java @@ -33,7 +33,7 @@ package com.sun.source.tree; * ( type ) expression * * - * @see "The Java Language Specification, 3rd ed, section 15.16" + * @jls section 15.16 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java b/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java index 66e8757e182..6a603389321 100644 --- a/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java @@ -38,7 +38,7 @@ import javax.lang.model.element.Name; * name extends bounds * * - * @see "The Java Language Specification, 3rd ed, section 4.4" + * @jls section 4.4 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java b/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java index ed843c989a5..7b4d9e834af 100644 --- a/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java @@ -36,7 +36,7 @@ package com.sun.source.tree; * expression operator * * - * @see "The Java Language Specification, 3rd ed, sections 15.14 and 15.15" + * @jls sections 15.14 and 15.15 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java b/langtools/src/share/classes/com/sun/source/tree/UnionTypeTree.java similarity index 86% rename from langtools/src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java rename to langtools/src/share/classes/com/sun/source/tree/UnionTypeTree.java index ae8e5813845..75e38676af0 100644 --- a/langtools/src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/UnionTypeTree.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 @@ -28,13 +28,12 @@ package com.sun.source.tree; import java.util.List; /** - * A tree node for a disjunctive type expression in a multicatch var declaration. - * + * A tree node for a union type expression in a multicatch var declaration. * * @author Maurizio Cimadamore * * @since 1.7 */ -public interface DisjunctiveTypeTree extends Tree { +public interface UnionTypeTree extends Tree { List getTypeAlternatives(); } diff --git a/langtools/src/share/classes/com/sun/source/tree/VariableTree.java b/langtools/src/share/classes/com/sun/source/tree/VariableTree.java index 6d7f65f5106..ea73f23ad3e 100644 --- a/langtools/src/share/classes/com/sun/source/tree/VariableTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/VariableTree.java @@ -35,7 +35,7 @@ import javax.lang.model.element.Name; * modifiers type name initializer ; * * - * @see "The Java Language Specification, 3rd ed, sections 8.3 and 14.4" + * @jls sections 8.3 and 14.4 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java b/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java index aec05f4531c..fd4a832a71c 100644 --- a/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java @@ -35,7 +35,7 @@ package com.sun.source.tree; * * * - * @see "The Java Language Specification, 3rd ed, section 14.12" + * @jls section 14.12 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java b/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java index e6a98d0dcaa..d3f62fd033e 100644 --- a/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java +++ b/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java @@ -38,7 +38,7 @@ package com.sun.source.tree; * ? super bound * * - * @see "The Java Language Specification, 3rd ed, section 4.5.1" + * @jls section 4.5.1 * * @author Peter von der Ahé * @author Jonathan Gibbons diff --git a/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java b/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java index 9ff7be8ec85..fc406b457d7 100644 --- a/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java +++ b/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java @@ -228,7 +228,7 @@ public class SimpleTreeVisitor implements TreeVisitor { return defaultAction(node, p); } - public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) { + public R visitUnionType(UnionTypeTree node, P p) { return defaultAction(node, p); } diff --git a/langtools/src/share/classes/com/sun/source/util/TreeScanner.java b/langtools/src/share/classes/com/sun/source/util/TreeScanner.java index be0b0e8ee8a..e87189dcc3c 100644 --- a/langtools/src/share/classes/com/sun/source/util/TreeScanner.java +++ b/langtools/src/share/classes/com/sun/source/util/TreeScanner.java @@ -355,7 +355,7 @@ public class TreeScanner implements TreeVisitor { return r; } - public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) { + public R visitUnionType(UnionTypeTree node, P p) { return scan(node.getTypeAlternatives(), p); } diff --git a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java b/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java index 7373804e532..02f59ff0d7f 100644 --- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java +++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java @@ -67,7 +67,8 @@ public class DeclarationsImpl implements Declarations { /** * {@inheritDoc} - * See JLS 2 sections 8.3 and 8.4.6. + * See sections 8.3 and 8.4.6 of + * The Java™ Language Specification */ public boolean hides(MemberDeclaration sub, MemberDeclaration sup) { Symbol hider = ((DeclarationImpl) sub).sym; @@ -107,7 +108,8 @@ public class DeclarationsImpl implements Declarations { /** * {@inheritDoc} - * See JLS 2 section 8.4.6.1. + * See section 8.4.6.1 of + * The Java™ Language Specification */ public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) { MethodSymbol overrider = ((MethodDeclarationImpl) sub).sym; diff --git a/langtools/src/share/classes/com/sun/tools/classfile/AccessFlags.java b/langtools/src/share/classes/com/sun/tools/classfile/AccessFlags.java index e7ab8969423..bb8faf3df44 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/AccessFlags.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/AccessFlags.java @@ -30,7 +30,7 @@ import java.util.LinkedHashSet; import java.util.Set; /** - * See JVMS3, sections 4.2, 4.6, 4.7. + * See JVMS, sections 4.2, 4.6, 4.7. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Annotation.java b/langtools/src/share/classes/com/sun/tools/classfile/Annotation.java index 98eadc6eb96..8192d1a00c6 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Annotation.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Annotation.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.16. + * See JVMS, section 4.8.16. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. @@ -71,7 +71,7 @@ public class Annotation { public final element_value_pair element_value_pairs[]; /** - * See JVMS3, section 4.8.16.1. + * See JVMS, section 4.8.16.1. */ public static abstract class element_value { public static element_value read(ClassReader cr) diff --git a/langtools/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java index 091a8fa2601..1ca7fc4565c 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.15. + * See JVMS, section 4.8.15. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java index 59b00f11f93..38043332030 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3 + * See JVMS * http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/ * *

This is NOT part of any supported API. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java b/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java index affcad0594e..9a68f617365 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ClassFile.java @@ -33,7 +33,7 @@ import java.io.InputStream; import static com.sun.tools.classfile.AccessFlags.*; /** - * See JVMS3, section 4.2. + * See JVMS, section 4.2. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Code_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Code_attribute.java index bc21154c780..af34c2a463c 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Code_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Code_attribute.java @@ -30,7 +30,7 @@ import java.util.Iterator; import java.util.NoSuchElementException; /** - * See JVMS3, section 4.8.3. + * See JVMS, section 4.8.3. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java b/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java index c9a48bf4d22..29a5ce34db9 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ConstantPool.java @@ -31,7 +31,7 @@ import java.io.OutputStream; import java.util.Iterator; /** - * See JVMS3, section 4.5. + * See JVMS, section 4.5. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java index 94a88cb3f92..df40defa4f7 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.2. + * See JVMS, section 4.8.2. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java index 646ed3d5874..dbf6442f202 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.15. + * See JVMS, section 4.8.15. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Descriptor.java b/langtools/src/share/classes/com/sun/tools/classfile/Descriptor.java index ff194c9680f..28db3312188 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Descriptor.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Descriptor.java @@ -29,7 +29,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.4. + * See JVMS, section 4.4. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java index 2296810e562..bdebe41e586 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java @@ -29,7 +29,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.7. + * See JVMS, section 4.8.7. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java index 05c301b3e51..a56db00b371 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.5. + * See JVMS, section 4.8.5. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java index 2033a9eadea..153a7ed97cd 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java @@ -30,7 +30,7 @@ import java.io.IOException; import com.sun.tools.classfile.ConstantPool.*; /** - * See JVMS3, section 4.8.6. + * See JVMS, section 4.8.6. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Instruction.java b/langtools/src/share/classes/com/sun/tools/classfile/Instruction.java index d6ca812a5a6..a2d36f5dc25 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Instruction.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Instruction.java @@ -26,7 +26,7 @@ package com.sun.tools.classfile; /** - * See JVMS3, chapter 6. + * See JVMS, chapter 6. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java index e07c9ec6d07..58595b7d058 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.12. + * See JVMS, section 4.8.12. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java index 9aa060a24cd..1e4465f2f7c 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.13. + * See JVMS, section 4.8.13. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java index b917b0f45ad..8332cbec577 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.14. + * See JVMS, section 4.8.14. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Opcode.java b/langtools/src/share/classes/com/sun/tools/classfile/Opcode.java index b5a0086da3c..9f27645093e 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Opcode.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Opcode.java @@ -29,7 +29,7 @@ import static com.sun.tools.classfile.Instruction.Kind.*; import static com.sun.tools.classfile.Opcode.Set.*; /** - * See JVMS3, chapter 6. + * See JVMS, chapter 6. * *

In addition to providing all the standard opcodes defined in JVMS, * this class also provides legacy support for the PicoJava extensions. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java index c0ec09d24cb..859cec405da 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.16 and 4.8.17. + * See JVMS, section 4.8.16 and 4.8.17. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java index b1a2e65ea7c..ed700823cd5 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.17. + * See JVMS, section 4.8.17. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java index 340383c89fc..57de543a903 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.18. + * See JVMS, section 4.8.18. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java index 225843800c4..904010f649f 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.18 and 4.8.19. + * See JVMS, section 4.8.18 and 4.8.19. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java index 51075d6f9df..c7a443905c6 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.16. + * See JVMS, section 4.8.16. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java index 649fe85e8e0..24214e7e2a2 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.18. + * See JVMS, section 4.8.18. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Signature.java b/langtools/src/share/classes/com/sun/tools/classfile/Signature.java index ccc17bae783..19c52f817ca 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Signature.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Signature.java @@ -30,7 +30,7 @@ import java.util.List; import com.sun.tools.classfile.Type.*; /** - * See JVMS3 4.4.4. + * See JVMS 4.4.4. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Signature_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Signature_attribute.java index 89c4893e627..acb9475c798 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Signature_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Signature_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.9. + * See JVMS, section 4.8.9. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java index 6ed4f017a76..ba1f2aa870f 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java @@ -30,7 +30,7 @@ import java.io.DataInputStream; import java.io.IOException; /** - * See JVMS3, section 4.8.15. + * See JVMS, section 4.8.15. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java index 168a4474e0f..c3b7509d165 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.10. + * See JVMS, section 4.8.10. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java index bdb39a98695..13c43e42364 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.4. + * See JVMS, section 4.8.4. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java index f1995d2844b..0b7f933d787 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java +++ b/langtools/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java @@ -28,7 +28,7 @@ package com.sun.tools.classfile; import java.io.IOException; /** - * See JVMS3, section 4.8.8. + * See JVMS, section 4.8.8. * *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. diff --git a/langtools/src/share/classes/com/sun/tools/classfile/package.html b/langtools/src/share/classes/com/sun/tools/classfile/package.html index d065ba5f3a3..765dfb1acbe 100644 --- a/langtools/src/share/classes/com/sun/tools/classfile/package.html +++ b/langtools/src/share/classes/com/sun/tools/classfile/package.html @@ -6,7 +6,7 @@ A minimalist library to read and write class files into objects closely - based on the corresponding definitions in the Java Virtual Machine - Specification (JVMS). + based on the corresponding definitions in + The Java™ Virtual Machine Specification (JVMS). 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 60609b4f5f0..80cc01bd099 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 @@ -2523,8 +2523,9 @@ public class HtmlDocletWriter extends HtmlDocWriter { } /** - * According to the Java Language Specifications, all the outer classes - * and static nested classes are core classes. + * According to + * The Java™ Language Specification, + * all the outer classes and static nested classes are core classes. */ public boolean isCoreClass(ClassDoc cd) { return cd.containingClass() == null || cd.isStatic(); 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 fde2c3c0f61..1e6186b3a22 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 @@ -175,8 +175,9 @@ public class Util { } /** - * According to the Java Language Specifications, all the outer classes - * and static inner classes are core classes. + * According to + * The Java™ Language Specification, + * all the outer classes and static inner classes are core classes. */ public static boolean isCoreClass(ClassDoc cd) { return cd.containingClass() == null || cd.isStatic(); diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java index 5a7576987cb..5c93ba78adc 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Flags.java @@ -231,9 +231,9 @@ public class Flags { public static final long PROPRIETARY = 1L<<38; /** - * Flag that marks a disjunction var in a multi-catch clause + * Flag that marks a a multi-catch parameter */ - public static final long DISJUNCTION = 1L<<39; + public static final long UNION = 1L<<39; /** * Flag that marks a signature-polymorphic invoke method. diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java index e55210276eb..381edd2fbd0 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java @@ -1193,7 +1193,7 @@ public abstract class Symbol implements Element { } private boolean isOverridableIn(TypeSymbol origin) { - // JLS3 8.4.6.1 + // JLS 8.4.6.1 switch ((int)(flags_field & Flags.AccessFlags)) { case Flags.PRIVATE: return false; 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 8de4750d4ac..355f56f6ee9 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 @@ -1985,7 +1985,7 @@ public class Types { * signature of the other. This is not an equivalence * relation. * - * @see "The Java Language Specification, Third Ed. (8.4.2)." + * @jls section 8.4.2. * @see #overrideEquivalent(Type t, Type s) * @param t first signature (possibly raw). * @param s second signature (could be subjected to erasure). @@ -2004,7 +2004,7 @@ public class Types { * equivalence. This is the natural extension of * isSubSignature to an equivalence relation. * - * @see "The Java Language Specification, Third Ed. (8.4.2)." + * @jls section 8.4.2. * @see #isSubSignature(Type t, Type s) * @param t a signature (possible raw, could be subjected to * erasure). @@ -2309,7 +2309,7 @@ public class Types { if (elemtype == t.elemtype) return t; else - return new ArrayType(upperBound(elemtype), t.tsym); + return new ArrayType(elemtype, t.tsym); } @Override @@ -3049,8 +3049,7 @@ public class Types { /** * Return-Type-Substitutable. - * @see The Java - * Language Specification, Third Ed. (8.4.5) + * @jls section 8.4.5 */ public boolean returnTypeSubstitutable(Type r1, Type r2) { if (hasSameArgs(r1, r2)) @@ -3130,7 +3129,7 @@ public class Types { // /* - * JLS 3rd Ed. 5.1.10 Capture Conversion: + * JLS 5.1.10 Capture Conversion: * * Let G name a generic type declaration with n formal type * parameters A1 ... An with corresponding bounds U1 ... Un. There @@ -3163,7 +3162,7 @@ public class Types { * Capture conversion is not applied recursively. */ /** - * Capture conversion as specified by JLS 3rd Ed. + * Capture conversion as specified by the JLS. */ public List capture(List ts) { 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 bba81ad62b8..ad075a04c2e 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 @@ -1112,7 +1112,7 @@ public class Attr extends JCTree.Visitor { Type ctype = attribStat(c.param, catchEnv); if (TreeInfo.isMultiCatch(c)) { //multi-catch parameter is implicitly marked as final - c.param.sym.flags_field |= FINAL | DISJUNCTION; + c.param.sym.flags_field |= FINAL | UNION; } if (c.param.sym.kind == Kinds.VAR) { c.param.sym.setData(ElementKind.EXCEPTION_PARAMETER); @@ -2632,10 +2632,10 @@ public class Attr extends JCTree.Visitor { * @param tree The tree making up the variable reference. * @param env The current environment. * @param v The variable's symbol. - * @see JLS 3rd Ed. (8.9 Enums) + * @jls section 8.9 Enums */ private void checkEnumInitializer(JCTree tree, Env env, VarSymbol v) { - // JLS 3rd Ed.: + // JLS: // // "It is a compile-time error to reference a static field // of an enum type that is not a compile-time constant @@ -2908,7 +2908,7 @@ public class Attr extends JCTree.Visitor { result = check(tree, owntype, TYP, pkind, pt); } - public void visitTypeDisjunction(JCTypeDisjunction tree) { + public void visitTypeUnion(JCTypeUnion tree) { ListBuffer multicatchTypes = ListBuffer.lb(); for (JCExpression typeTree : tree.alternatives) { Type ctype = attribType(typeTree, env); @@ -2916,7 +2916,7 @@ public class Attr extends JCTree.Visitor { chk.checkClassType(typeTree.pos(), ctype), syms.throwableType); if (!ctype.isErroneous()) { - //check that alternatives of a disjunctive type are pairwise + //check that alternatives of a union type are pairwise //unrelated w.r.t. subtyping if (chk.intersects(ctype, multicatchTypes.toList())) { for (Type t : multicatchTypes) { 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 c54d6862812..c8537ef905e 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 @@ -2271,7 +2271,7 @@ public class Check { * that of any public or protected method declared in class Object * or in the interface annotation.Annotation." * - * @jls3 9.6 Annotation Types + * @jls 9.6 Annotation Types */ void validateAnnotationMethod(DiagnosticPosition pos, MethodSymbol m) { for (Type sup = syms.annotationType; sup.tag == CLASS; sup = types.supertype(sup)) { 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 8b07d8e9040..d58106e3089 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 @@ -51,7 +51,7 @@ import static com.sun.tools.javac.code.TypeTags.*; * unassignment analysis ensures that no final variable is assigned * more than once. * - *

The second edition of the JLS has a number of problems in the + *

The JLS has a number of problems in the * specification of these flow analysis problems. This implementation * attempts to address those issues. * @@ -126,7 +126,7 @@ import static com.sun.tools.javac.code.TypeTags.*; * don't have to worry about the return expression because this * concept is only used for construcrors. * - *

There is no spec in JLS2 for when a variable is definitely + *

There is no spec in the JLS for when a variable is definitely * assigned at the end of a constructor, which is needed for final * fields (8.3.1.2). We implement the rule that V is DA at the end * of the constructor iff it is DA and the end of the body of the @@ -381,7 +381,7 @@ public class Flow extends TreeScanner { if (sym.adr >= firstadr && trackable(sym)) { if ((sym.flags() & FINAL) != 0) { if ((sym.flags() & PARAMETER) != 0) { - if ((sym.flags() & DISJUNCTION) != 0) { //multi-catch parameter + if ((sym.flags() & UNION) != 0) { //multi-catch parameter log.error(pos, "multicatch.parameter.may.not.be.assigned", sym); } @@ -1003,7 +1003,7 @@ public class Flow extends TreeScanner { thrown = List.nil(); for (List l = tree.catchers; l.nonEmpty(); l = l.tail) { List subClauses = TreeInfo.isMultiCatch(l.head) ? - ((JCTypeDisjunction)l.head.param.vartype).alternatives : + ((JCTypeUnion)l.head.param.vartype).alternatives : List.of(l.head.param.vartype); for (JCExpression ct : subClauses) { caught = chk.incl(ct.type, caught); @@ -1075,7 +1075,7 @@ public class Flow extends TreeScanner { alive = true; JCVariableDecl param = l.head.param; List subClauses = TreeInfo.isMultiCatch(l.head) ? - ((JCTypeDisjunction)l.head.param.vartype).alternatives : + ((JCTypeUnion)l.head.param.vartype).alternatives : List.of(l.head.param.vartype); List ctypes = List.nil(); List rethrownTypes = chk.diff(thrownInTry, caughtInTry); diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java index 301a3aeb44d..6626cb450ac 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java @@ -346,7 +346,7 @@ public class Resolve { if (typeargtypes == null) typeargtypes = List.nil(); if (mt.tag != FORALL && typeargtypes.nonEmpty()) { // This is not a polymorphic method, but typeargs are supplied - // which is fine, see JLS3 15.12.2.1 + // which is fine, see JLS 15.12.2.1 } else if (mt.tag == FORALL && typeargtypes.nonEmpty()) { ForAll pmt = (ForAll) mt; if (typeargtypes.length() != pmt.tvars.length()) @@ -770,12 +770,9 @@ public class Resolve { return ambiguityError(m1, m2); // both abstract, neither overridden; merge throws clause and result type Symbol mostSpecific; - Type result2 = mt2.getReturnType(); - if (mt2.tag == FORALL) - result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars); - if (types.isSubtype(mt1.getReturnType(), result2)) + if (types.returnTypeSubstitutable(mt1, mt2)) mostSpecific = m1; - else if (types.isSubtype(result2, mt1.getReturnType())) + else if (types.returnTypeSubstitutable(mt2, mt1)) mostSpecific = m2; else { // Theoretically, this can't happen, but it is possible @@ -1772,7 +1769,7 @@ public class Resolve { /** * Resolve an appropriate implicit this instance for t's container. - * JLS2 8.8.5.1 and 15.9.2 + * JLS 8.8.5.1 and 15.9.2 */ Type resolveImplicitThis(DiagnosticPosition pos, Env env, Type t) { return resolveImplicitThis(pos, env, t, false); diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java index 12c2f99fb6a..bbde8d9ee35 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java @@ -283,7 +283,7 @@ public class Gen extends JCTree.Visitor { } // leave alone methods inherited from Object - // JLS2 13.1. + // JLS 13.1. if (sym.owner == syms.objectType.tsym) return sym; @@ -1456,7 +1456,7 @@ public class Gen extends JCTree.Visitor { List gaps) { if (startpc != endpc) { List subClauses = TreeInfo.isMultiCatch(tree) ? - ((JCTypeDisjunction)tree.param.vartype).alternatives : + ((JCTypeUnion)tree.param.vartype).alternatives : List.of(tree.param.vartype); while (gaps.nonEmpty()) { for (JCExpression subCatch : subClauses) { diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java index 22da1a85094..d3ff4042012 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java +++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java @@ -1837,7 +1837,7 @@ public class JavacParser implements Parser { JCModifiers mods = optFinal(Flags.PARAMETER); List catchTypes = catchTypes(); JCExpression paramType = catchTypes.size() > 1 ? - toP(F.at(catchTypes.head.getStartPosition()).TypeDisjunction(catchTypes)) : + toP(F.at(catchTypes.head.getStartPosition()).TypeUnion(catchTypes)) : catchTypes.head; JCVariableDecl formal = variableDeclaratorId(mods, paramType); accept(RPAREN); diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java index 99881b27991..bade408c04c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java @@ -236,13 +236,13 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition { */ public static final int TYPEAPPLY = TYPEARRAY + 1; - /** Disjunction types, of type TypeDisjunction + /** Union types, of type TypeUnion */ - public static final int TYPEDISJUNCTION = TYPEAPPLY + 1; + public static final int TYPEUNION = TYPEAPPLY + 1; /** Formal type parameters, of type TypeParameter. */ - public static final int TYPEPARAMETER = TYPEDISJUNCTION + 1; + public static final int TYPEPARAMETER = TYPEUNION + 1; /** Type argument. */ @@ -1881,30 +1881,30 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition { } /** - * A disjunction type, T1 | T2 | ... Tn (used in multicatch statements) + * A union type, T1 | T2 | ... Tn (used in multicatch statements) */ - public static class JCTypeDisjunction extends JCExpression implements DisjunctiveTypeTree { + public static class JCTypeUnion extends JCExpression implements UnionTypeTree { public List alternatives; - protected JCTypeDisjunction(List components) { + protected JCTypeUnion(List components) { this.alternatives = components; } @Override - public void accept(Visitor v) { v.visitTypeDisjunction(this); } + public void accept(Visitor v) { v.visitTypeUnion(this); } - public Kind getKind() { return Kind.DISJUNCTIVE_TYPE; } + public Kind getKind() { return Kind.UNION_TYPE; } public List getTypeAlternatives() { return alternatives; } @Override public R accept(TreeVisitor v, D d) { - return v.visitDisjunctiveType(this, d); + return v.visitUnionType(this, d); } @Override public int getTag() { - return TYPEDISJUNCTION; + return TYPEUNION; } } @@ -2227,7 +2227,7 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition { public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); } public void visitTypeArray(JCArrayTypeTree that) { visitTree(that); } public void visitTypeApply(JCTypeApply that) { visitTree(that); } - public void visitTypeDisjunction(JCTypeDisjunction that) { visitTree(that); } + public void visitTypeUnion(JCTypeUnion that) { visitTree(that); } public void visitTypeParameter(JCTypeParameter that) { visitTree(that); } public void visitWildcard(JCWildcard that) { visitTree(that); } public void visitTypeBoundKind(TypeBoundKind that) { visitTree(that); } diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java b/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java index 4c45a7225b3..a332cdeb0f8 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java @@ -1169,7 +1169,7 @@ public class Pretty extends JCTree.Visitor { } } - public void visitTypeDisjunction(JCTypeDisjunction tree) { + public void visitTypeUnion(JCTypeUnion tree) { try { printExprs(tree.alternatives, " | "); } catch (IOException e) { diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java index b2d67926492..4b96be6d98a 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java @@ -338,10 +338,10 @@ public class TreeCopier

implements TreeVisitor { return M.at(t.pos).TypeApply(clazz, arguments); } - public JCTree visitDisjunctiveType(DisjunctiveTypeTree node, P p) { - JCTypeDisjunction t = (JCTypeDisjunction) node; + public JCTree visitUnionType(UnionTypeTree node, P p) { + JCTypeUnion t = (JCTypeUnion) node; List components = copy(t.alternatives, p); - return M.at(t.pos).TypeDisjunction(components); + return M.at(t.pos).TypeUnion(components); } public JCTree visitArrayType(ArrayTypeTree node, P p) { diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java index ee5f70b59e1..c37a561990c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java @@ -119,7 +119,7 @@ public class TreeInfo { } public static boolean isMultiCatch(JCCatch catchClause) { - return catchClause.param.vartype.getTag() == JCTree.TYPEDISJUNCTION; + return catchClause.param.vartype.getTag() == JCTree.TYPEUNION; } /** Is statement an initializer for a synthetic field? diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java index 0020b9da16e..e3f18a08043 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java @@ -435,8 +435,8 @@ public class TreeMaker implements JCTree.Factory { return tree; } - public JCTypeDisjunction TypeDisjunction(List components) { - JCTypeDisjunction tree = new JCTypeDisjunction(components); + public JCTypeUnion TypeUnion(List components) { + JCTypeUnion tree = new JCTypeUnion(components); tree.pos = pos; return tree; } diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java index 7d4086fdf6d..19619665d76 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java @@ -272,7 +272,7 @@ public class TreeScanner extends Visitor { scan(tree.arguments); } - public void visitTypeDisjunction(JCTypeDisjunction tree) { + public void visitTypeUnion(JCTypeUnion tree) { scan(tree.alternatives); } diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java index d909b34bcba..f024a287bd9 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java +++ b/langtools/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java @@ -363,7 +363,7 @@ public class TreeTranslator extends JCTree.Visitor { result = tree; } - public void visitTypeDisjunction(JCTypeDisjunction tree) { + public void visitTypeUnion(JCTypeUnion tree) { tree.alternatives = translate(tree.alternatives); result = tree; } diff --git a/langtools/src/share/classes/javax/annotation/processing/Processor.java b/langtools/src/share/classes/javax/annotation/processing/Processor.java index f5169ce49cb..a466bdd711f 100644 --- a/langtools/src/share/classes/javax/annotation/processing/Processor.java +++ b/langtools/src/share/classes/javax/annotation/processing/Processor.java @@ -225,12 +225,13 @@ public interface Processor { * * * - * where TypeName is as defined in the Java Language Specification. + * where TypeName is as defined in + * The Java™ Language Specification. * * @return the names of the annotation types supported by this processor * @see javax.annotation.processing.SupportedAnnotationTypes - * @jls3 3.8 Identifiers - * @jls3 6.5.5 Meaning of Type Names + * @jls 3.8 Identifiers + * @jls 6.5.5 Meaning of Type Names */ Set getSupportedAnnotationTypes(); diff --git a/langtools/src/share/classes/javax/lang/model/SourceVersion.java b/langtools/src/share/classes/javax/lang/model/SourceVersion.java index 0c2dd667b15..509767230e9 100644 --- a/langtools/src/share/classes/javax/lang/model/SourceVersion.java +++ b/langtools/src/share/classes/javax/lang/model/SourceVersion.java @@ -32,10 +32,9 @@ import java.util.HashSet; /** * Source versions of the Java™ programming language. * - * See http://java.sun.com/docs/books/jls/ - * for information on editions of The Java™ Language - * Specification, including updates and clarifications. + * See the appropriate edition of + * The Java™ Language Specification + * for information about a particular source version. * *

Note that additional source version constants will be added to * model future releases of the language. @@ -59,17 +58,16 @@ public enum SourceVersion { /** * The original version. * - * The language described in the first edition of The - * Java™ Language Specification. + * The language described in + * The Java™ Language Specification, First Edition. */ RELEASE_0, /** * The version recognized by the Java Platform 1.1. * - * The language is {@code RELEASE_0} augmented - * with nested classes. + * The language is {@code RELEASE_0} augmented with nested classes as described in the 1.1 update to + * The Java™ Language Specification, First Edition. */ RELEASE_1, @@ -77,8 +75,9 @@ public enum SourceVersion { * The version recognized by the Java 2 Platform, Standard Edition, * v 1.2. * - * The language described in The Java™ Language - * Specification, Second Edition, which includes the {@code + * The language described in + * The Java™ Language Specification, + * Second Edition, which includes the {@code * strictfp} modifier. */ RELEASE_2, @@ -103,8 +102,9 @@ public enum SourceVersion { * The version recognized by the Java 2 Platform, Standard * Edition 5.0. * - * The language described in The Java™ Language - * Specification, Third Edition. First release to support + * The language described in + * The Java™ Language Specification, + * Third Edition. First release to support * generics, annotations, autoboxing, var-args, enhanced {@code * for} loop, and hexadecimal floating-point literals. */ @@ -210,7 +210,7 @@ public enum SourceVersion { * @param name the string to check * @return {@code true} if this string is a * syntactically valid name, {@code false} otherwise. - * @jls3 6.2 Names and Identifiers + * @jls 6.2 Names and Identifiers */ public static boolean isName(CharSequence name) { String id = name.toString(); diff --git a/langtools/src/share/classes/javax/lang/model/element/Element.java b/langtools/src/share/classes/javax/lang/model/element/Element.java index f46c2cf26f5..06500d2afaf 100644 --- a/langtools/src/share/classes/javax/lang/model/element/Element.java +++ b/langtools/src/share/classes/javax/lang/model/element/Element.java @@ -232,8 +232,8 @@ public interface Element { * * @return the enclosed elements, or an empty list if none * @see Elements#getAllMembers - * @jls3 8.8.9 Default Constructor - * @jls3 8.9 Enums + * @jls 8.8.9 Default Constructor + * @jls 8.9 Enums */ List getEnclosedElements(); diff --git a/langtools/src/share/classes/javax/lang/model/element/Modifier.java b/langtools/src/share/classes/javax/lang/model/element/Modifier.java index 5d7ac37e900..2b6d8ac6642 100644 --- a/langtools/src/share/classes/javax/lang/model/element/Modifier.java +++ b/langtools/src/share/classes/javax/lang/model/element/Modifier.java @@ -46,7 +46,7 @@ package javax.lang.model.element; public enum Modifier { - // See JLS2 sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1. + // See JLS sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1. // java.lang.reflect.Modifier includes INTERFACE, but that's a VMism. /** The modifier {@code public} */ PUBLIC, diff --git a/langtools/src/share/classes/javax/lang/model/element/PackageElement.java b/langtools/src/share/classes/javax/lang/model/element/PackageElement.java index 437633b44bc..66f13863ff0 100644 --- a/langtools/src/share/classes/javax/lang/model/element/PackageElement.java +++ b/langtools/src/share/classes/javax/lang/model/element/PackageElement.java @@ -43,7 +43,7 @@ public interface PackageElement extends Element, QualifiedNameable { * * @return the fully qualified name of this package, or an * empty name if this is an unnamed package - * @jls3 6.7 Fully Qualified Names and Canonical Names + * @jls 6.7 Fully Qualified Names and Canonical Names */ Name getQualifiedName(); @@ -63,7 +63,7 @@ public interface PackageElement extends Element, QualifiedNameable { * * @return {@code true} is this is an unnamed package and {@code * false} otherwise - * @jls3 7.4.2 Unnamed Packages + * @jls 7.4.2 Unnamed Packages */ boolean isUnnamed(); diff --git a/langtools/src/share/classes/javax/lang/model/element/TypeElement.java b/langtools/src/share/classes/javax/lang/model/element/TypeElement.java index 0405aeccc2d..d73adfeec7e 100644 --- a/langtools/src/share/classes/javax/lang/model/element/TypeElement.java +++ b/langtools/src/share/classes/javax/lang/model/element/TypeElement.java @@ -101,7 +101,7 @@ public interface TypeElement extends Element, Parameterizable, QualifiedNameable * an empty name if none * * @see Elements#getBinaryName - * @jls3 6.7 Fully Qualified Names and Canonical Names + * @jls 6.7 Fully Qualified Names and Canonical Names */ Name getQualifiedName(); diff --git a/langtools/src/share/classes/javax/lang/model/element/VariableElement.java b/langtools/src/share/classes/javax/lang/model/element/VariableElement.java index dd081225391..77451fab784 100644 --- a/langtools/src/share/classes/javax/lang/model/element/VariableElement.java +++ b/langtools/src/share/classes/javax/lang/model/element/VariableElement.java @@ -59,8 +59,8 @@ public interface VariableElement extends Element { * otherwise * * @see Elements#getConstantExpression(Object) - * @jls3 15.28 Constant Expression - * @jls3 4.12.4 final Variables + * @jls 15.28 Constant Expression + * @jls 4.12.4 final Variables */ Object getConstantValue(); } diff --git a/langtools/src/share/classes/javax/lang/model/type/DeclaredType.java b/langtools/src/share/classes/javax/lang/model/type/DeclaredType.java index 63cefe1e3f6..c1f500eeb2c 100644 --- a/langtools/src/share/classes/javax/lang/model/type/DeclaredType.java +++ b/langtools/src/share/classes/javax/lang/model/type/DeclaredType.java @@ -79,8 +79,8 @@ public interface DeclaredType extends ReferenceType { * enclosing instance. * * @return a type mirror for the enclosing type - * @jls3 8.1.3 Inner Classes and Enclosing Instances - * @jls3 15.9.2 Determining Enclosing Instances + * @jls 8.1.3 Inner Classes and Enclosing Instances + * @jls 15.9.2 Determining Enclosing Instances */ TypeMirror getEnclosingType(); diff --git a/langtools/src/share/classes/javax/lang/model/type/TypeKind.java b/langtools/src/share/classes/javax/lang/model/type/TypeKind.java index 44d34863785..717737649f0 100644 --- a/langtools/src/share/classes/javax/lang/model/type/TypeKind.java +++ b/langtools/src/share/classes/javax/lang/model/type/TypeKind.java @@ -140,11 +140,11 @@ public enum TypeKind { OTHER, /** - * A disjunctive type. + * A union type. * * @since 1.7 */ - DISJUNCTIVE; + UNION; /** * Returns {@code true} if this kind corresponds to a primitive diff --git a/langtools/src/share/classes/javax/lang/model/type/TypeVariable.java b/langtools/src/share/classes/javax/lang/model/type/TypeVariable.java index cbecb024463..993bba684fd 100644 --- a/langtools/src/share/classes/javax/lang/model/type/TypeVariable.java +++ b/langtools/src/share/classes/javax/lang/model/type/TypeVariable.java @@ -38,8 +38,8 @@ import javax.lang.model.util.Types; * type, method, or constructor. * A type variable may also be declared implicitly, as by * the capture conversion of a wildcard type argument - * (see chapter 5 of The Java Language Specification, Third - * Edition). + * (see chapter 5 of + * The Java™ Language Specification). * * @author Joseph D. Darcy * @author Scott Seligman diff --git a/langtools/src/share/classes/javax/lang/model/type/TypeVisitor.java b/langtools/src/share/classes/javax/lang/model/type/TypeVisitor.java index 97e81415fea..58f63637f64 100644 --- a/langtools/src/share/classes/javax/lang/model/type/TypeVisitor.java +++ b/langtools/src/share/classes/javax/lang/model/type/TypeVisitor.java @@ -164,12 +164,12 @@ public interface TypeVisitor { R visitUnknown(TypeMirror t, P p); /** - * Visits a disjunctive type. + * Visits a union type. * * @param t the type to visit * @param p a visitor-specified parameter * @return a visitor-specified result * @since 1.7 */ - R visitDisjunctive(DisjunctiveType t, P p); + R visitUnion(UnionType t, P p); } diff --git a/langtools/src/share/classes/javax/lang/model/type/DisjunctiveType.java b/langtools/src/share/classes/javax/lang/model/type/UnionType.java similarity index 80% rename from langtools/src/share/classes/javax/lang/model/type/DisjunctiveType.java rename to langtools/src/share/classes/javax/lang/model/type/UnionType.java index f75ea27f2ed..92cfb34dd8c 100644 --- a/langtools/src/share/classes/javax/lang/model/type/DisjunctiveType.java +++ b/langtools/src/share/classes/javax/lang/model/type/UnionType.java @@ -28,22 +28,20 @@ package javax.lang.model.type; import java.util.List; /** - * Represents a disjunctive type. + * Represents a union type. * * As of the {@link javax.lang.model.SourceVersion#RELEASE_7 - * RELEASE_7} source version, disjunctive types can appear as the type + * RELEASE_7} source version, union types can appear as the type * of a multi-catch exception parameter. * * @since 1.7 */ -public interface DisjunctiveType extends TypeMirror { +public interface UnionType extends TypeMirror { /** - * Return the alternatives comprising this disjunctive type. + * Return the alternatives comprising this union type. * - * The alternatives are formally referred to as disjuncts. - * - * @return the alternatives comprising this disjunctive type. + * @return the alternatives comprising this union type. */ List getAlternatives(); } diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java index 278cc842622..33793c41757 100644 --- a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java +++ b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java @@ -96,7 +96,7 @@ public abstract class AbstractTypeVisitor6 implements TypeVisitor { } /** - * Visits a {@code DisjunctiveType} element by calling {@code + * Visits a {@code UnionType} element by calling {@code * visitUnknown}. * @param t {@inheritDoc} @@ -105,7 +105,7 @@ public abstract class AbstractTypeVisitor6 implements TypeVisitor { * * @since 1.7 */ - public R visitDisjunctive(DisjunctiveType t, P p) { + public R visitUnion(UnionType t, P p) { return visitUnknown(t, p); } diff --git a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java index d505e8cee7d..82471264fb5 100644 --- a/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java +++ b/langtools/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java @@ -67,11 +67,11 @@ public abstract class AbstractTypeVisitor7 extends AbstractTypeVisitor6 extends SimpleTypeVisitor6 { } /** - * This implementation visits a {@code DisjunctiveType} by calling + * This implementation visits a {@code UnionType} by calling * {@code defaultAction}. * * @param t {@inheritDoc} @@ -99,7 +99,7 @@ public class SimpleTypeVisitor7 extends SimpleTypeVisitor6 { * @return the result of {@code defaultAction} */ @Override - public R visitDisjunctive(DisjunctiveType t, P p) { + public R visitUnion(UnionType t, P p) { return defaultAction(t, p); } } diff --git a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java index 7981bd7d0f0..3fe06545aaa 100644 --- a/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java +++ b/langtools/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java @@ -94,7 +94,7 @@ public class TypeKindVisitor7 extends TypeKindVisitor6 { } /** - * This implementation visits a {@code DisjunctiveType} by calling + * This implementation visits a {@code UnionType} by calling * {@code defaultAction}. * * @param t {@inheritDoc} @@ -102,7 +102,7 @@ public class TypeKindVisitor7 extends TypeKindVisitor6 { * @return the result of {@code defaultAction} */ @Override - public R visitDisjunctive(DisjunctiveType t, P p) { + public R visitUnion(UnionType t, P p) { return defaultAction(t, p); } } diff --git a/langtools/src/share/classes/javax/lang/model/util/Types.java b/langtools/src/share/classes/javax/lang/model/util/Types.java index 67924ce1d28..a53e66a53f2 100644 --- a/langtools/src/share/classes/javax/lang/model/util/Types.java +++ b/langtools/src/share/classes/javax/lang/model/util/Types.java @@ -81,7 +81,7 @@ public interface Types { * @return {@code true} if and only if the first type is a subtype * of the second * @throws IllegalArgumentException if given an executable or package type - * @jls3 4.10 Subtyping + * @jls 4.10 Subtyping */ boolean isSubtype(TypeMirror t1, TypeMirror t2); @@ -93,7 +93,7 @@ public interface Types { * @return {@code true} if and only if the first type is assignable * to the second * @throws IllegalArgumentException if given an executable or package type - * @jls3 5.2 Assignment Conversion + * @jls 5.2 Assignment Conversion */ boolean isAssignable(TypeMirror t1, TypeMirror t2); @@ -104,7 +104,7 @@ public interface Types { * @param t2 the second type * @return {@code true} if and only if the first type contains the second * @throws IllegalArgumentException if given an executable or package type - * @jls3 4.5.1.1 Type Argument Containment and Equivalence + * @jls 4.5.1.1 Type Argument Containment and Equivalence */ boolean contains(TypeMirror t1, TypeMirror t2); @@ -116,7 +116,7 @@ public interface Types { * @param m2 the second method * @return {@code true} if and only if the first signature is a * subsignature of the second - * @jls3 8.4.2 Method Signature + * @jls 8.4.2 Method Signature */ boolean isSubsignature(ExecutableType m1, ExecutableType m2); @@ -136,7 +136,7 @@ public interface Types { * @param t the type to be erased * @return the erasure of the given type * @throws IllegalArgumentException if given a package type - * @jls3 4.6 Type Erasure + * @jls 4.6 Type Erasure */ TypeMirror erasure(TypeMirror t); @@ -146,7 +146,7 @@ public interface Types { * * @param p the primitive type to be converted * @return the class of a boxed value of type {@code p} - * @jls3 5.1.7 Boxing Conversion + * @jls 5.1.7 Boxing Conversion */ TypeElement boxedClass(PrimitiveType p); @@ -158,7 +158,7 @@ public interface Types { * @return the type of an unboxed value of type {@code t} * @throws IllegalArgumentException if the given type has no * unboxing conversion - * @jls3 5.1.8 Unboxing Conversion + * @jls 5.1.8 Unboxing Conversion */ PrimitiveType unboxedType(TypeMirror t); @@ -168,7 +168,7 @@ public interface Types { * @param t the type to be converted * @return the result of applying capture conversion * @throws IllegalArgumentException if given an executable or package type - * @jls3 5.1.10 Capture Conversion + * @jls 5.1.10 Capture Conversion */ TypeMirror capture(TypeMirror t); diff --git a/langtools/src/share/classes/javax/tools/JavaCompiler.java b/langtools/src/share/classes/javax/tools/JavaCompiler.java index 7bc019a6413..8d0dcf92f52 100644 --- a/langtools/src/share/classes/javax/tools/JavaCompiler.java +++ b/langtools/src/share/classes/javax/tools/JavaCompiler.java @@ -58,9 +58,11 @@ import javax.annotation.processing.Processor; * standard file manager such as the one returned by {@linkplain * #getStandardFileManager getStandardFileManager}. * - *

An instance implementing this interface must conform to the Java - * Language Specification and generate class files conforming to the - * Java Virtual Machine specification. The versions of these + *

An instance implementing this interface must conform to + * The Java™ Language Specification + * and generate class files conforming to + * The Java™ Virtual Machine Specification. + * The versions of these * specifications are defined in the {@linkplain Tool} interface. * * Additionally, an instance of this interface supporting {@link diff --git a/langtools/src/share/classes/javax/tools/JavaFileManager.java b/langtools/src/share/classes/javax/tools/JavaFileManager.java index f289d095541..d519a5c9619 100644 --- a/langtools/src/share/classes/javax/tools/JavaFileManager.java +++ b/langtools/src/share/classes/javax/tools/JavaFileManager.java @@ -49,17 +49,16 @@ import static javax.tools.JavaFileObject.Kind; * names must be given in the Java Virtual Machine internal form of * fully qualified class and interface names. For convenience '.' * and '/' are interchangeable. The internal form is defined in - * chapter four of the - * Java - * Virtual Machine Specification. + * chapter four of + * The Java™ Virtual Machine Specification. *

* Discussion: this means that the names * "java/lang.package-info", "java/lang/package-info", * "java.lang.package-info", are valid and equivalent. Compare to - * binary name as defined in the - * Java Language - * Specification (JLS) section 13.1 "The Form of a Binary". + * binary name as defined in + * The Java™ Language Specification, + * section 13.1 "The Form of a Binary". *

* *

The case of names is significant. All names should be treated @@ -173,7 +172,8 @@ public interface JavaFileManager extends Closeable, Flushable, OptionChecker { /** * Infers a binary name of a file object based on a location. The - * binary name returned might not be a valid JLS binary name. + * binary name returned might not be a valid binary name according to + * The Java™ Language Specification. * * @param location a location * @param file a file object diff --git a/langtools/src/share/classes/javax/tools/JavaFileObject.java b/langtools/src/share/classes/javax/tools/JavaFileObject.java index 21d0d075a94..9e84b3c5a06 100644 --- a/langtools/src/share/classes/javax/tools/JavaFileObject.java +++ b/langtools/src/share/classes/javax/tools/JavaFileObject.java @@ -99,9 +99,9 @@ public interface JavaFileObject extends FileObject { /** * Checks if this file object is compatible with the specified * simple name and kind. A simple name is a single identifier - * (not qualified) as defined in the Java Language - * Specification 3rd ed., section 6.2 "Names and Identifiers". + * (not qualified) as defined in + * The Java™ Language Specification, + * section 6.2 "Names and Identifiers". * * @param simpleName a simple name of a class * @param kind a kind diff --git a/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java b/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java index 280acfdcf0c..dc224f01d94 100644 --- a/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java +++ b/langtools/src/share/sample/javac/processing/src/CheckNamesProcessor.java @@ -152,7 +152,8 @@ public class CheckNamesProcessor extends AbstractProcessor { * Provide checks that an element and its enclosed elements follow * the usual naming conventions. * - *

Conventions from JLSv3 section 6.8: + *

Conventions from section 6.8 of + * The Java™ Language Specification * *

    *
  • Classes and interfaces: camel case, first letter is uppercase @@ -163,7 +164,8 @@ public class CheckNamesProcessor extends AbstractProcessor { *
  • non-final: camel case, initial lowercase *
  • constant: uppercase separated by underscores *
- *
  • Packages: checks left as exercise for the reader, see JLSv3 section 7.7 + *
  • Packages: checks left as exercise for the reader, see section 7.7 of + * The Java™ Language Specification. * */ private static class NameChecker { @@ -286,7 +288,7 @@ public class CheckNamesProcessor extends AbstractProcessor { public Void visitPackage(PackageElement e, Void p) { /* * Implementing the checks of package names is left - * as an exercise for the reader, see JLSv3 section + * as an exercise for the reader, see JLS section * 7.7 for conventions. */ diff --git a/langtools/test/tools/javac/generics/7034019/T7034019a.java b/langtools/test/tools/javac/generics/7034019/T7034019a.java new file mode 100644 index 00000000000..f1c5bb57dd3 --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019a.java @@ -0,0 +1,46 @@ +/* + * 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 7034019 + * @summary ClassCastException in javac with conjunction types + * + * @compile T7034019a.java + */ + +class T7034019a { + interface A { + abstract void foo(); + } + + interface B { + abstract void foo(); + } + + static class C { + void test(T x) { + x.foo(); + } + } +} diff --git a/langtools/test/tools/javac/generics/7034019/T7034019b.java b/langtools/test/tools/javac/generics/7034019/T7034019b.java new file mode 100644 index 00000000000..5d3d1400bd2 --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019b.java @@ -0,0 +1,46 @@ +/* + * 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 7034019 + * @summary ClassCastException in javac with conjunction types + * + * @compile T7034019b.java + */ + +class T7034019a { + interface A { + void foo(); + } + + interface B { + void foo(); + } + + static abstract class E implements A,B { + void test() { + foo(); + } + } +} diff --git a/langtools/test/tools/javac/generics/7034019/T7034019c.java b/langtools/test/tools/javac/generics/7034019/T7034019c.java new file mode 100644 index 00000000000..c9fc6a1628b --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019c.java @@ -0,0 +1,23 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7034019 + * @summary ClassCastException in javac with conjunction types + * + * @compile/fail/ref=T7034019c.out -XDrawDiagnostics T7034019c.java + */ + +class T7034019c { + interface A { + abstract T foo(); + } + + interface B { + abstract T foo(); + } + + static class C { + void test(T x) { + x.foo(); + } + } +} diff --git a/langtools/test/tools/javac/generics/7034019/T7034019c.out b/langtools/test/tools/javac/generics/7034019/T7034019c.out new file mode 100644 index 00000000000..55845589a91 --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019c.out @@ -0,0 +1,3 @@ +T7034019c.java:18:20: compiler.err.name.clash.same.erasure.no.override: foo(), T7034019c.B, foo(), T7034019c.A +T7034019c.java:20:14: compiler.err.ref.ambiguous: foo, kindname.method, foo(), T7034019c.B, kindname.method, foo(), T7034019c.A +2 errors diff --git a/langtools/test/tools/javac/generics/7034019/T7034019d.java b/langtools/test/tools/javac/generics/7034019/T7034019d.java new file mode 100644 index 00000000000..63a1654301b --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019d.java @@ -0,0 +1,23 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7034019 + * @summary ClassCastException in javac with conjunction types + * + * @compile/fail/ref=T7034019d.out -XDrawDiagnostics T7034019d.java + */ + +class T7034019c { + interface A { + abstract T foo(); + } + + interface B { + abstract T foo(); + } + + static abstract class E implements A,B { + void test() { + foo(); + } + } +} diff --git a/langtools/test/tools/javac/generics/7034019/T7034019d.out b/langtools/test/tools/javac/generics/7034019/T7034019d.out new file mode 100644 index 00000000000..bfd6fa0b4fa --- /dev/null +++ b/langtools/test/tools/javac/generics/7034019/T7034019d.out @@ -0,0 +1,3 @@ +T7034019d.java:18:21: compiler.err.name.clash.same.erasure.no.override: foo(), T7034019c.B, foo(), T7034019c.A +T7034019d.java:20:13: compiler.err.ref.ambiguous: foo, kindname.method, foo(), T7034019c.B, kindname.method, foo(), T7034019c.A +2 errors diff --git a/langtools/test/tools/javac/generics/7034511/T7034511a.java b/langtools/test/tools/javac/generics/7034511/T7034511a.java new file mode 100644 index 00000000000..522b52efb33 --- /dev/null +++ b/langtools/test/tools/javac/generics/7034511/T7034511a.java @@ -0,0 +1,21 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7034511 + * @summary Loophole in typesafety + * @compile/fail/ref=T7034511a.out -XDrawDiagnostics T7034511a.java + */ + +class T7034511a { + + interface A { + void foo(T x); + } + + interface B extends A { } + + static abstract class C implements B { + > void test(T x, String[] ss) { + x.foo(ss); + } + } +} diff --git a/langtools/test/tools/javac/generics/7034511/T7034511a.out b/langtools/test/tools/javac/generics/7034511/T7034511a.out new file mode 100644 index 00000000000..8636950aa7d --- /dev/null +++ b/langtools/test/tools/javac/generics/7034511/T7034511a.out @@ -0,0 +1,2 @@ +T7034511a.java:18:14: compiler.err.cant.apply.symbol.1: kindname.method, foo, compiler.misc.type.captureof: 1, ?[], java.lang.String[], kindname.interface, T7034511a.A, (compiler.misc.no.conforming.assignment.exists: java.lang.String[], compiler.misc.type.captureof: 1, ?[]) +1 error diff --git a/langtools/test/tools/javac/generics/7034511/T7034511b.java b/langtools/test/tools/javac/generics/7034511/T7034511b.java new file mode 100644 index 00000000000..49f47d47c2d --- /dev/null +++ b/langtools/test/tools/javac/generics/7034511/T7034511b.java @@ -0,0 +1,16 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7034511 + * @summary Loophole in typesafety + * @compile/fail/ref=T7034511b.out -XDrawDiagnostics T7034511b.java + */ + +class T7034511b { + static class MyList { + E toArray(E[] e) { return null; } + } + + void test(MyList ml, Object o[]) { + ml.toArray(o); + } +} diff --git a/langtools/test/tools/javac/generics/7034511/T7034511b.out b/langtools/test/tools/javac/generics/7034511/T7034511b.out new file mode 100644 index 00000000000..5d3da3f4c03 --- /dev/null +++ b/langtools/test/tools/javac/generics/7034511/T7034511b.out @@ -0,0 +1,2 @@ +T7034511b.java:14:11: compiler.err.cant.apply.symbol.1: kindname.method, toArray, compiler.misc.type.captureof: 1, ?[], java.lang.Object[], kindname.class, T7034511b.MyList, (compiler.misc.no.conforming.assignment.exists: java.lang.Object[], compiler.misc.type.captureof: 1, ?[]) +1 error