From 52bf12aead9bf0293f952a02f45d2bd0e93ff360 Mon Sep 17 00:00:00 2001 From: Dmitry Samersoff Date: Wed, 30 Mar 2011 19:38:07 +0400 Subject: [PATCH 001/144] 7017193: Small memory leak in get_stack_bounds os::create_stack_guard_pages Getline() returns -1 but still allocate memory for str Reviewed-by: dcubed, coleenp --- hotspot/src/os/linux/vm/os_linux.cpp | 62 +++++++++++++--------------- hotspot/src/share/vm/runtime/os.cpp | 38 +++++++++++++++++ hotspot/src/share/vm/runtime/os.hpp | 4 ++ 3 files changed, 70 insertions(+), 34 deletions(-) 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/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" From df96662d1ac5aa10d6dae04cd24837ca8a6fa16a Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Thu, 31 Mar 2011 06:54:30 -0400 Subject: [PATCH 002/144] 7032775: Include Shark code in the build again Co-authored-by: Andrew Hughes Reviewed-by: ohair --- hotspot/make/linux/makefiles/vm.make | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make index d564055c539..cde41b5ca80 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_\* From cf3120dddc9728fabfa00d1e1ec8365ec07be04a Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 1 Apr 2011 15:15:37 -0700 Subject: [PATCH 003/144] 7010849: 5/5 Extraneous javac source/target options when building sa-jdi Make code changes necessary to get rid of the '-source 1.4 -target 1.4' options. Reviewed-by: dholmes, dcubed --- .../src/share/classes/sun/jvm/hotspot/HelloWorld.java | 4 ++-- .../share/classes/sun/jvm/hotspot/jdi/ByteValueImpl.java | 8 +++----- .../share/classes/sun/jvm/hotspot/jdi/CharValueImpl.java | 7 +++---- .../share/classes/sun/jvm/hotspot/jdi/ConnectorImpl.java | 4 ++-- .../classes/sun/jvm/hotspot/jdi/DoubleValueImpl.java | 6 +++--- .../src/share/classes/sun/jvm/hotspot/jdi/FieldImpl.java | 3 +-- .../classes/sun/jvm/hotspot/jdi/FloatValueImpl.java | 6 +++--- .../classes/sun/jvm/hotspot/jdi/IntegerValueImpl.java | 7 +++---- .../classes/sun/jvm/hotspot/jdi/LocalVariableImpl.java | 6 +++--- .../share/classes/sun/jvm/hotspot/jdi/LocationImpl.java | 5 ++--- .../share/classes/sun/jvm/hotspot/jdi/LongValueImpl.java | 6 +++--- .../share/classes/sun/jvm/hotspot/jdi/MethodImpl.java | 5 ++--- .../classes/sun/jvm/hotspot/jdi/ReferenceTypeImpl.java | 6 +++--- .../classes/sun/jvm/hotspot/jdi/ShortValueImpl.java | 7 +++---- .../classes/sun/jvm/hotspot/jdi/VirtualMachineImpl.java | 9 ++++----- hotspot/make/linux/makefiles/sa.make | 6 +++--- hotspot/make/solaris/makefiles/sa.make | 6 +++--- hotspot/make/windows/makefiles/sa.make | 8 ++++---- 18 files changed, 50 insertions(+), 59 deletions(-) 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/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/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 From 727612ede91b7b3712301ae275ec4affd96cc610 Mon Sep 17 00:00:00 2001 From: Keith McGuigan Date: Thu, 31 Mar 2011 08:08:50 -0400 Subject: [PATCH 004/144] 7030388: JCK test failed to reject invalid class check01304m10n Restrict fix for 7020118 to only when checking exception handlers Reviewed-by: dcubed, dholmes --- hotspot/src/share/vm/classfile/stackMapFrame.cpp | 8 +++++--- hotspot/src/share/vm/classfile/stackMapFrame.hpp | 3 ++- hotspot/src/share/vm/classfile/stackMapTable.cpp | 5 ++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/hotspot/src/share/vm/classfile/stackMapFrame.cpp b/hotspot/src/share/vm/classfile/stackMapFrame.cpp index 38fe483fb96..864c2257fc8 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 a07df0ce56f..a6d6a2938b9 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 f6a0b427386..97bf564f192 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 From 3ad32dbe575e4b548bed066fdd03e5fedb136a85 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 31 Mar 2011 21:05:55 -0700 Subject: [PATCH 005/144] 6385687: UseFastEmptyMethods/UseFastAccessorMethods considered harmful Reviewed-by: kvn, jrose, phh --- hotspot/src/share/vm/prims/jvmtiManageCapabilities.cpp | 7 +++++-- hotspot/src/share/vm/runtime/globals.hpp | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) 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/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 020a1673ea6..f9c4d322e2b 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -2726,10 +2726,10 @@ class CommandLineFlags { product(bool, UseLoopCounter, true, \ "Increment invocation counter on backward branch") \ \ - product(bool, UseFastEmptyMethods, true, \ + product(bool, UseFastEmptyMethods, false, \ "Use fast method entry code for empty methods") \ \ - product(bool, UseFastAccessorMethods, true, \ + product(bool, UseFastAccessorMethods, false, \ "Use fast method entry code for accessor methods") \ \ product_pd(bool, UseOnStackReplacement, \ From 5cd8d5c115d64b41442f79d9410ebbb77750e77f Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 1 Apr 2011 21:45:33 -0700 Subject: [PATCH 006/144] 6909440: C2 fails with assertion (_always_cold->is_cold(),"must always be cold") Reviewed-by: kvn --- hotspot/src/share/vm/opto/callGenerator.cpp | 28 ++++++--------------- hotspot/src/share/vm/opto/callGenerator.hpp | 16 ++++++++++-- 2 files changed, 22 insertions(+), 22 deletions(-) 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 From 68f1177f594fe50237b6700267b5400a4e41eef2 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Sat, 2 Apr 2011 09:49:27 -0700 Subject: [PATCH 007/144] 7032314: Allow to generate CallLeafNoFPNode in IdealKit Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization. Reviewed-by: never --- hotspot/src/share/vm/opto/graphKit.cpp | 21 ++-- hotspot/src/share/vm/opto/graphKit.hpp | 2 + hotspot/src/share/vm/opto/idealKit.cpp | 106 +++++++++++++++++---- hotspot/src/share/vm/opto/idealKit.hpp | 20 +++- hotspot/src/share/vm/opto/library_call.cpp | 14 ++- 5 files changed, 129 insertions(+), 34 deletions(-) diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp index b20513e67c1..4fef2641d40 100644 --- a/hotspot/src/share/vm/opto/graphKit.cpp +++ b/hotspot/src/share/vm/opto/graphKit.cpp @@ -3385,10 +3385,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 +3440,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,7 +3466,7 @@ void GraphKit::write_barrier_post(Node* oop_store, } // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); } // G1 pre/post barriers @@ -3471,7 +3476,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj, Node* val, const TypeOopPtr* val_type, BasicType bt) { - IdealKit ideal(gvn(), control(), merged_memory(), true); + IdealKit ideal(this, true); Node* tls = __ thread(); // ThreadLocalStorage @@ -3548,7 +3553,7 @@ void GraphKit::g1_write_barrier_pre(Node* obj, } __ end_if(); // (!marking) // Final sync IdealKit and GraphKit. - sync_kit(ideal); + final_sync(ideal); } // @@ -3614,7 +3619,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 +3693,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 2f7a7d5ab05..0c053f47346 100644 --- a/hotspot/src/share/vm/opto/graphKit.hpp +++ b/hotspot/src/share/vm/opto/graphKit.hpp @@ -662,7 +662,9 @@ 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, diff --git a/hotspot/src/share/vm/opto/idealKit.cpp b/hotspot/src/share/vm/opto/idealKit.cpp index bc7aaaa6a9a..35c4fffba0c 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 8192a446288..100263a1e56 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/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index be8136bf598..5977ccd13e5 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -1120,7 +1120,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 +1171,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); @@ -2318,22 +2318,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 __ } } From 00eca5e982e246a9a926da3aa781c7a10fbfc591 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Sat, 2 Apr 2011 10:54:15 -0700 Subject: [PATCH 008/144] 7004535: Clone loop predicate during loop unswitch Clone loop predicate for clonned loops Reviewed-by: never --- hotspot/src/share/vm/opto/cfgnode.cpp | 18 +- hotspot/src/share/vm/opto/compile.cpp | 17 +- hotspot/src/share/vm/opto/compile.hpp | 3 + hotspot/src/share/vm/opto/ifnode.cpp | 32 +- hotspot/src/share/vm/opto/loopPredicate.cpp | 960 ++++++++++++++++++++ hotspot/src/share/vm/opto/loopTransform.cpp | 824 ++++------------- hotspot/src/share/vm/opto/loopUnswitch.cpp | 32 +- hotspot/src/share/vm/opto/loopnode.cpp | 52 +- hotspot/src/share/vm/opto/loopnode.hpp | 31 +- hotspot/src/share/vm/opto/loopopts.cpp | 27 +- hotspot/src/share/vm/opto/phaseX.hpp | 7 + hotspot/src/share/vm/opto/split_if.cpp | 3 + hotspot/src/share/vm/opto/superword.cpp | 7 + hotspot/src/share/vm/opto/vectornode.hpp | 1 + 14 files changed, 1298 insertions(+), 716 deletions(-) create mode 100644 hotspot/src/share/vm/opto/loopPredicate.cpp 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..e6084be0e0c 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -1632,7 +1632,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 +1688,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 +1696,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 +1704,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 +1742,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; - } } } 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/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/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 4c49ee0e634..40ac8194a67 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -301,6 +301,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 +441,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 +457,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 +469,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 +488,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 +501,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)); } @@ -1659,7 +1789,7 @@ bool IdealLoopTree::policy_do_remove_empty_loop( PhaseIdealLoop *phase ) { bool needs_guard = !cl->is_main_loop() && !cl->is_post_loop(); 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); @@ -1861,651 +1991,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() { @@ -2762,6 +2249,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 fa8e58a44c8..0edd7454b79 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..ef0314eec99 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,9 +1441,9 @@ 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"); } } @@ -1541,7 +1549,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 +1581,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 +1713,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 +1766,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 +1809,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..bff527e86e0 100644 --- a/hotspot/src/share/vm/opto/loopnode.hpp +++ b/hotspot/src/share/vm/opto/loopnode.hpp @@ -706,11 +706,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 +721,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 +737,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 +830,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 ae62e609f3f..5a7cfa3c8f4 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/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 From f94d7776ca0ada43cc2c549d8078e12157222dcb Mon Sep 17 00:00:00 2001 From: Roland Westrelin Date: Sun, 3 Apr 2011 12:00:54 +0200 Subject: [PATCH 009/144] 7033154: Improve C1 arraycopy performance Better static analysis. Take advantage of array copy stubs. Reviewed-by: never --- .../cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 206 +++++++++++--- .../src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 261 ++++++++++++++++-- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 4 +- hotspot/src/share/vm/c1/c1_Instruction.cpp | 39 ++- hotspot/src/share/vm/c1/c1_Instruction.hpp | 31 ++- hotspot/src/share/vm/c1/c1_LIR.hpp | 6 +- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 113 +++++++- hotspot/src/share/vm/c1/c1_Optimizer.cpp | 8 +- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 39 ++- hotspot/src/share/vm/c1/c1_Runtime1.hpp | 6 +- hotspot/src/share/vm/opto/library_call.cpp | 77 +----- hotspot/src/share/vm/runtime/stubRoutines.cpp | 74 +++++ hotspot/src/share/vm/runtime/stubRoutines.hpp | 2 + 13 files changed, 720 insertions(+), 146 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 89ec0ef20fc..e0451386878 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -2065,20 +2065,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 +2151,143 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ delayed()->nop(); } +#ifndef _LP64 + __ sra(dst_pos, 0, dst_pos); //higher 32bits must be null + __ sra(src_pos, 0, src_pos); //higher 32bits must be null +#endif + + 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); + } + LP64_ONLY( __ sra(length, 0, length)); //higher 32bits must be null + __ 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 +2346,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 +2366,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 +2373,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/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 7ee3391263b..bcec4d4d742 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -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/share/vm/c1/c1_GraphBuilder.cpp b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp index e956b6bb4be..9bac474f5b9 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(); } diff --git a/hotspot/src/share/vm/c1/c1_Instruction.cpp b/hotspot/src/share/vm/c1/c1_Instruction.cpp index 7f578cb054f..a5ee2b56481 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 { 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_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index ae3773bcc29..2dd5a97f1e8 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) { 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/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index 5977ccd13e5..0f73e144d17 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -4292,81 +4292,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, @@ -4399,7 +4324,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); } 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; } From 80dfa0e3427dd6b3f27291c372697b4a08e99d6b Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Mon, 4 Apr 2011 03:02:00 -0700 Subject: [PATCH 010/144] 7032458: Zero and Shark fixes Reviewed-by: twisti --- hotspot/src/cpu/zero/vm/globals_zero.hpp | 4 +++- hotspot/src/cpu/zero/vm/relocInfo_zero.cpp | 4 ++-- hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp | 14 ++++++++------ hotspot/src/share/vm/ci/ciTypeFlow.hpp | 1 + hotspot/src/share/vm/compiler/compileBroker.cpp | 6 +++--- .../share/vm/interpreter/bytecodeInterpreter.cpp | 2 +- hotspot/src/share/vm/shark/sharkCompiler.cpp | 4 +++- hotspot/src/share/vm/shark/sharkCompiler.hpp | 6 ++++-- .../src/share/vm/utilities/globalDefinitions.hpp | 6 +++--- .../share/vm/utilities/globalDefinitions_gcc.hpp | 2 ++ 10 files changed, 30 insertions(+), 19 deletions(-) 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/relocInfo_zero.cpp b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp index e04acad8fd0..13f095e4746 100644 --- a/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp +++ b/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2009 Red Hat, Inc. + * Copyright 2007, 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 @@ -31,7 +31,7 @@ #include "oops/oop.inline.hpp" #include "runtime/safepoint.hpp" -void Relocation::pd_set_data_value(address x, intptr_t o) { +void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) { ShouldNotCallThis(); } diff --git a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp b/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp index b88c5e810f6..6e7643ae59b 100644 --- a/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp +++ b/hotspot/src/cpu/zero/vm/sharedRuntime_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 @@ -78,15 +78,17 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters( nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm, methodHandle method, - int total_in_args, - int comp_args_on_stack, - BasicType *in_sig_bt, - VMRegPair *in_regs, + int compile_id, + int total_args_passed, + int max_arg, + BasicType *sig_bt, + VMRegPair *regs, BasicType ret_type) { #ifdef SHARK return SharkCompiler::compiler()->generate_native_wrapper(masm, method, - in_sig_bt, + compile_id, + sig_bt, ret_type); #else ShouldNotCallThis(); 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/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp index 50683647638..47def8af8f9 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. diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp index 9428ab967b9..2826809f5b0 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp @@ -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_default, &&opc_default, &&opc_return_register_finalizer, /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, 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/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 cc244b4a78d..13bc29937d6 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 From 774ac503d06ef555f12f52819bc53fb8dab11576 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Mon, 4 Apr 2011 12:57:04 -0700 Subject: [PATCH 011/144] 7026957: assert(type2aelembytes(store->as_Mem()->memory_type(), true) == 1 << shift->in(2)->get_int()) failed Reviewed-by: kvn, jrose --- hotspot/src/share/vm/opto/loopTransform.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 40ac8194a67..1f3809705e2 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -2112,9 +2112,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()) { From 953a87d003d2a4a21cbcb8032afb41fc13330103 Mon Sep 17 00:00:00 2001 From: David Holmes Date: Mon, 4 Apr 2011 18:15:55 -0400 Subject: [PATCH 012/144] 7009276: Add -XX:+IgnoreUnrecognizedVMOptions to several tests Reviewed-by: kvn --- hotspot/test/compiler/6795161/Test.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 { From 1875cfefc6e24370fc92d1b96d62de083bf01a01 Mon Sep 17 00:00:00 2001 From: Igor Veresov Date: Mon, 4 Apr 2011 16:00:34 -0700 Subject: [PATCH 013/144] 7033732: C1: When calling c2 arraycopy stubs offsets and length must have clear upper 32bits With 7033154 we started calling c2 arraycopy stubs from c1. On sparcv9 we must clear the upper 32bits for offset (src_pos, dst_pos) and length parameters when calling them. Reviewed-by: never, kvn --- hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index e0451386878..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(); @@ -2151,11 +2158,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ delayed()->nop(); } -#ifndef _LP64 - __ sra(dst_pos, 0, dst_pos); //higher 32bits must be null - __ sra(src_pos, 0, src_pos); //higher 32bits must be null -#endif - int shift = shift_amount(basic_type); if (flags & LIR_OpArrayCopy::type_check) { @@ -2243,7 +2245,6 @@ void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { __ sll(dst_pos, shift, tmp); __ add(dst_ptr, tmp, dst_ptr); } - LP64_ONLY( __ sra(length, 0, length)); //higher 32bits must be null __ mov(length, len); __ load_klass(dst, tmp); From 3151573d3935d519d7a9138fd00fbe3d9147bd07 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Mon, 4 Apr 2011 19:02:36 -0700 Subject: [PATCH 014/144] 7004547: regular loop unroll should not unroll more than max unrolling Take into account that after unroll conjoined heads and tails will fold. Reviewed-by: never --- hotspot/src/share/vm/opto/loopTransform.cpp | 82 +++++++++++++-------- 1 file changed, 51 insertions(+), 31 deletions(-) diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 1f3809705e2..4662646a19a 100644 --- a/hotspot/src/share/vm/opto/loopTransform.cpp +++ b/hotspot/src/share/vm/opto/loopTransform.cpp @@ -522,34 +522,40 @@ 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()) { + limit_n == NULL || !limit_n->is_Con()) { return false; } - int init = init_n->get_int(); - int limit = limit_n->get_int(); - int span = limit - init; - int stride = cl->stride_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_cnt = (limit_con - init_con + stride_m)/stride_con; - if (init >= limit || stride > span) { + // Note, max_jint is used to indicate unknown trip count. + if (trip_cnt <= 0 || trip_cnt >= (long)max_jint) { // 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 = (uint)trip_cnt; + cl->set_trip_count(trip_count); // Real policy: if we maximally unroll, does it get too big? // Allow the unrolled mess to get larger than standard loop @@ -557,15 +563,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. @@ -582,17 +602,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 } @@ -604,12 +614,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 @@ -690,9 +703,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; } @@ -1086,7 +1096,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() < 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 @@ -1761,7 +1775,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()) @@ -1887,6 +1901,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 From 3327aeff0c3561b5beb61d933646809339a666eb Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Mon, 4 Apr 2011 19:03:35 -0700 Subject: [PATCH 015/144] 6528013: C1 CTW failure with -XX:+VerifyOops assert(allocates2(pc),"") Reviewed-by: kvn, iveresov --- hotspot/src/share/vm/c1/c1_LIRAssembler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp b/hotspot/src/share/vm/c1/c1_LIRAssembler.cpp index 510bf2f92a5..08e8fa98b64 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; From 1a5a2ecd25fcdc0e8d2b2463ddd814a8f33bde6c Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Tue, 5 Apr 2011 00:31:09 -0700 Subject: [PATCH 016/144] 6777083: assert(target != __null,"must not be null") Reviewed-by: iveresov, kvn --- hotspot/src/cpu/x86/vm/assembler_x86.hpp | 12 ++++++++++-- hotspot/src/share/vm/code/relocInfo.cpp | 18 ++++++------------ hotspot/src/share/vm/code/relocInfo.hpp | 10 ++++++++++ 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp index 6ef01cbb409..2457f18bd0d 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)) {} }; diff --git a/hotspot/src/share/vm/code/relocInfo.cpp b/hotspot/src/share/vm/code/relocInfo.cpp index 0264f20607f..7015dbc87c4 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 7dc11fee084..013a4e61c10 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 From 15113a03ad68289337eab40960779050d649a733 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Tue, 5 Apr 2011 16:50:11 +0400 Subject: [PATCH 017/144] 6998877: After double-click on the folder names , FileNameOverrideTest FAILED Reviewed-by: art, dcherepanov, anthony --- .../solaris/native/sun/awt/gtk2_interface.c | 2 + .../solaris/native/sun/awt/gtk2_interface.h | 2 + .../sun/awt/sun_awt_X11_GtkFileDialogPeer.c | 9 ++- .../FileNameOverrideTest.html | 22 ++++++ .../FileNameOverrideTest.java | 73 +++++++++++++++++++ .../SaveFileNameOverrideTest.html | 22 ++++++ .../SaveFileNameOverrideTest.java | 65 +++++++++++++++++ 7 files changed, 193 insertions(+), 2 deletions(-) create mode 100644 jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.html create mode 100644 jdk/test/java/awt/FileDialog/FileNameOverrideTest/FileNameOverrideTest.java create mode 100644 jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.html create mode 100644 jdk/test/java/awt/FileDialog/SaveFileNameOverrideTest/SaveFileNameOverrideTest.java diff --git a/jdk/src/solaris/native/sun/awt/gtk2_interface.c b/jdk/src/solaris/native/sun/awt/gtk2_interface.c index 291edc3fb7e..7e5c3765e7d 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 addbc99d61c..15f50c649b7 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 #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/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 @@ + + + + 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 From a0e0abb54cec477decc725d199a8a1e4b95e89d2 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Tue, 5 Apr 2011 09:42:47 -0700 Subject: [PATCH 018/144] 6983666: Typo in JavaDoc comments within FileCacheImageOutputStream Reviewed-by: jgodinez --- .../javax/imageio/stream/FileCacheImageOutputStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 FileCacheImageOututStream. All + * Closes this FileCacheImageOutputStream. All * pending data is flushed to the output, and the cache file * is closed and removed. The destination OutputStream * is not closed. From aac4647e6eb7c04d34e7d8fbdab08efa8ba079a4 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Tue, 5 Apr 2011 19:14:03 -0700 Subject: [PATCH 019/144] 7032963: StoreCM shouldn't participate in store elimination Reviewed-by: kvn --- hotspot/src/share/vm/opto/compile.cpp | 58 ++++++++++++++++++++++++++- hotspot/src/share/vm/opto/lcm.cpp | 22 +++++----- hotspot/src/share/vm/opto/memnode.cpp | 9 +++-- hotspot/src/share/vm/opto/output.cpp | 21 ++++++---- 4 files changed, 88 insertions(+), 22 deletions(-) diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index c9e04bb7a3e..96f30425109 100644 --- a/hotspot/src/share/vm/opto/compile.cpp +++ b/hotspot/src/share/vm/opto/compile.cpp @@ -2050,6 +2050,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 +2222,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/lcm.cpp b/hotspot/src/share/vm/opto/lcm.cpp index 3d84f6baf76..829bab9cbd1 100644 --- a/hotspot/src/share/vm/opto/lcm.cpp +++ b/hotspot/src/share/vm/opto/lcm.cpp @@ -685,20 +685,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/memnode.cpp b/hotspot/src/share/vm/opto/memnode.cpp index b9ff98ff76d..786cec00573 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 a57508b418e..97d76fdd826 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 From 4f41ea7fffffc09f8f66e17100fcf79b03c7fc41 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Tue, 5 Apr 2011 19:16:52 -0700 Subject: [PATCH 020/144] 7033779: CodeCache::largest_free_block may need to hold the CodeCache lock Reviewed-by: kvn --- hotspot/src/share/vm/code/codeCache.cpp | 11 +++++++++++ hotspot/src/share/vm/code/codeCache.hpp | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) 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 42ea1b68940..5c814bb9224 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; } From 67acc17b0c7a3af5b89289f2194a50921440d181 Mon Sep 17 00:00:00 2001 From: Andrew Brygin Date: Wed, 6 Apr 2011 11:26:35 +0400 Subject: [PATCH 021/144] 7033534: Two tests fail just against jdk7 b136 Reviewed-by: jgodinez, prr --- jdk/test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java | 2 +- jdk/test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 */ From 58ceadaf02f8a0d857615f0f15188e93280ebd08 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Wed, 6 Apr 2011 17:13:08 +0400 Subject: [PATCH 022/144] 7002839: Static initialization deadlock between sun.awt.Win32GraphicsEnvironment and sun.awt.windows.WToolkit Reviewed-by: art, dcherepanov, denis --- .../sun/awt/Win32GraphicsEnvironment.java | 6 --- .../classes/sun/awt/windows/WToolkit.java | 3 -- .../LoadLock/GE_init1.java | 37 +++++++++++++++ .../LoadLock/GE_init2.java | 38 ++++++++++++++++ .../LoadLock/GE_init3.java | 38 ++++++++++++++++ .../LoadLock/GE_init4.java | 37 +++++++++++++++ .../LoadLock/GE_init5.java | 37 +++++++++++++++ .../LoadLock/GE_init6.java | 45 +++++++++++++++++++ 8 files changed, 232 insertions(+), 9 deletions(-) create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init1.java create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init2.java create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init3.java create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init4.java create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init5.java create mode 100644 jdk/test/java/awt/GraphicsEnvironment/LoadLock/GE_init6.java diff --git a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java index f3088fcbca3..50e7640663f 100644 --- a/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java +++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsEnvironment.java @@ -75,12 +75,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 7a18683e659..82318cd3b97 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/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."); + } + } +} From 7f998c2049c0a92c9e8f950249c1ecba2c8e159a Mon Sep 17 00:00:00 2001 From: Neil Richards Date: Wed, 6 Apr 2011 09:31:13 -0700 Subject: [PATCH 023/144] 6312706: Map entrySet iterators should return different entries on each call to next() Reviewed-by: mduigou, alanb --- jdk/src/share/classes/java/util/EnumMap.java | 176 ++++++++++++------ .../classes/java/util/IdentityHashMap.java | 111 ++++++----- .../EnumMap/DistinctEntrySetElements.java | 60 ++++++ ...ntrySetIteratorRemoveInvalidatesEntry.java | 60 ++++++ .../util/EnumMap/SimpleSerialization.java | 89 +++++++++ .../DistinctEntrySetElements.java | 61 ++++++ ...ntrySetIteratorRemoveInvalidatesEntry.java | 59 ++++++ .../DistinctEntrySetElements.java | 59 ++++++ 8 files changed, 568 insertions(+), 107 deletions(-) create mode 100644 jdk/test/java/util/EnumMap/DistinctEntrySetElements.java create mode 100644 jdk/test/java/util/EnumMap/EntrySetIteratorRemoveInvalidatesEntry.java create mode 100644 jdk/test/java/util/EnumMap/SimpleSerialization.java create mode 100644 jdk/test/java/util/IdentityHashMap/DistinctEntrySetElements.java create mode 100644 jdk/test/java/util/IdentityHashMap/EntrySetIteratorRemoveInvalidatesEntry.java create mode 100644 jdk/test/java/util/concurrent/ConcurrentHashMap/DistinctEntrySetElements.java diff --git a/jdk/src/share/classes/java/util/EnumMap.java b/jdk/src/share/classes/java/util/EnumMap.java index e48b486ec3a..49ecfa2f53a 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, V> extends AbstractMap /** * 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, V> extends AbstractMap 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, V> extends AbstractMap public Iterator> iterator() { return new EntryIterator(); } + public boolean contains(Object o) { if (!(o instanceof Map.Entry)) return false; @@ -552,70 +553,82 @@ public class EnumMap, V> extends AbstractMap } } - /** - * Since we don't use Entry objects, we use the Iterator itself as entry. - */ - private class EntryIterator extends EnumMapIterator> - implements Map.Entry - { + private class EntryIterator extends EnumMapIterator> { + private Entry lastReturnedEntry = null; + public Map.Entry 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 { + 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, V> extends AbstractMap * @return true 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 m = (Map)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, V> extends AbstractMap 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, V> extends AbstractMap s.writeInt(size); // Write out keys and values (alternating) - for (Map.Entry 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/IdentityHashMap.java b/jdk/src/share/classes/java/util/IdentityHashMap.java index 12109a07215..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, 2008, 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 } } - /** - * Since we don't use Entry objects, we use the Iterator - * itself as an entry. - */ private class EntryIterator extends IdentityHashMapIterator> - implements Map.Entry { + private Entry lastReturnedEntry = null; + public Map.Entry 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 { + 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/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/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."); + } + } +} From 81221f1be039f807750e8f768af49a55a1c3575a Mon Sep 17 00:00:00 2001 From: Naoto Sato Date: Wed, 6 Apr 2011 10:53:13 -0700 Subject: [PATCH 024/144] 7031546: test/java/util/ResourceBundle/Bug4168625Test.java fails on solaris10u9 sparc Reviewed-by: okutsu --- jdk/test/java/util/ResourceBundle/Bug4168625Test.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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"); From 4926951ba8522feed94fe5e58ac0e9c1536f5c35 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Wed, 6 Apr 2011 20:51:55 +0100 Subject: [PATCH 025/144] 7034155: (ch) NullPointerException in sun.io.ch.IOUtil when OOM is thrown Reviewed-by: forax --- .../share/classes/sun/nio/ch/DatagramChannelImpl.java | 10 ++++------ jdk/src/share/classes/sun/nio/ch/IOUtil.java | 6 ++---- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java index de712d6b64f..22140ea6324 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) From 56352663f5cf2f607d7f5ae767b61d53541d06a4 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Wed, 6 Apr 2011 17:37:36 -0400 Subject: [PATCH 026/144] 7034471: Wrap registeredDrivers in DriverManager Reviewed-by: alanb, briangoetz --- .../share/classes/java/sql/DriverManager.java | 63 +++++++++++++------ 1 file changed, 45 insertions(+), 18 deletions(-) diff --git a/jdk/src/share/classes/java/sql/DriverManager.java b/jdk/src/share/classes/java/sql/DriverManager.java index ce6c6bf4823..e6732a3df4d 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 registeredDrivers = new CopyOnWriteArrayList(); + private final static CopyOnWriteArrayList registeredDrivers = new CopyOnWriteArrayList(); 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()); } @@ -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 + "]"); + } +} From 8a4683b5edf1d55ba56f290f0ec310fe52c0859d Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Wed, 6 Apr 2011 16:02:50 -0700 Subject: [PATCH 027/144] 7034513: enable fast accessors and empty methods for ZERO and -Xint Reviewed-by: kvn, iveresov --- hotspot/src/share/vm/runtime/arguments.cpp | 10 ++++++++++ hotspot/src/share/vm/runtime/globals.hpp | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 550559e0659..c4ba77761ca 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -962,6 +962,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.hpp b/hotspot/src/share/vm/runtime/globals.hpp index f9c4d322e2b..020a1673ea6 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -2726,10 +2726,10 @@ class CommandLineFlags { product(bool, UseLoopCounter, true, \ "Increment invocation counter on backward branch") \ \ - product(bool, UseFastEmptyMethods, false, \ + product(bool, UseFastEmptyMethods, true, \ "Use fast method entry code for empty methods") \ \ - product(bool, UseFastAccessorMethods, false, \ + product(bool, UseFastAccessorMethods, true, \ "Use fast method entry code for accessor methods") \ \ product_pd(bool, UseOnStackReplacement, \ From ed30132e8b4bde684e088dc6bfe5f6e7d5539603 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Wed, 6 Apr 2011 17:32:09 -0700 Subject: [PATCH 028/144] 6992789: assert(phi->_idx >= nodes_size()) failed: only new Phi per instance memory slice Swap checks: check for regular memory slice first and keep input phi. Reviewed-by: never --- hotspot/src/share/vm/opto/escape.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) 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. From 2c02243de9f3cd60b891310c01ffedec6010813c Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Thu, 7 Apr 2011 08:51:33 +0800 Subject: [PATCH 029/144] 7032354: no-addresses should not be used on acceptor side Reviewed-by: valeriep --- .../classes/sun/security/krb5/KrbApReq.java | 34 ++++---- jdk/test/sun/security/krb5/auto/KDC.java | 12 ++- .../sun/security/krb5/auto/NoAddresses.java | 81 +++++++++++++++++++ 3 files changed, 104 insertions(+), 23 deletions(-) create mode 100644 jdk/test/sun/security/krb5/auto/NoAddresses.java 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 Credentials 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/test/sun/security/krb5/auto/KDC.java b/jdk/test/sun/security/krb5/auto/KDC.java index 36dc08b4ae6..8d01dd346cd 100644 --- a/jdk/test/sun/security/krb5/auto/KDC.java +++ b/jdk/test/sun/security/krb5/auto/KDC.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -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); + } +} From 777c93481f86895d3a4f1fafe3876215bb3c1bbe Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Wed, 6 Apr 2011 19:30:57 -0700 Subject: [PATCH 030/144] 7033809: Rename "disjunctive" to "union" in javax.lang.model Reviewed-by: mcimadamore, jjg --- .../classes/com/sun/source/tree/Tree.java | 4 ++-- .../com/sun/source/tree/TreeVisitor.java | 2 +- ...nctiveTypeTree.java => UnionTypeTree.java} | 7 +++--- .../sun/source/util/SimpleTreeVisitor.java | 2 +- .../com/sun/source/util/TreeScanner.java | 2 +- .../com/sun/tools/javac/code/Flags.java | 4 ++-- .../com/sun/tools/javac/comp/Attr.java | 6 ++--- .../com/sun/tools/javac/comp/Flow.java | 6 ++--- .../classes/com/sun/tools/javac/jvm/Gen.java | 2 +- .../sun/tools/javac/parser/JavacParser.java | 2 +- .../com/sun/tools/javac/tree/JCTree.java | 22 +++++++++---------- .../com/sun/tools/javac/tree/Pretty.java | 2 +- .../com/sun/tools/javac/tree/TreeCopier.java | 6 ++--- .../com/sun/tools/javac/tree/TreeInfo.java | 2 +- .../com/sun/tools/javac/tree/TreeMaker.java | 4 ++-- .../com/sun/tools/javac/tree/TreeScanner.java | 2 +- .../sun/tools/javac/tree/TreeTranslator.java | 2 +- .../javax/lang/model/type/TypeKind.java | 4 ++-- .../javax/lang/model/type/TypeVisitor.java | 4 ++-- .../{DisjunctiveType.java => UnionType.java} | 12 +++++----- .../lang/model/util/AbstractTypeVisitor6.java | 4 ++-- .../lang/model/util/AbstractTypeVisitor7.java | 4 ++-- .../lang/model/util/SimpleTypeVisitor7.java | 4 ++-- .../lang/model/util/TypeKindVisitor7.java | 4 ++-- 24 files changed, 55 insertions(+), 58 deletions(-) rename langtools/src/share/classes/com/sun/source/tree/{DisjunctiveTypeTree.java => UnionTypeTree.java} (86%) rename langtools/src/share/classes/javax/lang/model/type/{DisjunctiveType.java => UnionType.java} (80%) 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/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/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/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/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java index bba81ad62b8..03d6180ef01 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); @@ -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/Flow.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java index 8b07d8e9040..1c199ea4ebb 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 @@ -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/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java index 12c2f99fb6a..55e1a9d5747 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 @@ -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/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/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); } } From 8725555c40fd7522b85a2cc58ed428998431f5ea Mon Sep 17 00:00:00 2001 From: Kumar Srinivasan Date: Wed, 6 Apr 2011 19:31:30 -0700 Subject: [PATCH 031/144] 7033954: (launcher) Launchers not built with mapfiles Reviewed-by: ohair --- jdk/make/com/sun/java/pack/Makefile | 14 +++++---- .../com/sun/java/pack/mapfile-vers-unpack200 | 31 +++++++++++++++++++ jdk/make/common/Mapfile-vers.gmk | 5 ++- jdk/make/common/Program.gmk | 7 ++++- jdk/make/java/main/java/Makefile | 3 +- jdk/make/java/main/java/mapfile-amd64 | 4 +-- jdk/make/java/main/java/mapfile-i586 | 4 +-- jdk/make/java/main/java/mapfile-sparc | 4 +-- jdk/make/java/main/java/mapfile-sparcv9 | 4 +-- 9 files changed, 56 insertions(+), 20 deletions(-) create mode 100644 jdk/make/com/sun/java/pack/mapfile-vers-unpack200 diff --git a/jdk/make/com/sun/java/pack/Makefile b/jdk/make/com/sun/java/pack/Makefile index 0e73e055621..c5e4e21eae6 100644 --- a/jdk/make/com/sun/java/pack/Makefile +++ b/jdk/make/com/sun/java/pack/Makefile @@ -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 @@ -56,10 +56,6 @@ build: unpacker vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR) - - - - ifeq ($(STANDALONE),true) ZIPOBJDIR = $(OUTPUTDIR)/tmp/sun/java.util.zip/zip/$(OBJDIRNAME) @@ -132,7 +128,7 @@ pack200-tool: $(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) unpacker: - $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG= + $(MAKE) $(UNPACK_EXE) STANDALONE=true ifeq ($(PLATFORM), windows) IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER) @@ -147,8 +143,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/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 dc0baec8836..9fdde6d9745 100644 --- a/jdk/make/common/Program.gmk +++ b/jdk/make/common/Program.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -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/java/main/java/Makefile b/jdk/make/java/main/java/Makefile index 452099f7a91..1766880712c 100644 --- a/jdk/make/java/main/java/Makefile +++ b/jdk/make/java/main/java/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -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 From 1693ab3b69511a86e7c6a376efd49a019c747d64 Mon Sep 17 00:00:00 2001 From: Doug Lea Date: Thu, 7 Apr 2011 15:06:32 +0100 Subject: [PATCH 032/144] 7034657: Update Creative Commons license URL in legal notices Reviewed-by: chegar --- jdk/src/share/classes/java/util/AbstractQueue.java | 2 +- jdk/src/share/classes/java/util/ArrayDeque.java | 2 +- jdk/src/share/classes/java/util/Deque.java | 2 +- jdk/src/share/classes/java/util/NavigableMap.java | 2 +- jdk/src/share/classes/java/util/NavigableSet.java | 2 +- jdk/src/share/classes/java/util/Queue.java | 2 +- .../classes/java/util/concurrent/AbstractExecutorService.java | 2 +- .../share/classes/java/util/concurrent/ArrayBlockingQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/BlockingDeque.java | 2 +- jdk/src/share/classes/java/util/concurrent/BlockingQueue.java | 2 +- .../classes/java/util/concurrent/BrokenBarrierException.java | 2 +- jdk/src/share/classes/java/util/concurrent/Callable.java | 2 +- .../classes/java/util/concurrent/CancellationException.java | 2 +- .../share/classes/java/util/concurrent/CompletionService.java | 2 +- .../share/classes/java/util/concurrent/ConcurrentHashMap.java | 2 +- .../classes/java/util/concurrent/ConcurrentLinkedDeque.java | 2 +- .../classes/java/util/concurrent/ConcurrentLinkedQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java | 2 +- .../classes/java/util/concurrent/ConcurrentNavigableMap.java | 2 +- .../classes/java/util/concurrent/ConcurrentSkipListMap.java | 2 +- .../classes/java/util/concurrent/ConcurrentSkipListSet.java | 2 +- .../share/classes/java/util/concurrent/CopyOnWriteArraySet.java | 2 +- jdk/src/share/classes/java/util/concurrent/CountDownLatch.java | 2 +- jdk/src/share/classes/java/util/concurrent/CyclicBarrier.java | 2 +- jdk/src/share/classes/java/util/concurrent/DelayQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/Delayed.java | 2 +- jdk/src/share/classes/java/util/concurrent/Exchanger.java | 2 +- .../share/classes/java/util/concurrent/ExecutionException.java | 2 +- jdk/src/share/classes/java/util/concurrent/Executor.java | 2 +- .../classes/java/util/concurrent/ExecutorCompletionService.java | 2 +- jdk/src/share/classes/java/util/concurrent/ExecutorService.java | 2 +- jdk/src/share/classes/java/util/concurrent/Executors.java | 2 +- jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java | 2 +- jdk/src/share/classes/java/util/concurrent/ForkJoinTask.java | 2 +- .../classes/java/util/concurrent/ForkJoinWorkerThread.java | 2 +- jdk/src/share/classes/java/util/concurrent/Future.java | 2 +- jdk/src/share/classes/java/util/concurrent/FutureTask.java | 2 +- .../share/classes/java/util/concurrent/LinkedBlockingDeque.java | 2 +- .../share/classes/java/util/concurrent/LinkedBlockingQueue.java | 2 +- .../share/classes/java/util/concurrent/LinkedTransferQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/Phaser.java | 2 +- .../classes/java/util/concurrent/PriorityBlockingQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/RecursiveAction.java | 2 +- jdk/src/share/classes/java/util/concurrent/RecursiveTask.java | 2 +- .../java/util/concurrent/RejectedExecutionException.java | 2 +- .../classes/java/util/concurrent/RejectedExecutionHandler.java | 2 +- jdk/src/share/classes/java/util/concurrent/RunnableFuture.java | 2 +- .../classes/java/util/concurrent/RunnableScheduledFuture.java | 2 +- .../classes/java/util/concurrent/ScheduledExecutorService.java | 2 +- jdk/src/share/classes/java/util/concurrent/ScheduledFuture.java | 2 +- .../java/util/concurrent/ScheduledThreadPoolExecutor.java | 2 +- jdk/src/share/classes/java/util/concurrent/Semaphore.java | 2 +- .../share/classes/java/util/concurrent/SynchronousQueue.java | 2 +- jdk/src/share/classes/java/util/concurrent/ThreadFactory.java | 2 +- .../share/classes/java/util/concurrent/ThreadLocalRandom.java | 2 +- .../share/classes/java/util/concurrent/ThreadPoolExecutor.java | 2 +- jdk/src/share/classes/java/util/concurrent/TimeUnit.java | 2 +- .../share/classes/java/util/concurrent/TimeoutException.java | 2 +- jdk/src/share/classes/java/util/concurrent/TransferQueue.java | 2 +- .../classes/java/util/concurrent/atomic/AtomicBoolean.java | 2 +- .../classes/java/util/concurrent/atomic/AtomicInteger.java | 2 +- .../classes/java/util/concurrent/atomic/AtomicIntegerArray.java | 2 +- .../java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java | 2 +- .../share/classes/java/util/concurrent/atomic/AtomicLong.java | 2 +- .../classes/java/util/concurrent/atomic/AtomicLongArray.java | 2 +- .../java/util/concurrent/atomic/AtomicLongFieldUpdater.java | 2 +- .../java/util/concurrent/atomic/AtomicMarkableReference.java | 2 +- .../classes/java/util/concurrent/atomic/AtomicReference.java | 2 +- .../java/util/concurrent/atomic/AtomicReferenceArray.java | 2 +- .../util/concurrent/atomic/AtomicReferenceFieldUpdater.java | 2 +- .../java/util/concurrent/atomic/AtomicStampedReference.java | 2 +- .../share/classes/java/util/concurrent/atomic/package-info.java | 2 +- .../java/util/concurrent/locks/AbstractOwnableSynchronizer.java | 2 +- .../util/concurrent/locks/AbstractQueuedLongSynchronizer.java | 2 +- .../java/util/concurrent/locks/AbstractQueuedSynchronizer.java | 2 +- jdk/src/share/classes/java/util/concurrent/locks/Condition.java | 2 +- jdk/src/share/classes/java/util/concurrent/locks/Lock.java | 2 +- .../share/classes/java/util/concurrent/locks/LockSupport.java | 2 +- .../share/classes/java/util/concurrent/locks/ReadWriteLock.java | 2 +- .../share/classes/java/util/concurrent/locks/ReentrantLock.java | 2 +- .../java/util/concurrent/locks/ReentrantReadWriteLock.java | 2 +- .../share/classes/java/util/concurrent/locks/package-info.java | 2 +- jdk/src/share/classes/java/util/concurrent/package-info.java | 2 +- jdk/test/java/util/PriorityQueue/NoNulls.java | 2 +- jdk/test/java/util/PriorityQueue/PriorityQueueSort.java | 2 +- jdk/test/java/util/Random/DistinctSeeds.java | 2 +- .../BlockingQueue/CancelledProducerConsumerLoops.java | 2 +- jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java | 2 +- .../BlockingQueue/MultipleProducersSingleConsumerLoops.java | 2 +- .../java/util/concurrent/BlockingQueue/OfferDrainToLoops.java | 2 +- jdk/test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java | 2 +- .../util/concurrent/BlockingQueue/ProducerConsumerLoops.java | 2 +- .../BlockingQueue/SingleProducerMultipleConsumerLoops.java | 2 +- .../java/util/concurrent/ConcurrentHashMap/LoopHelpers.java | 2 +- jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java | 2 +- jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java | 2 +- .../util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java | 2 +- jdk/test/java/util/concurrent/ConcurrentQueues/GCRetention.java | 2 +- .../concurrent/ConcurrentQueues/IteratorWeakConsistency.java | 2 +- jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java | 2 +- .../java/util/concurrent/ConcurrentQueues/RemovePollRace.java | 2 +- jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java | 2 +- jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java | 2 +- .../ExecutorCompletionServiceLoops.java | 2 +- .../util/concurrent/ExecutorCompletionService/LoopHelpers.java | 2 +- .../java/util/concurrent/FutureTask/CancelledFutureLoops.java | 2 +- jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java | 2 +- jdk/test/java/util/concurrent/Phaser/Arrive.java | 2 +- jdk/test/java/util/concurrent/Phaser/Basic.java | 2 +- jdk/test/java/util/concurrent/Phaser/FickleRegister.java | 2 +- jdk/test/java/util/concurrent/Phaser/PhaseOverflow.java | 2 +- jdk/test/java/util/concurrent/Phaser/TieredArriveLoops.java | 2 +- .../concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java | 2 +- jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java | 2 +- jdk/test/java/util/concurrent/Semaphore/RacingReleases.java | 2 +- jdk/test/java/util/concurrent/forkjoin/Integrate.java | 2 +- jdk/test/java/util/concurrent/forkjoin/NQueensCS.java | 2 +- .../util/concurrent/locks/ReentrantLock/CancelledLockLoops.java | 2 +- .../concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java | 2 +- .../java/util/concurrent/locks/ReentrantLock/LoopHelpers.java | 2 +- .../locks/ReentrantLock/SimpleReentrantLockLoops.java | 2 +- .../util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java | 2 +- .../concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java | 2 +- .../util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java | 2 +- .../util/concurrent/locks/ReentrantReadWriteLock/RWMap.java | 2 +- 125 files changed, 125 insertions(+), 125 deletions(-) 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/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/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..fb8a967684d 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; 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..e2e75d5b3c2 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; 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..056585fdf41 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; 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..02ec9ee3963 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/ */ /** 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..0751e5cb37a 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; 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..e1fce2f036a 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/ */ /** 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/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/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.*; From 27da779f25dcb80b10c61ec162b76f3011429a18 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov Date: Thu, 7 Apr 2011 18:54:34 +0400 Subject: [PATCH 033/144] 7016889: GraphicsDevice.setFullScreenWindow() spec for simulated full-screen mode is not always correct Reviewed-by: art, anthony --- .../classes/java/awt/GraphicsDevice.java | 6 ++- jdk/src/share/classes/java/awt/Window.java | 51 +++++++++++++++++++ 2 files changed, 55 insertions(+), 2 deletions(-) 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. * *

- * 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. *

* 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/Window.java b/jdk/src/share/classes/java/awt/Window.java index 5d8f1e6695d..e5dbc67afce 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}. + *

+ * 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}. + *

+ * 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} + *

+ * 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} + *

+ * 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 setBounds(int, int, int, int). @@ -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. + *

+ * 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}. + *

+ * 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}. + *

+ * 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) From 15e098d884377a1d84e0220a462dafc1497170ac Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Thu, 7 Apr 2011 11:25:09 -0400 Subject: [PATCH 034/144] 7034656: Address lint warnings for DriverManager Reviewed-by: alanb, forax, ohair --- jdk/src/share/classes/java/sql/DriverManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/java/sql/DriverManager.java b/jdk/src/share/classes/java/sql/DriverManager.java index e6732a3df4d..4864eb2cc93 100644 --- a/jdk/src/share/classes/java/sql/DriverManager.java +++ b/jdk/src/share/classes/java/sql/DriverManager.java @@ -483,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() { + public String run() { return System.getProperty("jdbc.drivers"); } }); @@ -496,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() { + public Void run() { ServiceLoader loadedDrivers = ServiceLoader.load(Driver.class); Iterator driversIterator = loadedDrivers.iterator(); From a08e1ce906107431cf632666556f66b1db672145 Mon Sep 17 00:00:00 2001 From: John Cuthbertson Date: Thu, 7 Apr 2011 09:53:20 -0700 Subject: [PATCH 035/144] 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer. Reviewed-by: kvn, iveresov, never, tonyp, dholmes --- hotspot/src/cpu/sparc/vm/assembler_sparc.cpp | 117 ++++----- hotspot/src/cpu/sparc/vm/assembler_sparc.hpp | 10 +- .../src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp | 101 +++++++- .../cpu/sparc/vm/c1_LIRGenerator_sparc.cpp | 11 +- .../src/cpu/sparc/vm/cppInterpreter_sparc.cpp | 20 ++ .../sparc/vm/interpreterGenerator_sparc.hpp | 3 +- .../src/cpu/sparc/vm/interpreter_sparc.cpp | 2 + .../sparc/vm/templateInterpreter_sparc.cpp | 81 +++++++ .../src/cpu/sparc/vm/templateTable_sparc.cpp | 6 +- hotspot/src/cpu/x86/vm/assembler_x86.cpp | 137 +++++++---- hotspot/src/cpu/x86/vm/assembler_x86.hpp | 14 +- hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp | 72 +++++- .../src/cpu/x86/vm/c1_LIRGenerator_x86.cpp | 9 +- .../x86/vm/cppInterpreterGenerator_x86.hpp | 3 +- hotspot/src/cpu/x86/vm/cppInterpreter_x86.cpp | 22 ++ .../cpu/x86/vm/interpreterGenerator_x86.hpp | 3 +- .../cpu/x86/vm/templateInterpreter_x86_32.cpp | 94 ++++++++ .../cpu/x86/vm/templateInterpreter_x86_64.cpp | 91 +++++++ .../src/cpu/x86/vm/templateTable_x86_32.cpp | 13 +- .../src/cpu/x86/vm/templateTable_x86_64.cpp | 13 +- .../src/cpu/zero/vm/cppInterpreter_zero.cpp | 24 ++ .../cpu/zero/vm/interpreterGenerator_zero.hpp | 3 +- hotspot/src/share/vm/c1/c1_CodeStubs.hpp | 102 +++++++- hotspot/src/share/vm/c1/c1_GraphBuilder.cpp | 49 ++++ hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 208 ++++++++++++++-- hotspot/src/share/vm/c1/c1_LIRGenerator.hpp | 6 +- hotspot/src/share/vm/classfile/vmSymbols.hpp | 4 + .../g1/g1SATBCardTableModRefBS.cpp | 20 +- .../g1/g1SATBCardTableModRefBS.hpp | 9 +- .../vm/gc_implementation/g1/g1_globals.hpp | 14 +- .../vm/interpreter/abstractInterpreter.hpp | 3 +- .../share/vm/interpreter/cppInterpreter.cpp | 3 +- .../src/share/vm/interpreter/interpreter.cpp | 15 +- .../vm/interpreter/templateInterpreter.cpp | 1 + hotspot/src/share/vm/oops/instanceKlass.hpp | 2 + hotspot/src/share/vm/opto/compile.cpp | 23 +- hotspot/src/share/vm/opto/graphKit.cpp | 65 +++-- hotspot/src/share/vm/opto/graphKit.hpp | 12 +- hotspot/src/share/vm/opto/library_call.cpp | 226 +++++++++++++++++- hotspot/src/share/vm/prims/jni.cpp | 23 ++ hotspot/src/share/vm/prims/unsafe.cpp | 57 ++++- 41 files changed, 1423 insertions(+), 268 deletions(-) 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..39186972dd3 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_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_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/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp index 1b25b2af831..cbc7dece6a6 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 06375d0b0ad..9bf68848430 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 e590cb8235d..350936d9b08 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 d621a3cbff9..1258281e895 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp @@ -6890,26 +6890,39 @@ void MacroAssembler::sign_extend_short(Register reg) { #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 { @@ -6918,65 +6931,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; @@ -7055,7 +7095,6 @@ void MacroAssembler::g1_write_barrier_post(Register store_addr, pop(store_addr); bind(done); - } #endif // SERIALGC diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.hpp b/hotspot/src/cpu/x86/vm/assembler_x86.hpp index 807559e06d1..21852231e8e 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp @@ -1444,6 +1444,7 @@ private: class MacroAssembler: public Assembler { friend class LIR_Assembler; friend class Runtime1; // as_Address() + protected: Address as_Address(AddressLiteral adr); @@ -1665,21 +1666,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); diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp index 3603831155a..92482427692 100644 --- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp @@ -464,15 +464,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 +486,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_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_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 c3f20290e2b..18f70391ff0 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 69ea49e8a88..bfcae7344de 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 73ed5182d8e..38128efa101 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -139,7 +139,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 @@ -148,7 +153,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 2638cbc7d4c..d11c5911cb0 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/zero/vm/cppInterpreter_zero.cpp b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp index ee8d7a2b403..de8a0792053 100644 --- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp +++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp @@ -737,6 +737,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 +812,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/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/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 4e5f4edf0e6..b20c5c72b88 100644 --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp @@ -2912,6 +2912,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(); @@ -3149,6 +3189,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_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index ae3773bcc29..ee9f1abf78e 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -1104,6 +1104,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 +1278,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 +1326,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 +1346,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; @@ -1555,6 +1601,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 +2032,127 @@ 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()) { + jint off_con = off.get_jint_constant(); + + if (off_con != 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 + __ cmp(lir_cond_equal, off.result(), + LIR_OprFact::intConst(java_lang_ref_Reference::referent_offset)); + + // Optionally generate "src == null" check. + stub = new G1UnsafeGetObjSATBBarrierStub(reg, src.result(), + src_klass, thread, + gen_source_check); + + __ branch(lir_cond_equal, T_INT, 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 +2818,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/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index 81376926f07..55dfd716831 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -706,6 +706,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) */ \ 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 a8c7e7e9a2e..dde3ba4be31 100644 --- a/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp +++ b/hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.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 @@ -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/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/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/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/oops/instanceKlass.hpp b/hotspot/src/share/vm/oops/instanceKlass.hpp index 07acfc358c0..75a1f76545f 100644 --- a/hotspot/src/share/vm/oops/instanceKlass.hpp +++ b/hotspot/src/share/vm/oops/instanceKlass.hpp @@ -403,6 +403,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 diff --git a/hotspot/src/share/vm/opto/compile.cpp b/hotspot/src/share/vm/opto/compile.cpp index 96f30425109..93c14b3d1ef 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) { diff --git a/hotspot/src/share/vm/opto/graphKit.cpp b/hotspot/src/share/vm/opto/graphKit.cpp index b20513e67c1..d8ada03306d 100644 --- a/hotspot/src/share/vm/opto/graphKit.cpp +++ b/hotspot/src/share/vm/opto/graphKit.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 @@ -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; @@ -3465,12 +3472,31 @@ void GraphKit::write_barrier_post(Node* oop_store, } // 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) { + + // 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(gvn(), control(), merged_memory(), true); Node* tls = __ thread(); // ThreadLocalStorage @@ -3492,32 +3518,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 +3553,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,9 +3563,9 @@ 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. diff --git a/hotspot/src/share/vm/opto/graphKit.hpp b/hotspot/src/share/vm/opto/graphKit.hpp index 2f7a7d5ab05..91ab7196597 100644 --- a/hotspot/src/share/vm/opto/graphKit.hpp +++ b/hotspot/src/share/vm/opto/graphKit.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 @@ -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); @@ -669,11 +671,13 @@ class GraphKit : public Phase { 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/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index 024955215e6..71a19501a2d 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -165,6 +165,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(); @@ -239,6 +243,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(); }; @@ -335,6 +341,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?"); @@ -386,13 +400,22 @@ JVMState* LibraryIntrinsic::generate(JVMState* jvms) { tty->print_cr("Intrinsic %s", str); } #endif + if (kit.try_to_inline()) { if (PrintIntrinsics || PrintInlining NOT_PRODUCT( || PrintOptoInlining) ) { - tty->print("Inlining 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()); + if (jvms->has_method()) { + // Not a root compile. + tty->print("Inlining 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_cr("Generating intrinsic %s%s at bci:%d", + vmIntrinsics::name_at(intrinsic_id()), + (is_virtual() ? " (virtual)" : ""), kit.bci()); + } } C->gather_intrinsic_statistics(intrinsic_id(), is_virtual(), Compile::_intrinsic_worked); if (C->log()) { @@ -405,11 +428,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; @@ -421,6 +452,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); @@ -661,6 +700,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. @@ -2079,6 +2121,110 @@ 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(gvn(), control(), merged_memory()); +#define __ ideal. + + const int reference_type_offset = instanceKlass::reference_type_offset_in_bytes() + + sizeof(oopDesc); + + Node* referent_off = __ ConI(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. + set_all_memory(__ merged_memory()); + set_control(__ ctrl()); + + 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. + __ set_all_memory(merged_memory()); + __ set_ctrl(control()); + + Node* one = __ ConI(1); + + __ if_then(is_instof, BoolTest::eq, one, unlikely); { + + // Update graphKit from IdeakKit. + set_all_memory(__ merged_memory()); + set_control(__ ctrl()); + + // Use the pre-barrier to record the value in the referent field + pre_barrier(false /* do_load */, + __ ctrl(), + NULL /* obj */, NULL /* adr */, -1 /* alias_idx */, NULL /* val */, NULL /* val_type */, + pre_val /* pre_val */, + T_OBJECT); + + // Update IdealKit from graphKit. + __ set_all_memory(merged_memory()); + __ set_ctrl(control()); + + } __ end_if(); // _ref_type != ref_none + } __ end_if(); // base != NULL + } __ end_if(); // offset == referent_offset + + // Final sync IdealKit and GraphKit. + sync_kit(ideal); +#undef __ +} + + // Interpret Unsafe.fieldOffset cookies correctly: extern jlong Unsafe_field_offset_to_byte_offset(jlong field_offset); @@ -2155,9 +2301,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 @@ -2198,6 +2346,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; @@ -2281,8 +2436,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. @@ -2539,7 +2699,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())); @@ -5315,3 +5478,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 */, -1 /* alias_idx */, NULL /* val */, NULL /* val_type */, + result /* pre_val */, + T_OBJECT); + + push(result); + return true; +} + 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/unsafe.cpp b/hotspot/src/share/vm/prims/unsafe.cpp index a4531e948a0..cde444f5ee6 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)) From fae19754bb6200de0478a5086aee57da35fb96b7 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Thu, 7 Apr 2011 22:34:29 +0400 Subject: [PATCH 036/144] 7031854: JCK 7 test FileDialogTest0001 fails on Windows with Russian locale Reviewed-by: uta, dcherepanov --- jdk/src/windows/native/sun/windows/awt_FileDialog.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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); From aa39508b835fd256b7666bc7a8c3f1ad30ce01ae Mon Sep 17 00:00:00 2001 From: Kumar Srinivasan Date: Thu, 7 Apr 2011 12:06:32 -0700 Subject: [PATCH 037/144] 7029048: (launcher) fence the launcher against LD_LIBRARY_PATH Reviewed-by: mchung, ohair --- jdk/src/share/bin/jli_util.h | 4 +- jdk/src/solaris/bin/java_md.c | 489 +++++++++++++++--- .../tools/launcher/ExecutionEnvironment.java | 14 +- jdk/test/tools/launcher/Test7029048.java | 313 +++++++++++ jdk/test/tools/launcher/TestHelper.java | 106 +++- 5 files changed, 849 insertions(+), 77 deletions(-) create mode 100644 jdk/test/tools/launcher/Test7029048.java 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/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/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(); } From dadf395fbedad445d7eeb90d9465686e707eea25 Mon Sep 17 00:00:00 2001 From: John Coomes Date: Thu, 7 Apr 2011 16:52:15 -0700 Subject: [PATCH 038/144] 7034133: cleanup obsolete option handling Reviewed-by: ysr, johnc, poonam --- hotspot/src/share/vm/runtime/arguments.cpp | 34 ++++++++++------------ 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 6532c305f76..f0d7de2cebc 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -799,26 +799,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) { From 16784a72e866a0dcb75e51d00571f440fbf5bc48 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Thu, 7 Apr 2011 17:02:30 -0700 Subject: [PATCH 039/144] 6981791: remove experimental code for JSR 292 Reviewed-by: twisti --- .../sun/jvm/hotspot/oops/ConstantPool.java | 5 - .../jvm/hotspot/runtime/ClassConstants.java | 2 +- .../jvm/hotspot/tools/jcore/ClassWriter.java | 1 - .../ui/classbrowser/HTMLGenerator.java | 1 - .../jvm/hotspot/utilities/ConstantTag.java | 3 +- .../share/vm/classfile/classFileParser.cpp | 29 --- .../src/share/vm/classfile/javaClasses.cpp | 23 --- .../share/vm/classfile/systemDictionary.cpp | 129 +------------ .../share/vm/classfile/systemDictionary.hpp | 7 - hotspot/src/share/vm/classfile/verifier.cpp | 13 +- hotspot/src/share/vm/classfile/vmSymbols.hpp | 31 ---- .../share/vm/interpreter/bytecodeTracer.cpp | 1 - .../vm/interpreter/interpreterRuntime.cpp | 5 +- .../src/share/vm/interpreter/linkResolver.cpp | 4 +- hotspot/src/share/vm/interpreter/rewriter.cpp | 16 +- .../src/share/vm/oops/constantPoolKlass.cpp | 1 - hotspot/src/share/vm/oops/constantPoolOop.cpp | 16 +- hotspot/src/share/vm/oops/constantPoolOop.hpp | 10 - hotspot/src/share/vm/oops/cpCacheOop.cpp | 2 +- hotspot/src/share/vm/oops/instanceKlass.hpp | 7 - .../src/share/vm/oops/instanceKlassKlass.cpp | 17 -- hotspot/src/share/vm/oops/methodOop.cpp | 14 +- hotspot/src/share/vm/prims/jvm.h | 2 +- .../src/share/vm/prims/methodHandleWalk.cpp | 6 - hotspot/src/share/vm/prims/methodHandles.cpp | 171 ++---------------- hotspot/src/share/vm/prims/nativeLookup.cpp | 2 - hotspot/src/share/vm/runtime/arguments.cpp | 1 + hotspot/src/share/vm/runtime/globals.cpp | 6 + hotspot/src/share/vm/runtime/globals.hpp | 8 +- .../src/share/vm/utilities/constantTag.cpp | 2 - .../src/share/vm/utilities/constantTag.hpp | 3 +- 31 files changed, 54 insertions(+), 484 deletions(-) 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 f1babff8cb6..61858ce5593 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 3896c67d77c..b2feb3acd8b 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 147e3bd5590..1b1af7e3b91 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/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 3f71a2b432c..61797a33fd7 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; } @@ -2783,7 +2765,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 +2804,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 +3174,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..5fad095b465 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, @@ -2333,7 +2311,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/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp index 9ed92f8354d..17a9f740685 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.cpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp @@ -1887,99 +1887,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 +2337,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 +2424,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 +2435,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 +2487,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 +2521,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 +2605,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..00bd191c826 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) ) \ \ @@ -910,8 +881,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/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/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/oops/constantPoolKlass.cpp b/hotspot/src/share/vm/oops/constantPoolKlass.cpp index 40488301a8a..bfbbe00fd68 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..e0d70ae6812 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. @@ -526,10 +524,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 +787,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..aa12d13a8c9 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); diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 16d42b0262b..5e470ac35c0 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; } @@ -1092,7 +1092,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 +1117,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/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/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/methodHandles.cpp b/hotspot/src/share/vm/prims/methodHandles.cpp index 2aae1f7f3ec..e882c85627d 100644 --- a/hotspot/src/share/vm/prims/methodHandles.cpp +++ b/hotspot/src/share/vm/prims/methodHandles.cpp @@ -2488,74 +2488,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 +2526,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 +2536,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/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index c4ba77761ca..fdf271c80b4 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -243,6 +243,7 @@ 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) }, + { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { NULL, JDK_Version(0), JDK_Version(0) } }; 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 020a1673ea6..fe5f17c8b77 100644 --- a/hotspot/src/share/vm/runtime/globals.hpp +++ b/hotspot/src/share/vm/runtime/globals.hpp @@ -3718,13 +3718,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/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) || From bc945571e4fa339d2863acd8a9c0eb9ee3a8ccbd Mon Sep 17 00:00:00 2001 From: Kumar Srinivasan Date: Thu, 7 Apr 2011 17:08:16 -0700 Subject: [PATCH 040/144] 7034700: (unpack200) build fails with fastdebug builds Reviewed-by: ohair --- jdk/make/com/sun/java/pack/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jdk/make/com/sun/java/pack/Makefile b/jdk/make/com/sun/java/pack/Makefile index c5e4e21eae6..f0841521fb9 100644 --- a/jdk/make/com/sun/java/pack/Makefile +++ b/jdk/make/com/sun/java/pack/Makefile @@ -127,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 + $(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_DBG= ifeq ($(PLATFORM), windows) IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER) From b95f04efbf38bf33965ea6b58643026c969b8f2f Mon Sep 17 00:00:00 2001 From: John R Rose Date: Thu, 7 Apr 2011 17:12:21 -0700 Subject: [PATCH 041/144] 7012087: JSR 292 Misleading exception message for a non-bound MH for a virtual method Improve error message formatting to give more information to user. Also, catch a corner case related to 6930553 and 6844449. Reviewed-by: kvn --- .../share/vm/classfile/classFileParser.cpp | 1 + .../src/share/vm/runtime/sharedRuntime.cpp | 33 ++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 61797a33fd7..cd4ef079faf 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -560,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: { 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) { From f8fe3457a5ba04b5e574108755abf93c21781571 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Thu, 7 Apr 2011 17:12:23 -0700 Subject: [PATCH 042/144] 7009600: JSR 292 Server compiler crashes in Compile::find_intrinsic(ciMethod*, bool) Catch errors during the compile-time processing of method handles; back out cleanly Reviewed-by: twisti --- hotspot/src/share/vm/ci/ciMethodHandle.cpp | 17 ++++++++++++++--- hotspot/src/share/vm/opto/doCall.cpp | 11 +++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) 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/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); From f9b80cdc1c07ceaa2e9512a256856202280ce8b3 Mon Sep 17 00:00:00 2001 From: John Coomes Date: Thu, 7 Apr 2011 17:16:20 -0700 Subject: [PATCH 043/144] 6841742: par compact - remove unused/unsupported options Ignore UseParallel{OldGCDensePrefix,OldGCCompacting,DensePrefixUpdate} Reviewed-by: jwilhelm, brutisso --- .../parallelScavenge/psOldGen.cpp | 6 +-- .../parallelScavenge/psOldGen.hpp | 5 +- .../parallelScavenge/psParallelCompact.cpp | 50 +++++-------------- .../parallelScavenge/psParallelCompact.hpp | 3 -- .../parallelScavenge/psPermGen.cpp | 8 +-- .../parallelScavenge/psPermGen.hpp | 5 +- .../parallelScavenge/psYoungGen.cpp | 8 +-- .../parallelScavenge/psYoungGen.hpp | 5 +- hotspot/src/share/vm/runtime/arguments.cpp | 6 +++ hotspot/src/share/vm/runtime/globals.hpp | 10 ---- 10 files changed, 25 insertions(+), 81 deletions(-) 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/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index f0d7de2cebc..e99695bf999 100644 --- a/hotspot/src/share/vm/runtime/arguments.cpp +++ b/hotspot/src/share/vm/runtime/arguments.cpp @@ -243,6 +243,12 @@ 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) }, { NULL, JDK_Version(0), JDK_Version(0) } }; diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp index 7796debf9ad..e1b17a2e3ae 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") \ \ From 7bf0d4d5cd473c564b33cc1d6691714465f622ab Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Thu, 7 Apr 2011 20:26:41 -0700 Subject: [PATCH 044/144] 7019210: Fix misc references to /bugreport websites Reviewed-by: skannan --- hotspot/src/share/vm/runtime/arguments.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp index 6532c305f76..72bae90fd0c 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; From fe74e1ba6ac1fb12b06d18f0cfe51774c7f4c5de Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Thu, 7 Apr 2011 21:32:23 -0700 Subject: [PATCH 045/144] 7034957: acquiring lock CodeCache_lock/1 out of order with lock tty_lock/0 -- possible deadlock Reviewed-by: iveresov --- hotspot/src/share/vm/code/codeCache.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp index 2dd42dc06af..4dba8927b3e 100644 --- a/hotspot/src/share/vm/code/codeCache.cpp +++ b/hotspot/src/share/vm/code/codeCache.cpp @@ -971,6 +971,8 @@ size_t CodeCache::largest_free_block() { if (CodeCache_lock->owned_by_self()) { return _heap->largest_free_block(); } else { + // Avoid lock ordering problems with ttyLock. + ttyUnlocker ttyul; MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); return _heap->largest_free_block(); } From 2a48e38d0f69c63414ed8a38aaaf716ec7fe76d6 Mon Sep 17 00:00:00 2001 From: Xue-Lei Andrew Fan Date: Fri, 8 Apr 2011 02:00:09 -0700 Subject: [PATCH 046/144] 6976117: SSLContext.getInstance("TLSv1.1") returns SSLEngines/SSLSockets without TLSv1.1 enabled Reorg the SSLContext implementation Reviewed-by: weijun --- .../sun/security/ssl/CipherSuiteList.java | 55 +- .../security/ssl/DefaultSSLContextImpl.java | 193 ------ .../classes/sun/security/ssl/JsseJce.java | 8 +- .../sun/security/ssl/ProtocolList.java | 68 +-- .../sun/security/ssl/SSLContextImpl.java | 566 +++++++++++++++++- .../sun/security/ssl/SSLEngineImpl.java | 21 +- .../ssl/SSLServerSocketFactoryImpl.java | 10 +- .../sun/security/ssl/SSLServerSocketImpl.java | 15 +- .../security/ssl/SSLSocketFactoryImpl.java | 17 +- .../sun/security/ssl/SSLSocketImpl.java | 22 +- .../classes/sun/security/ssl/SunJSSE.java | 23 +- .../ssl/javax/net/ssl/SSLContextVersion.java | 112 ++++ 12 files changed, 719 insertions(+), 391 deletions(-) delete mode 100644 jdk/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java create mode 100644 jdk/test/sun/security/ssl/javax/net/ssl/SSLContextVersion.java diff --git a/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java index 43750203b36..bf69b35aaca 100644 --- a/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java +++ b/jdk/src/share/classes/sun/security/ssl/CipherSuiteList.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, 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 @@ -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 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 cipherSuites = new TreeSet<>(); - Collection 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 f4c6e160200..00000000000 --- a/jdk/src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Copyright (c) 2005, 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 - * 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 props = new HashMap<>(); - AccessController.doPrivileged( - new PrivilegedExceptionAction() { - 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() { - 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 6f41e4efa3d..a57a9bdfdff 100644 --- a/jdk/src/share/classes/sun/security/ssl/ProtocolList.java +++ b/jdk/src/share/classes/sun/security/ssl/ProtocolList.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, 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 @@ -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 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 allowedCipherSuites = + CipherSuite.allowedCipherSuites(); + + ArrayList 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 props = new HashMap<>(); + AccessController.doPrivileged( + new PrivilegedExceptionAction() { + 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() { + 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/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"); + } + } +} From e93ee5debaaf702457f855dffe1ce3553c6b9345 Mon Sep 17 00:00:00 2001 From: Doug Lea Date: Fri, 8 Apr 2011 10:33:14 +0100 Subject: [PATCH 047/144] 7035020: ForkJoinPool.invoke may deadlock if parallelism = 1 Reviewed-by: chegar --- .../java/util/concurrent/ForkJoinPool.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java index e2e75d5b3c2..8d30808a6c5 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java @@ -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,7 @@ public class ForkJoinPool extends AbstractExecutorService { else if (w.eventCount != v) return true; // update next time } - if (parallelism + (int)(nc >> AC_SHIFT) == 0 && + if ((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 +894,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)) { @@ -1175,7 +1177,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; From 8ca505ebed7aa33fa61b312b9afa2cc1fda16889 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 8 Apr 2011 15:00:20 +0400 Subject: [PATCH 048/144] 7027013: Regression: JComponent.revalidate() has no effect on invisible components Dialog.conditionalShow() should call validateUnconditionally() instead of simple validate() Reviewed-by: art, dcherepanov --- jdk/src/share/classes/java/awt/Dialog.java | 2 +- .../Dialog/ValidateOnShow/ValidateOnShow.java | 84 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 jdk/test/java/awt/Dialog/ValidateOnShow/ValidateOnShow.java 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/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(); + } +} From f9feed66689b8a6633c2ed93fd95314b231efd49 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Fri, 8 Apr 2011 18:29:27 +0400 Subject: [PATCH 049/144] 7029832: Buffer overrun at awt_LoadLibrary.c (and java_props_md.c) Reviewed-by: anthony, art --- .../solaris/native/sun/awt/awt_LoadLibrary.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) 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; } From c2d4b9c218f29884f16d0228fa13983061738ea2 Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Fri, 8 Apr 2011 17:04:35 +0400 Subject: [PATCH 050/144] 7008513: Case TranslucentJAppletTest.jtr automatically failed due to java.lang.RuntimeException Set transparent background to the applet Reviewed-by: art, dcherepanov --- .../Window/TranslucentJAppletTest/TranslucentJAppletTest.java | 1 + 1 file changed, 1 insertion(+) 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; From 2096fd712c5ea1443eaef11370776f323fe2ff40 Mon Sep 17 00:00:00 2001 From: Vladimir Kozlov Date: Fri, 8 Apr 2011 14:56:22 -0700 Subject: [PATCH 051/144] 7004555: Add new policy for one iteration loops Add new policy for one iteration loops (mostly formal pre- loops). Reviewed-by: never --- hotspot/src/share/vm/opto/loopTransform.cpp | 146 +++++++++++++++----- hotspot/src/share/vm/opto/loopnode.cpp | 15 ++ hotspot/src/share/vm/opto/loopnode.hpp | 59 +++++--- 3 files changed, 164 insertions(+), 56 deletions(-) diff --git a/hotspot/src/share/vm/opto/loopTransform.cpp b/hotspot/src/share/vm/opto/loopTransform.cpp index 4662646a19a..12ba1cea78f 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 @@ -533,29 +573,15 @@ bool IdealLoopTree::policy_maximally_unroll( PhaseIdealLoop *phase ) const { 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()) { + if (!cl->has_exact_trip_count()) { + // Trip count is not exact. return false; } - // 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_cnt = (limit_con - init_con + stride_m)/stride_con; - // Note, max_jint is used to indicate unknown trip count. - if (trip_cnt <= 0 || trip_cnt >= (long)max_jint) { - // 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 = (uint)trip_cnt; - cl->set_trip_count(trip_count); + 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 @@ -1096,7 +1122,7 @@ void PhaseIdealLoop::do_unroll( IdealLoopTree *loop, Node_List &old_new, bool ad tty->print("Unrolling "); loop->dump_head(); } else if (TraceLoopOpts) { - if (loop_head->trip_count() < LoopUnrollLimit) { + 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); @@ -1801,6 +1827,17 @@ 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 = PhaseIdealLoop::skip_loop_predicates(cl->in(LoopNode::EntryControl)); @@ -1846,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? @@ -1860,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); @@ -1937,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 @@ -1952,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; diff --git a/hotspot/src/share/vm/opto/loopnode.cpp b/hotspot/src/share/vm/opto/loopnode.cpp index ef0314eec99..cd694871233 100644 --- a/hotspot/src/share/vm/opto/loopnode.cpp +++ b/hotspot/src/share/vm/opto/loopnode.cpp @@ -1450,6 +1450,21 @@ void IdealLoopTree::dump_head( ) const { 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"); diff --git a/hotspot/src/share/vm/opto/loopnode.hpp b/hotspot/src/share/vm/opto/loopnode.hpp index bff527e86e0..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 ); From 10ec13e8efa61d693243b2ae0202843260a49a9f Mon Sep 17 00:00:00 2001 From: Phil Race Date: Fri, 8 Apr 2011 15:33:03 -0700 Subject: [PATCH 052/144] 7004984: Features.h was renamed to ICUFeatures.h and should be removed Reviewed-by: srl --- .../share/native/sun/font/layout/Features.h | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 jdk/src/share/native/sun/font/layout/Features.h diff --git a/jdk/src/share/native/sun/font/layout/Features.h b/jdk/src/share/native/sun/font/layout/Features.h deleted file mode 100644 index 13ab88aac34..00000000000 --- a/jdk/src/share/native/sun/font/layout/Features.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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. - * - */ - -/* - * - * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved - * - */ - -#ifndef __FEATURES_H -#define __FEATURES_H - -/** - * \file - * \internal - */ - -#include "LETypes.h" -#include "OpenTypeTables.h" - -U_NAMESPACE_BEGIN - -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 From e8447846eea54e950491a8468fe4ed0da2183ceb Mon Sep 17 00:00:00 2001 From: Igor Veresov Date: Fri, 8 Apr 2011 17:03:31 -0700 Subject: [PATCH 053/144] 7034967: C1: assert(false) failed: error (assembler_sparc.cpp:2043) Fix -XX:+VerifyOops Reviewed-by: kvn, never --- .../src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp | 4 ++-- hotspot/src/cpu/x86/vm/assembler_x86.cpp | 15 +++++++++++++-- hotspot/src/cpu/x86/vm/assembler_x86.hpp | 1 + hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp | 4 +++- hotspot/src/share/vm/c1/c1_LIRGenerator.cpp | 6 ++++-- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp index c3556e2147e..35e70e99676 100644 --- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @@ -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 @@ -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/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp index 0e96e8d427a..34b0fffdd21 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp @@ -7941,12 +7941,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 +8396,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 2457f18bd0d..1407248b1b0 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86.hpp @@ -1709,6 +1709,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..120570c64b2 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); diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp index 2dd5a97f1e8..33278ef5065 100644 --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp @@ -1456,7 +1456,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 { @@ -1508,7 +1508,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 { From bbb0b31bfe256c8f931d3f1cf7970881642e7192 Mon Sep 17 00:00:00 2001 From: Tom Rodriguez Date: Fri, 8 Apr 2011 23:00:14 -0700 Subject: [PATCH 054/144] 7035161: assert(!o->is_null_object()) failed: null object not yet handled here Reviewed-by: kvn --- hotspot/src/share/vm/ci/ciInstance.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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(); From 06a8e9b35edf509453b829317bda90f1f0eb0c5d Mon Sep 17 00:00:00 2001 From: John R Rose Date: Sat, 9 Apr 2011 21:38:40 -0700 Subject: [PATCH 055/144] 7019529: JSR292: java/dyn/ClassValueTest.java depends on sub-test execution order Test should not use static variables, because they may contain stale values. Reviewed-by: twisti --- jdk/test/java/lang/invoke/ClassValueTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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) { From 93459f517d1a7b72afaa9fb44cfed29b7cecf077 Mon Sep 17 00:00:00 2001 From: John R Rose Date: Sat, 9 Apr 2011 22:55:25 -0700 Subject: [PATCH 056/144] 6987991: JSR 292 phpreboot test/testtracefun2.phpr segfaults Make MH verification tests more correct, robust, and informative. Fix lingering symbol refcount problems. Reviewed-by: twisti --- hotspot/src/share/vm/oops/methodOop.cpp | 4 + .../src/share/vm/prims/methodHandleWalk.hpp | 1 + hotspot/src/share/vm/prims/methodHandles.cpp | 95 +++++++++++++------ 3 files changed, 69 insertions(+), 31 deletions(-) diff --git a/hotspot/src/share/vm/oops/methodOop.cpp b/hotspot/src/share/vm/oops/methodOop.cpp index 5e470ac35c0..b1218874b91 100644 --- a/hotspot/src/share/vm/oops/methodOop.cpp +++ b/hotspot/src/share/vm/oops/methodOop.cpp @@ -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)); 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 e882c85627d..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); From 19317c2c4571db244c14c0c51c0771afc77fef26 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Sun, 10 Apr 2011 19:45:28 +0100 Subject: [PATCH 057/144] 7034532: (fs) AssertionError when working directory is UNC Reviewed-by: forax, mduigou --- jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java b/jdk/src/windows/classes/sun/nio/fs/WindowsFileSystem.java index 59891ec51d5..ffad83ef38c 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(); From 65df911e4abec489966e1b42124c66c1a35c07c6 Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Mon, 11 Apr 2011 10:22:17 +0800 Subject: [PATCH 058/144] 7012160: read SF file in signed jar in streaming mode Reviewed-by: mullan --- .../share/classes/java/util/jar/JarFile.java | 22 +- .../classes/java/util/jar/JarInputStream.java | 4 +- .../classes/java/util/jar/JarVerifier.java | 224 ++++------------ .../classes/sun/security/pkcs/PKCS7.java | 178 ++++++++++++- .../classes/sun/security/pkcs/SignerInfo.java | 138 +--------- .../security/util/ManifestEntryVerifier.java | 6 +- .../security/util/SignatureFileManifest.java | 251 ++++++++++++++++++ .../security/util/SignatureFileVerifier.java | 172 ++++++++---- 8 files changed, 620 insertions(+), 375 deletions(-) create mode 100644 jdk/src/share/classes/sun/security/util/SignatureFileManifest.java diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java index 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 JarFile 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/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 implCRLs = new HashSet(crls.length); + Set 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 intResult = new Vector(); + List 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 certList = new ArrayList(); + ArrayList 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/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 verifiedSigners, - Hashtable sigFileSigners) + public CodeSigner[] verify(Map verifiedSigners, + Map 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. + *

+ * 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. + *

+ * 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. + *

+ * 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 createdDigests; @@ -83,6 +86,7 @@ public class SignatureFileVerifier { * @param rawBytes the raw bytes of the signature block file */ public SignatureFileVerifier(ArrayList 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 signers, + public void process(Map signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException @@ -197,31 +194,86 @@ public class SignatureFileVerifier { } - private void processImpl(Hashtable signers, + private void processImpl(Map 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 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> 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> 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 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 signers, String name) { + Map signers, String name) { CodeSigner[] oldSigners = signers.get(name); From 6f7b1ef68a19efcbcedcb84546feab704a7fedbd Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Mon, 11 Apr 2011 10:22:39 +0800 Subject: [PATCH 059/144] 7030180: AES 128/256 decrypt exception Reviewed-by: valeriep --- .../jgss/krb5/InitSecContextToken.java | 6 +- .../sun/security/jgss/krb5/InitialToken.java | 20 +- jdk/test/sun/security/krb5/KrbCredSubKey.java | 352 ++++++++++++++++++ 3 files changed, 369 insertions(+), 9 deletions(-) create mode 100644 jdk/test/sun/security/krb5/KrbCredSubKey.java 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/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, + }; +} From e27e4cb99b0cb602d904f17604e3917945ba651c Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Sun, 10 Apr 2011 23:33:14 -0700 Subject: [PATCH 060/144] 7033561: Missing Unicode Script aliases Added 6.0 aliases Reviewed-by: okutsu, peytoia, alanb --- .../share/classes/java/lang/Character.java | 3 + jdk/test/java/lang/Character/CheckScript.java | 70 +- .../lang/Character/PropertyValueAliases.txt | 1178 +++++++++++++++++ 3 files changed, 1240 insertions(+), 11 deletions(-) create mode 100644 jdk/test/java/lang/Character/PropertyValueAliases.txt diff --git a/jdk/src/share/classes/java/lang/Character.java b/jdk/src/share/classes/java/lang/Character.java index 0289d54cdf7..e19130d1d93 100644 --- a/jdk/src/share/classes/java/lang/Character.java +++ b/jdk/src/share/classes/java/lang/Character.java @@ -4184,9 +4184,11 @@ class Character implements java.io.Serializable, Comparable { 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); @@ -4230,6 +4232,7 @@ class Character implements java.io.Serializable, Comparable { 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/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 From 2ea041a2b2c3e92d3085934788620b26d6c3ae19 Mon Sep 17 00:00:00 2001 From: Bengt Rutisson Date: Mon, 11 Apr 2011 11:12:41 +0200 Subject: [PATCH 061/144] 7034625: Product builds in Visual Studio projects should produce full symbol information Add the /debug flag to the linker command in Visual Studio Reviewed-by: mgronlun, poonam, hosterda --- .../share/tools/ProjectCreator/WinGammaPlatformVC10.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; } From 899faa3fec85b995923f9a73674c975a759e8e4a Mon Sep 17 00:00:00 2001 From: Tom Deneau Date: Mon, 11 Apr 2011 15:30:31 -0700 Subject: [PATCH 062/144] 7035713: 3DNow Prefetch Instruction Support The upcoming processors from AMD are the first that support 3dnow prefetch without supporting the 3dnow instruction set. Reviewed-by: kvn --- hotspot/src/cpu/x86/vm/assembler_x86.cpp | 4 ++-- hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 4 ++-- hotspot/src/cpu/x86/vm/vm_version_x86.cpp | 17 ++++++++--------- hotspot/src/cpu/x86/vm/vm_version_x86.hpp | 11 ++++++----- hotspot/src/cpu/x86/vm/x86_32.ad | 14 +++++++------- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/hotspot/src/cpu/x86/vm/assembler_x86.cpp b/hotspot/src/cpu/x86/vm/assembler_x86.cpp index 34b0fffdd21..55455f2b369 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); diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index bcec4d4d742..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); } } 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); From bea445368e245a20b23444741c6a53f83057594b Mon Sep 17 00:00:00 2001 From: Vladimir Danushevsky Date: Mon, 11 Apr 2011 23:02:37 -0400 Subject: [PATCH 063/144] 7005865: Crash when running with PrintIRWithLIR The failure is caused by uninitialized bci number Reviewed-by: iveresov --- hotspot/src/share/vm/c1/c1_Instruction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/src/share/vm/c1/c1_Instruction.cpp b/hotspot/src/share/vm/c1/c1_Instruction.cpp index 7f578cb054f..fdb0ce89cd2 100644 --- a/hotspot/src/share/vm/c1/c1_Instruction.cpp +++ b/hotspot/src/share/vm/c1/c1_Instruction.cpp @@ -559,7 +559,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); From 6848dc8c89c635a8d2e00af6e67a79bac496833d Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Mon, 11 Apr 2011 23:20:41 -0700 Subject: [PATCH 064/144] 7035834: Bad @param tags in LayerUI.java Reviewed-by: rupashka --- jdk/src/share/classes/javax/swing/plaf/LayerUI.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/plaf/LayerUI.java b/jdk/src/share/classes/javax/swing/plaf/LayerUI.java index e118467aa99..e0eb1b0ed84 100644 --- a/jdk/src/share/classes/javax/swing/plaf/LayerUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/LayerUI.java @@ -710,8 +710,8 @@ public class LayerUI * * @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) */ From 09c93cbb251d83a3b4460c76f30ff936589359a9 Mon Sep 17 00:00:00 2001 From: David Holmes Date: Tue, 12 Apr 2011 02:53:06 -0400 Subject: [PATCH 065/144] 7034585: Adjust fillInStackTrace filtering to assist 6998871 Allow for one or more fillInStackTrace frames to be skipped Reviewed-by: mchung, kvn --- .../src/share/vm/classfile/javaClasses.cpp | 41 +++++++++++-------- hotspot/src/share/vm/classfile/vmSymbols.hpp | 1 + 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp index 62f6500a5d4..58c3b54666d 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.cpp +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp @@ -1444,32 +1444,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; } } diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index 81376926f07..47f5bca3346 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -330,6 +330,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") \ From 3382d837906e60cf093ac7189bb46efc25078659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20B=C3=A4ckman?= Date: Tue, 12 Apr 2011 09:04:57 +0200 Subject: [PATCH 066/144] 7026287: Asynchronous API sample Implement a chat server using the new asynchronous networking API Reviewed-by: hosterda, alanb --- jdk/make/mksample/nio/Makefile | 4 +- jdk/make/mksample/nio/chatserver/Makefile | 56 +++ .../sample/nio/chatserver/ChatServer.java | 179 ++++++++ .../share/sample/nio/chatserver/Client.java | 204 +++++++++ .../sample/nio/chatserver/ClientReader.java | 80 ++++ .../sample/nio/chatserver/DataReader.java | 38 ++ .../sample/nio/chatserver/MessageReader.java | 77 ++++ .../sample/nio/chatserver/NameReader.java | 111 +++++ .../share/sample/nio/chatserver/README.txt | 62 +++ jdk/test/sample/chatserver/ChatTest.java | 399 ++++++++++++++++++ 10 files changed, 1208 insertions(+), 2 deletions(-) create mode 100644 jdk/make/mksample/nio/chatserver/Makefile create mode 100644 jdk/src/share/sample/nio/chatserver/ChatServer.java create mode 100644 jdk/src/share/sample/nio/chatserver/Client.java create mode 100644 jdk/src/share/sample/nio/chatserver/ClientReader.java create mode 100644 jdk/src/share/sample/nio/chatserver/DataReader.java create mode 100644 jdk/src/share/sample/nio/chatserver/MessageReader.java create mode 100644 jdk/src/share/sample/nio/chatserver/NameReader.java create mode 100644 jdk/src/share/sample/nio/chatserver/README.txt create mode 100644 jdk/test/sample/chatserver/ChatTest.java 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/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 connections = Collections.synchronizedList(new ArrayList()); + 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() { + @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 ]"); + 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 reader; + private String userName; + private final StringBuilder messageBuffer = new StringBuilder(); + + private final Queue queue = new LinkedList(); + private boolean writing = false; + + public Client(AsynchronousSocketChannel channel, ClientReader reader) { + this.channel = channel; + this.reader = new AtomicReference(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() { + @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 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() { + @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 ] + + 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/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(); + } + } +} From 50017761892817b7a30e8303aa199c96c6a6064e Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 12 Apr 2011 02:40:23 -0700 Subject: [PATCH 067/144] 7035870: JSR 292: Zero support This adds support for JSR 292 to Zero. Reviewed-by: twisti --- .../cpu/zero/vm/bytecodeInterpreter_zero.hpp | 20 +- .../src/cpu/zero/vm/cppInterpreter_zero.cpp | 571 +++++++++++++++++- .../src/cpu/zero/vm/cppInterpreter_zero.hpp | 12 +- hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 13 +- .../src/cpu/zero/vm/methodHandles_zero.cpp | 17 +- .../vm/interpreter/bytecodeInterpreter.cpp | 75 ++- .../vm/interpreter/bytecodeInterpreter.hpp | 1 + 7 files changed, 694 insertions(+), 15 deletions(-) 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..7bef381f9a6 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(); 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/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<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 From f159608a012c3181818a4e9eb3baae7668962590 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20B=C3=A4ckman?= Date: Tue, 12 Apr 2011 13:14:05 +0200 Subject: [PATCH 068/144] 7026304: Fork-Join sample Implement a merge-sort sample using Fork-Join Reviewed-by: hosterda, chegar, dholmes --- jdk/make/mksample/Makefile | 4 +- jdk/make/mksample/forkjoin/Makefile | 41 +++ jdk/make/mksample/forkjoin/mergesort/Makefile | 51 ++++ .../sample/forkjoin/mergesort/MergeDemo.java | 287 ++++++++++++++++++ .../sample/forkjoin/mergesort/MergeSort.java | 128 ++++++++ jdk/test/sample/mergesort/MergeSortTest.java | 102 +++++++ 6 files changed, 611 insertions(+), 2 deletions(-) create mode 100644 jdk/make/mksample/forkjoin/Makefile create mode 100644 jdk/make/mksample/forkjoin/mergesort/Makefile create mode 100644 jdk/src/share/sample/forkjoin/mergesort/MergeDemo.java create mode 100644 jdk/src/share/sample/forkjoin/mergesort/MergeSort.java create mode 100644 jdk/test/sample/mergesort/MergeSortTest.java 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/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 " + + " "); + 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 iterations number of test sorts of a random array of element 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 job = pool.submit(new MergeSortTask(array, 0, array.length)); + job.join(); + } +} 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!"); + } + } + + +} From fc7a236fd5caa1d9db0a45c54a42e66742fefc9a Mon Sep 17 00:00:00 2001 From: Denis Fokin Date: Tue, 12 Apr 2011 19:06:57 +0400 Subject: [PATCH 069/144] 7030062: duplicate free Reviewed-by: dcherepanov --- jdk/make/sun/jpeg/Makefile | 2 +- jdk/src/share/classes/java/awt/Toolkit.java | 33 +++++++++++++++++++++ jdk/src/solaris/native/sun/awt/awt_mgrsel.c | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/jdk/make/sun/jpeg/Makefile b/jdk/make/sun/jpeg/Makefile index 78c53c461a1..ddd8e3bc7a8 100644 --- a/jdk/make/sun/jpeg/Makefile +++ b/jdk/make/sun/jpeg/Makefile @@ -74,7 +74,7 @@ ifeq ($(PLATFORM), linux) # volatile to prevent the optimization. However, this approach does not # work because we have to declare all variables as volatile in result. - OTHER_CFLAGS += -Wno-clobbered +# OTHER_CFLAGS += -Wno-clobbered endif include $(BUILDDIR)/common/Mapfile-vers.gmk diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java index 105bc1bf325..2f474e970e0 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(); @@ -2572,6 +2602,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/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); From 9fd280409ca58feec737666df229f58d4ce6cb8a Mon Sep 17 00:00:00 2001 From: Xue-Lei Andrew Fan Date: Tue, 12 Apr 2011 08:27:00 -0700 Subject: [PATCH 070/144] 6882437: CertPath/X509CertPathDiscovery/Test fails on jdk7/pit/b62 Pass trust anchors to CRL certification path building, support CRLs without AKID extension. Reviewed-by: mullan --- .../certpath/CrlRevocationChecker.java | 37 ++++---- .../certpath/DistributionPointFetcher.java | 93 ++++++++++--------- 2 files changed, 70 insertions(+), 60 deletions(-) diff --git a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java index 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 Set of TrustAnchors */ private void verifyRevocationStatus(X509Certificate currCert, PublicKey prevKey, boolean signFlag, boolean allowSeparateKey, - Set stackedCerts) throws CertPathValidatorException - { + Set stackedCerts, + Set 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 newAnchors = mAnchor == null - ? mParams.getTrustAnchors() - : Collections.singleton(mAnchor); + Set 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 true 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 Set of TrustAnchors> * @return a collection of approved crls (or an empty collection) */ private Collection verifyPossibleCRLs(Set crls, X509Certificate cert, boolean signFlag, PublicKey prevKey, - boolean[] reasonsMask) throws CertPathValidatorException - { + boolean[] reasonsMask, + Set 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 getCRLs(X509CRLSelector selector, boolean signFlag, PublicKey prevKey, String provider, List certStores, - boolean[] reasonsMask, TrustAnchor anchor) throws CertStoreException - { + boolean[] reasonsMask, + Set trustAnchors) throws CertStoreException { + if (USE_CRLDP == false) { return Collections.emptySet(); } @@ -121,7 +122,7 @@ class DistributionPointFetcher { DistributionPoint point = t.next(); Collection 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 getCRLs(X509CRLSelector selector, X509CertImpl certImpl, DistributionPoint point, boolean[] reasonsMask, boolean signFlag, PublicKey prevKey, String provider, - List certStores, TrustAnchor anchor) - { + List certStores, Set 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 trustAnchors, List 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 trustAnchors = new HashSet(); - if (anchor != null) { - trustAnchors.add(anchor); - } + Set 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; } } From b055efc73bc8b6252afe96abb75ea2e648802041 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Tue, 12 Apr 2011 12:25:15 -0400 Subject: [PATCH 071/144] 7035615: Address lint warnings for javax.sql.rowset & com.sun.rowset Reviewed-by: alanb, darcy --- .../com/sun/rowset/CachedRowSetImpl.java | 50 ++++++---------- .../com/sun/rowset/JdbcRowSetImpl.java | 24 ++++---- .../com/sun/rowset/JoinRowSetImpl.java | 18 +++--- .../classes/javax/sql/rowset/BaseRowSet.java | 58 +++++++++---------- .../javax/sql/rowset/RowSetMetaDataImpl.java | 12 +++- .../javax/sql/rowset/RowSetProvider.java | 8 +-- 6 files changed, 81 insertions(+), 89 deletions(-) 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 Vector object containing the Row * objects that comprise this CachedRowSetImpl object. * @serial */ - private Vector rvh; + private Vector rvh; + /** * The current postion of the cursor in this CachedRowSetImpl * object. @@ -293,12 +293,12 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern /** * The Vector holding the Match Columns */ - private Vector iMatchColumns; + private Vector iMatchColumns; /** * The Vector that will hold the Match Column names. */ - private Vector strMatchColumns; + private Vector 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(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(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector(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> 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 tMap = new TreeMap<>(); for (int i = 0; i toCollection(int column) throws SQLException { - Vector vec; - Row origRow; int nRows = numRows; - vec = new Vector(nRows); + Vector 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> 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> 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(getMaxRows()); } else{ - rvh = new Vector(getPageSize()); + rvh = new Vector(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 iMatchColumns; /** * The Vector that will hold the Match Column names. */ - private Vector strMatchColumns; + private Vector 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(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector(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(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector(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(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector(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(10); for(int i = 0; i < 10 ; i++) { iMatchColumns.add(i,Integer.valueOf(-1)); } - strMatchColumns = new Vector(10); + strMatchColumns = new Vector(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> 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 Vector object that contains the RowSet objects * that have been added to this JoinRowSet object. - */ - private Vector vecRowSetsInJOIN; + */ + private Vector vecRowSetsInJOIN; /** * The CachedRowSet object that encapsulates this @@ -78,13 +78,13 @@ public class JoinRowSetImpl extends WebRowSetImpl implements JoinRowSet { * for this JoinRowSet object. * The last join type set forms the basis of succeeding joins. */ - private Vector vecJoinType; + private Vector vecJoinType; /** * A Vector object containing the names of all the tables entering * the join. */ - private Vector vecTableNames; + private Vector vecTableNames; /** * An int 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(); crsInternal = new CachedRowSetImpl(); - vecJoinType = new Vector(); - vecTableNames = new Vector(); + vecJoinType = new Vector(); + vecTableNames = new Vector(); 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 indices = new ArrayList<>(); for(int i=0;iRowSetReaderImpl object - * that a given parameter is a Unicode stream. This - * RowSetReaderImpl object is provided as an extension of the - * SyncProvider abstract class defined in the - * SyncFactory static factory SPI mechanism. - */ -public static final int UNICODE_STREAM_PARAM = 0; + /** + * A constant indicating to a RowSetReaderImpl object + * that a given parameter is a Unicode stream. This + * RowSetReaderImpl object is provided as an extension of the + * SyncProvider abstract class defined in the + * SyncFactory static factory SPI mechanism. + */ + public static final int UNICODE_STREAM_PARAM = 0; -/** - * A constant indicating to a RowSetReaderImpl object - * that a given parameter is a binary stream. A - * RowSetReaderImpl object is provided as an extension of the - * SyncProvider abstract class defined in the - * SyncFactory static factory SPI mechanism. - */ -public static final int BINARY_STREAM_PARAM = 1; + /** + * A constant indicating to a RowSetReaderImpl object + * that a given parameter is a binary stream. A + * RowSetReaderImpl object is provided as an extension of the + * SyncProvider abstract class defined in the + * SyncFactory static factory SPI mechanism. + */ + public static final int BINARY_STREAM_PARAM = 1; -/** - * A constant indicating to a RowSetReaderImpl object - * that a given parameter is an ASCII stream. A - * RowSetReaderImpl object is provided as an extension of the - * SyncProvider abstract class defined in the - * SyncFactory static factory SPI mechanism. - */ -public static final int ASCII_STREAM_PARAM = 2; + /** + * A constant indicating to a RowSetReaderImpl object + * that a given parameter is an ASCII stream. A + * RowSetReaderImpl object is provided as an extension of the + * SyncProvider abstract class defined in the + * SyncFactory static factory SPI mechanism. + */ + public static final int ASCII_STREAM_PARAM = 2; /** * The InputStream 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> map; /** * A Vector object that holds the list of listeners * that have registered with this RowSet object. * @serial */ - private Vector listeners; + private Vector listeners; /** * A Vector object that holds the parameters set * for this RowSet object's current command. * @serial */ - private Hashtable params; // could be transient? + private Hashtable params; // could be transient? /** * Constructs a new BaseRowSet 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(); } /** @@ -542,7 +542,7 @@ public static final int ASCII_STREAM_PARAM = 2; * a RowSet implementation extending this class. */ protected void initParams() { - params = new Hashtable(); + params = new Hashtable(); } //-------------------------------------------------------------------- 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 unwrap(java.lang.Class 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() { - 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() { - public Object run() { + public String run() { return System.getProperty(propName); } }); From 31a03639b0775779c51943cae8165faf3fabe972 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Tue, 12 Apr 2011 14:32:03 -0400 Subject: [PATCH 072/144] 7007772: Address typos in javadoc for ResultSet Reviewed-by: ohair, smarks --- jdk/src/share/classes/java/sql/ResultSet.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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. * *

The number, types and properties of a ResultSet - * object's columns are provided by the ResulSetMetaData + * object's columns are provided by the ResultSetMetaData * object returned by the ResultSet.getMetaData method. * * @see Statement#executeQuery @@ -422,7 +422,7 @@ public interface ResultSet extends Wrapper, AutoCloseable { * of this ResultSet 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 LONGVARCHAR values. + * suitable for retrieving large LONGVARCHAR values. * The JDBC driver will * do any necessary conversion from the database format into ASCII. * From e7c5e104eabf6f034aa3bad2a9b745031cb73f0f Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Tue, 12 Apr 2011 12:39:55 -0700 Subject: [PATCH 073/144] 7034918: Integrate JAX-WS 2.2.4-b01 in to JDK 7 Reviewed-by: ramap --- jaxws/jaxws.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 3d4a927981e05ab5a95126f862a78fd2cece4236 Mon Sep 17 00:00:00 2001 From: "Daniel D. Daugherty" Date: Tue, 12 Apr 2011 13:36:38 -0700 Subject: [PATCH 074/144] 7035555: 4/4 attach/BasicTests.sh needs another tweak for Cygwin Test needs to properly detect missing AgentInitializationException. Clarify when exceptions are expected. Another Cygwin tweak. Reviewed-by: dsamersoff, ohair --- .../com/sun/tools/attach/ApplicationSetup.sh | 5 ++-- jdk/test/com/sun/tools/attach/BasicTests.java | 13 ++++++++-- jdk/test/com/sun/tools/attach/BasicTests.sh | 24 +++++++++++++------ 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/jdk/test/com/sun/tools/attach/ApplicationSetup.sh b/jdk/test/com/sun/tools/attach/ApplicationSetup.sh index a07fac420e2..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, 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 3f8f8571411..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, 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 @@ -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}; From 20fec807e52d427c178beec5f709d333e3aa646a Mon Sep 17 00:00:00 2001 From: Valerie Peng Date: Tue, 12 Apr 2011 15:57:28 -0700 Subject: [PATCH 075/144] 7001094: Can't initialize SunPKCS11 more times than PKCS11 driver maxSessionCount Changed SessionManager to keep track of session count for each instance Reviewed-by: mullan --- .../sun/security/pkcs11/SessionManager.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) 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 subList = pool.subList(0, i); subList.clear(); From 86875ab33d5f0ddf5cc9e10e956155c0ed0246f1 Mon Sep 17 00:00:00 2001 From: Valerie Peng Date: Tue, 12 Apr 2011 16:09:17 -0700 Subject: [PATCH 076/144] 6986789: Sun pkcs11 provider fails to parse path name containing "+" Modified to accept '+' as valid character. Reviewed-by: weijun --- .../classes/sun/security/pkcs11/Config.java | 1 + .../pkcs11/Provider/ConfigShortPath.java | 28 +++++++++++-------- .../sun/security/pkcs11/Provider/cspPlus.cfg | 4 +++ 3 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 jdk/test/sun/security/pkcs11/Provider/cspPlus.cfg diff --git a/jdk/src/share/classes/sun/security/pkcs11/Config.java b/jdk/src/share/classes/sun/security/pkcs11/Config.java index 243f49d0182..0a4eb27a101 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/test/sun/security/pkcs11/Provider/ConfigShortPath.java b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java index daa1ab3c1bf..dbc58bbe1f1 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,8 +22,8 @@ */ /** * @test - * @bug 6581254 - * @summary Allow "~" in config to support windows short path + * @bug 6581254 6986789 + * @summary Allow '~' and '+' in config file * @author Valerie Peng */ @@ -32,17 +32,21 @@ import java.io.*; public class ConfigShortPath { + private static final String[] configNames = { "csp.cfg", "cspPlus.cfg" }; + 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); - 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; + for (int i = 0; i < configNames.length; i++) { + String configFile = testSrc + File.separator + configNames[i]; + System.out.println("Testing against " + configFile); + 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; + } } } } 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 From c46387423a01d9e6f22e5a591a9a01e478d72c04 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Tue, 12 Apr 2011 20:56:16 -0700 Subject: [PATCH 077/144] 7034511: Loophole in typesafety Type-variable substutution takes upper bound of replaced captured type-variable Reviewed-by: dlsmith --- .../com/sun/tools/javac/code/Types.java | 2 +- .../javac/generics/7034511/T7034511a.java | 21 +++++++++++++++++++ .../javac/generics/7034511/T7034511a.out | 2 ++ .../javac/generics/7034511/T7034511b.java | 16 ++++++++++++++ .../javac/generics/7034511/T7034511b.out | 2 ++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 langtools/test/tools/javac/generics/7034511/T7034511a.java create mode 100644 langtools/test/tools/javac/generics/7034511/T7034511a.out create mode 100644 langtools/test/tools/javac/generics/7034511/T7034511b.java create mode 100644 langtools/test/tools/javac/generics/7034511/T7034511b.out diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java index 8de4750d4ac..6408a06e6f5 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 @@ -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 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 From 02daeca60ebf35f20c5cb048797c5a0d845b21e6 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Tue, 12 Apr 2011 20:58:06 -0700 Subject: [PATCH 078/144] 7034019: ClassCastException in javac with conjunction types Resolve.mostSpecific doesn't handle case of raw override Reviewed-by: dlsmith --- .../com/sun/tools/javac/comp/Resolve.java | 7 +-- .../javac/generics/7034019/T7034019a.java | 46 +++++++++++++++++++ .../javac/generics/7034019/T7034019b.java | 46 +++++++++++++++++++ .../javac/generics/7034019/T7034019c.java | 23 ++++++++++ .../javac/generics/7034019/T7034019c.out | 3 ++ .../javac/generics/7034019/T7034019d.java | 23 ++++++++++ .../javac/generics/7034019/T7034019d.out | 3 ++ 7 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019a.java create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019b.java create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019c.java create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019c.out create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019d.java create mode 100644 langtools/test/tools/javac/generics/7034019/T7034019d.out 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..94ddd16f584 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 @@ -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 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 From c45ccb0b5d7e591efa68e0472ce40c760f8dc493 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Wed, 13 Apr 2011 11:21:36 -0400 Subject: [PATCH 079/144] 7036251: Correct SQLPermission constructor javadocs for permission target names Reviewed-by: alanb --- jdk/src/share/classes/java/sql/SQLPermission.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 SQLPermission object with the specified name. - * The name is the symbolic name of the SQLPermission; currently, - * the only name allowed is "setLog". + * The name is the symbolic name of the SQLPermission. * * @param name the name of this SQLPermission object, which must - * be setLog + * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory}, + * or {@code setNetworkTimeout} * @throws NullPointerException if name is null. * @throws IllegalArgumentException if name is empty. @@ -134,10 +134,11 @@ public final class SQLPermission extends BasicPermission { * Creates a new SQLPermission object with the specified name. * The name is the symbolic name of the SQLPermission; the * actions String is currently unused and should be - * null. + * null. * * @param name the name of this SQLPermission object, which must - * be setLog + * be either {@code setLog}, {@code callAbort}, {@code setSyncFactory}, + * or {@code setNetworkTimeout} * @param actions should be null * @throws NullPointerException if name is null. * @throws IllegalArgumentException if name is empty. From 44505cde63cec0c3e8ac70c85e022f1f758342e3 Mon Sep 17 00:00:00 2001 From: Neil Richards Date: Wed, 13 Apr 2011 18:39:48 +0100 Subject: [PATCH 080/144] 6597112: referential integrity loophole during remote object export Reviewed-by: peterjones --- .../sun/rmi/transport/ObjectTable.java | 33 +++++----- .../exportObject/GcDuringExport.java | 65 +++++++++++++++++++ 2 files changed, 82 insertions(+), 16 deletions(-) create mode 100644 jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java 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/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."); + } +} From e9456bc9af34b197593913c94cd89d71e1a966f4 Mon Sep 17 00:00:00 2001 From: Jim Holmlund Date: Wed, 13 Apr 2011 11:35:43 -0700 Subject: [PATCH 081/144] 7032975: API files in javax.annotation.processing need to be updated for references to JLS 7032972: API files in javax.tools need to updated for references to JVM Spec with editions/hyperlinks 7032978: API files in javax.tools need to be updated for references to JLS with editions/hyperlinks Removed URLs and 'edition' references Reviewed-by: jjg, darcy --- langtools/make/build.properties | 15 ++++++++-- langtools/make/build.xml | 2 +- .../classes/com/sun/javadoc/ClassDoc.java | 8 +++--- .../com/sun/source/tree/AnnotationTree.java | 2 +- .../com/sun/source/tree/ArrayAccessTree.java | 2 +- .../com/sun/source/tree/ArrayTypeTree.java | 2 +- .../com/sun/source/tree/AssertTree.java | 2 +- .../com/sun/source/tree/AssignmentTree.java | 2 +- .../com/sun/source/tree/BinaryTree.java | 2 +- .../com/sun/source/tree/BlockTree.java | 2 +- .../com/sun/source/tree/BreakTree.java | 2 +- .../classes/com/sun/source/tree/CaseTree.java | 2 +- .../com/sun/source/tree/CatchTree.java | 2 +- .../com/sun/source/tree/ClassTree.java | 3 +- .../sun/source/tree/CompilationUnitTree.java | 2 +- .../source/tree/CompoundAssignmentTree.java | 2 +- .../tree/ConditionalExpressionTree.java | 2 +- .../com/sun/source/tree/ContinueTree.java | 2 +- .../com/sun/source/tree/DoWhileLoopTree.java | 2 +- .../sun/source/tree/EmptyStatementTree.java | 2 +- .../sun/source/tree/EnhancedForLoopTree.java | 2 +- .../source/tree/ExpressionStatementTree.java | 2 +- .../com/sun/source/tree/ExpressionTree.java | 2 +- .../com/sun/source/tree/ForLoopTree.java | 2 +- .../com/sun/source/tree/IdentifierTree.java | 2 +- .../classes/com/sun/source/tree/IfTree.java | 2 +- .../com/sun/source/tree/ImportTree.java | 2 +- .../com/sun/source/tree/InstanceOfTree.java | 2 +- .../sun/source/tree/LabeledStatementTree.java | 2 +- .../com/sun/source/tree/LiteralTree.java | 2 +- .../com/sun/source/tree/MemberSelectTree.java | 3 +- .../sun/source/tree/MethodInvocationTree.java | 2 +- .../com/sun/source/tree/MethodTree.java | 3 +- .../com/sun/source/tree/ModifiersTree.java | 3 +- .../com/sun/source/tree/NewArrayTree.java | 2 +- .../com/sun/source/tree/NewClassTree.java | 2 +- .../source/tree/ParameterizedTypeTree.java | 2 +- .../sun/source/tree/ParenthesizedTree.java | 2 +- .../sun/source/tree/PrimitiveTypeTree.java | 2 +- .../com/sun/source/tree/ReturnTree.java | 2 +- .../com/sun/source/tree/StatementTree.java | 2 +- .../com/sun/source/tree/SwitchTree.java | 2 +- .../com/sun/source/tree/SynchronizedTree.java | 2 +- .../com/sun/source/tree/ThrowTree.java | 2 +- .../classes/com/sun/source/tree/TryTree.java | 2 +- .../com/sun/source/tree/TypeCastTree.java | 2 +- .../sun/source/tree/TypeParameterTree.java | 2 +- .../com/sun/source/tree/UnaryTree.java | 2 +- .../com/sun/source/tree/VariableTree.java | 2 +- .../com/sun/source/tree/WhileLoopTree.java | 2 +- .../com/sun/source/tree/WildcardTree.java | 2 +- .../apt/mirror/util/DeclarationsImpl.java | 6 ++-- .../com/sun/tools/classfile/AccessFlags.java | 2 +- .../com/sun/tools/classfile/Annotation.java | 4 +-- .../AnnotationDefault_attribute.java | 2 +- .../classfile/BootstrapMethods_attribute.java | 2 +- .../com/sun/tools/classfile/ClassFile.java | 2 +- .../sun/tools/classfile/Code_attribute.java | 2 +- .../com/sun/tools/classfile/ConstantPool.java | 2 +- .../classfile/ConstantValue_attribute.java | 2 +- .../tools/classfile/Deprecated_attribute.java | 2 +- .../com/sun/tools/classfile/Descriptor.java | 2 +- .../classfile/EnclosingMethod_attribute.java | 2 +- .../tools/classfile/Exceptions_attribute.java | 2 +- .../classfile/InnerClasses_attribute.java | 2 +- .../com/sun/tools/classfile/Instruction.java | 2 +- .../classfile/LineNumberTable_attribute.java | 2 +- .../LocalVariableTable_attribute.java | 2 +- .../LocalVariableTypeTable_attribute.java | 2 +- .../com/sun/tools/classfile/Opcode.java | 2 +- .../RuntimeAnnotations_attribute.java | 2 +- ...RuntimeInvisibleAnnotations_attribute.java | 2 +- ...visibleParameterAnnotations_attribute.java | 2 +- ...RuntimeParameterAnnotations_attribute.java | 2 +- .../RuntimeVisibleAnnotations_attribute.java | 2 +- ...VisibleParameterAnnotations_attribute.java | 2 +- .../com/sun/tools/classfile/Signature.java | 2 +- .../tools/classfile/Signature_attribute.java | 2 +- .../SourceDebugExtension_attribute.java | 2 +- .../tools/classfile/SourceFile_attribute.java | 2 +- .../classfile/StackMapTable_attribute.java | 2 +- .../tools/classfile/Synthetic_attribute.java | 2 +- .../com/sun/tools/classfile/package.html | 4 +-- .../formats/html/HtmlDocletWriter.java | 5 ++-- .../doclets/internal/toolkit/util/Util.java | 5 ++-- .../com/sun/tools/javac/code/Symbol.java | 2 +- .../com/sun/tools/javac/code/Types.java | 11 ++++---- .../com/sun/tools/javac/comp/Attr.java | 4 +-- .../com/sun/tools/javac/comp/Check.java | 2 +- .../com/sun/tools/javac/comp/Flow.java | 4 +-- .../com/sun/tools/javac/comp/Resolve.java | 4 +-- .../classes/com/sun/tools/javac/jvm/Gen.java | 2 +- .../annotation/processing/Processor.java | 7 +++-- .../javax/lang/model/SourceVersion.java | 28 +++++++++---------- .../javax/lang/model/element/Element.java | 4 +-- .../javax/lang/model/element/Modifier.java | 2 +- .../lang/model/element/PackageElement.java | 4 +-- .../javax/lang/model/element/TypeElement.java | 2 +- .../lang/model/element/VariableElement.java | 4 +-- .../javax/lang/model/type/DeclaredType.java | 4 +-- .../javax/lang/model/type/TypeVariable.java | 4 +-- .../javax/lang/model/util/Elements.java | 8 +++--- .../classes/javax/lang/model/util/Types.java | 16 +++++------ .../classes/javax/tools/JavaCompiler.java | 8 ++++-- .../classes/javax/tools/JavaFileManager.java | 14 +++++----- .../classes/javax/tools/JavaFileObject.java | 6 ++-- .../processing/src/CheckNamesProcessor.java | 8 ++++-- 107 files changed, 184 insertions(+), 171 deletions(-) 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/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/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/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/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 6408a06e6f5..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). @@ -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 03d6180ef01..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 @@ -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 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 1c199ea4ebb..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 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 94ddd16f584..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()) @@ -1769,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 55e1a9d5747..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; 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/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/util/Elements.java b/langtools/src/share/classes/javax/lang/model/util/Elements.java index 7c68b4ffc48..035fcfb3ab9 100644 --- a/langtools/src/share/classes/javax/lang/model/util/Elements.java +++ b/langtools/src/share/classes/javax/lang/model/util/Elements.java @@ -95,7 +95,7 @@ public interface Elements { * @param e the element being examined * @return the documentation comment of the element, or {@code null} * if there is none - * @jls3 3.6 White Space + * @jls 3.6 White Space */ String getDocComment(Element e); @@ -114,7 +114,7 @@ public interface Elements { * @return the binary name * * @see TypeElement#getQualifiedName - * @jls3 13.1 The Form of a Binary + * @jls 13.1 The Form of a Binary */ Name getBinaryName(TypeElement type); @@ -210,8 +210,8 @@ public interface Elements { * @param type the type of which the first method is a member * @return {@code true} if and only if the first method overrides * the second - * @jls3 8.4.8 Inheritance, Overriding, and Hiding - * @jls3 9.4.1 Inheritance and Overriding + * @jls 8.4.8 Inheritance, Overriding, and Hiding + * @jls 9.4.1 Inheritance and Overriding */ boolean overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type); 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. */ From c2de8bb04de05adbf5148fe4ce8b929c92363b3e Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Wed, 13 Apr 2011 11:36:34 -0700 Subject: [PATCH 082/144] 6914617: JCE framework code signing certificate is expiring at the end of 2010 Reviewed-by: valeriep, weijun, mullan --- jdk/make/javax/crypto/Defs-jce.gmk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/make/javax/crypto/Defs-jce.gmk b/jdk/make/javax/crypto/Defs-jce.gmk index cfb70b45c48..141b195a29e 100644 --- a/jdk/make/javax/crypto/Defs-jce.gmk +++ b/jdk/make/javax/crypto/Defs-jce.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2009, 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 @@ -58,7 +58,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. From 2be59f90fdbfd1efef93f89f5966b6eeeb79cd00 Mon Sep 17 00:00:00 2001 From: Bradford Wetmore Date: Wed, 13 Apr 2011 11:59:18 -0700 Subject: [PATCH 083/144] 7031343: Provide API changes to support future GCM AEAD ciphers Reviewed-by: valeriep, xuelei --- .../javax/crypto/AEADBadTagException.java | 55 ++++ .../share/classes/javax/crypto/Cipher.java | 267 ++++++++++++++++-- .../share/classes/javax/crypto/CipherSpi.java | 112 +++++++- .../javax/crypto/spec/GCMParameterSpec.java | 149 ++++++++++ jdk/test/javax/crypto/Cipher/GCMAPI.java | 138 +++++++++ .../GCMParameterSpecTest.java | 130 +++++++++ 6 files changed, 826 insertions(+), 25 deletions(-) create mode 100644 jdk/src/share/classes/javax/crypto/AEADBadTagException.java create mode 100644 jdk/src/share/classes/javax/crypto/spec/GCMParameterSpec.java create mode 100644 jdk/test/javax/crypto/Cipher/GCMAPI.java create mode 100644 jdk/test/javax/crypto/spec/GCMParameterSpec/GCMParameterSpecTest.java diff --git a/jdk/src/share/classes/javax/crypto/AEADBadTagException.java b/jdk/src/share/classes/javax/crypto/AEADBadTagException.java new file mode 100644 index 00000000000..8587fcf3ce6 --- /dev/null +++ b/jdk/src/share/classes/javax/crypto/AEADBadTagException.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. 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; + +/** + * 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 { + + private static final long serialVersionUID = -488059093241685509L; + + /** + * Constructs a AEADBadTagException with no detail message. + */ + public AEADBadTagException() { + super(); + } + + /** + * 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 d6878d23eaf..bd17f023639 100644 --- a/jdk/src/share/classes/javax/crypto/Cipher.java +++ b/jdk/src/share/classes/javax/crypto/Cipher.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 @@ -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. + *

    + * 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 + * RFC 5116 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. + *

    + * 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) before the ciphertext is processed (via + * the {@code update} and {@code doFinal} methods). * - *

    Every implementation of the Java platform is required to support + *

    + *     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
    + * 
    + * Every implementation of the Java platform is required to support * the following standard Cipher transformations with the keysizes * in parentheses: *
      @@ -894,7 +921,7 @@ public class Cipher { * inputLen (in bytes). * *

      This call takes into account any unprocessed (buffered) data from a - * previous update call, and padding. + * previous update call, padding, and AEAD tagging. * *

      The actual output length of the next update or * doFinal 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). * + *

      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. + * *

      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 SecureRandom} @@ -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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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). * + *

      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. + * *

      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 SecureRandom} @@ -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 params 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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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 params 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). * + *

      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. + * *

      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 SecureRandom} @@ -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 params 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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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 params 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 * InvalidKeyException 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). * + *

      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. + * *

      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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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 { *

      Input data that may have been buffered during a previous * update 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. * *

      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 { *

      Input data that may have been buffered during a previous * update 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 output buffer, starting at * outputOffset 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 { *

      The bytes in the input buffer, and any input bytes that * may have been buffered during a previous update 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. * *

      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 inputOffset inclusive, and any input * bytes that may have been buffered during a previous update * 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. * *

      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 inputOffset inclusive, and any input * bytes that may have been buffered during a previous update * 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 output buffer. * *

      If the output 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 * update 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 output buffer, starting at * outputOffset 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. * *

      All input.remaining() bytes starting at - * input.position() are processed. The result is stored - * in the output buffer. + * input.position() 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). + *

      + * 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. + *

      + * 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). + *

      + * 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). + *

      + * 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 { * inputLen (in bytes). * *

      This call takes into account any unprocessed (buffered) data from a - * previous update call, and padding. + * previous update call, padding, and AEAD tagging. * *

      The actual output length of the next update or * doFinal 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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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 params 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). * + *

      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. + * *

      If this cipher (including its underlying feedback or padding scheme) * requires any random bytes (e.g., for parameter generation), it will get * them from random. @@ -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 params is null. */ protected abstract void engineInit(int opmode, Key key, @@ -548,6 +563,9 @@ public abstract class CipherSpi { * buffer, starting at inputOffset inclusive, and any input * bytes that may have been buffered during a previous update * 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. * *

      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 inputOffset inclusive, and any input * bytes that may have been buffered during a previous update * 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 output buffer, starting at * outputOffset 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. * *

      All input.remaining() bytes starting at - * input.position() are processed. The result is stored - * in the output buffer. + * input.position() 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 null * @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. + *

      + * 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). + *

      + * 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). + *

      + * 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. + *

      + * Simple block cipher modes (such as CBC) generally require only an + * initialization vector (such as {@code IvParameterSpec}), + * but GCM needs these parameters: + *

        + *
      • {@code IV}: Initialization Vector (IV)
      • + *
      • {@code tLen}: length (in bits) of authentication tag T
      • + *
      + *

      + * 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. +

      + * Please see RFC 5116 + * for more information on the Authenticated Encryption with + * Associated Data (AEAD) algorithm, and + * NIST Special Publication 800-38D, "NIST Recommendation for Block + * Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC." + *

      + * 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/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 + } + } +} From bbf16c0b3a9f164e3bfb0bb90f5f0d5a2d92746c Mon Sep 17 00:00:00 2001 From: Jim Holmlund Date: Wed, 13 Apr 2011 12:16:13 -0700 Subject: [PATCH 084/144] 7032960: API files in java.awt need to be updated for references to JVM Spec with editions/hyperlinks 7032965: API files in java.io need to updated for references to JVM Spec with editions/hyperlinks 7032958: API files in java.lang need to updated for references to JLS with editions/hyperlinks 7032961: API files in java.lang need to updated for references to JVM with editions/hyperlinks 7032976: API files in javax.lang need to be updated for references to JLS with editions/hyperlinks 7032959: API files in java.util need to updated for references to JLS with editions/hyperlinks 7032962: API files in java.util need to updated for references to JVM Spec with editions/hyperlinks 7032967: API files in java.security need to updated for references to JVM Spec with editions/hyperlinks 7032955: API files in java.math need to updated for references to JLS with editions/hyperlinks Removed URLs and 'edition' references Reviewed-by: darcy --- jdk/make/docs/Makefile | 9 +-- jdk/make/jpda/jdwp/jdwp.spec | 64 +++++++++---------- .../classes/com/sun/beans/TypeResolver.java | 4 +- .../com/sun/java/util/jar/pack/package.html | 4 +- .../share/classes/com/sun/jdi/Accessible.java | 9 +-- .../share/classes/com/sun/jdi/ArrayType.java | 8 +-- .../com/sun/jdi/ClassLoaderReference.java | 8 +-- .../com/sun/jdi/ClassNotLoadedException.java | 6 +- .../share/classes/com/sun/jdi/ClassType.java | 12 ++-- .../classes/com/sun/jdi/LocalVariable.java | 4 +- jdk/src/share/classes/com/sun/jdi/Method.java | 6 +- .../classes/com/sun/jdi/ObjectReference.java | 19 ++---- .../classes/com/sun/jdi/ReferenceType.java | 9 +-- .../classes/com/sun/jdi/TypeComponent.java | 4 +- .../java/awt/doc-files/AWTThreadIssues.html | 10 +-- jdk/src/share/classes/java/io/Console.java | 14 ++-- .../share/classes/java/io/PrintStream.java | 16 ++--- .../share/classes/java/io/PrintWriter.java | 16 ++--- .../classes/java/lang/AssertionError.java | 36 +++++------ jdk/src/share/classes/java/lang/Byte.java | 6 +- jdk/src/share/classes/java/lang/Class.java | 18 +++--- .../share/classes/java/lang/ClassLoader.java | 31 ++++----- jdk/src/share/classes/java/lang/Double.java | 11 ++-- jdk/src/share/classes/java/lang/Enum.java | 5 +- jdk/src/share/classes/java/lang/Error.java | 2 +- .../share/classes/java/lang/Exception.java | 2 +- jdk/src/share/classes/java/lang/Float.java | 7 +- jdk/src/share/classes/java/lang/Integer.java | 6 +- jdk/src/share/classes/java/lang/Long.java | 6 +- jdk/src/share/classes/java/lang/Object.java | 5 +- jdk/src/share/classes/java/lang/Override.java | 2 +- jdk/src/share/classes/java/lang/Package.java | 7 +- .../classes/java/lang/RuntimeException.java | 2 +- .../share/classes/java/lang/SafeVarargs.java | 4 +- jdk/src/share/classes/java/lang/Short.java | 6 +- jdk/src/share/classes/java/lang/String.java | 13 ++-- .../share/classes/java/lang/Throwable.java | 2 +- .../java/lang/annotation/Annotation.java | 5 +- .../lang/instrument/ClassFileTransformer.java | 6 +- .../java/lang/instrument/Instrumentation.java | 10 +-- .../java/lang/invoke/package-info.java | 4 +- .../java/lang/reflect/Constructor.java | 17 +++-- .../classes/java/lang/reflect/Field.java | 4 +- .../java/lang/reflect/GenericDeclaration.java | 4 +- .../classes/java/lang/reflect/Method.java | 13 ++-- .../classes/java/lang/reflect/Modifier.java | 35 ++++------ .../share/classes/java/math/BigDecimal.java | 59 ++++++++--------- .../share/classes/java/math/BigInteger.java | 44 ++++++------- .../java/security/SecureClassLoader.java | 11 ++-- .../share/classes/java/util/Formatter.java | 12 ++-- .../share/classes/java/util/Properties.java | 17 +++-- .../java/util/PropertyResourceBundle.java | 5 +- .../util/concurrent/atomic/package-info.java | 5 +- .../java/util/concurrent/locks/Lock.java | 4 +- .../java/util/concurrent/package-info.java | 5 +- .../share/classes/java/util/jar/Pack200.java | 4 +- .../classes/java/util/regex/Pattern.java | 17 ++--- .../javax/management/remote/package.html | 7 +- jdk/src/share/classes/sun/misc/FpUtils.java | 16 ++--- 59 files changed, 316 insertions(+), 381 deletions(-) diff --git a/jdk/make/docs/Makefile b/jdk/make/docs/Makefile index 520272b5f5a..273c664efd5 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/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/src/share/classes/com/sun/beans/TypeResolver.java b/jdk/src/share/classes/com/sun/beans/TypeResolver.java index a24d1af8e44..bd6a4f04fde 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 section 4.6 - * of Java Language Specification. + * that is described in section 4.6 of + * The Java™ Language Specification. * * @param type the array of types to convert * @return a corresponding class 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 : -http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html +Class File Specification: Chapter 4 of +The Java™ Virtual Machine Specification

    • Hypertext Transfer Protocol -- HTTP/1.1 : 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 JavaTM * programming language modifiers, encoded in an integer. *

      - * The modifier encodings are defined in the - * Java Virtual Machine - * Specification, in the access_flag tables for - * classes, - * fields, and - * methods. + * The modifier encodings are defined in + * The Java™ Virtual Machine Specification + * in the access_flag 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. *

      * Note: The component type of a array will always be - * created or loaded before the array - see the - * Java Virtual - * Machine Specification, section - * 5.3.3 - * Creating Array Classes. + * created or loaded before the array - see + * The Java™ Virtual Machine Specification, + * 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 { *

      * No ordering of the returned list is guaranteed. *

      - * See the revised - * Java - * Virtual Machine Specification section - * 5.3 - * Creation and Loading + * See + * The Java™ Virtual Machine Specification, + * section 5.3 - Creation and Loading * for more information on the initiating classloader. *

      * 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 initiating class * loader for the class in question.) - * See the Java - * Virtual Machine Specification for - * more details. + * See + * The Java™ Virtual Machine Specification + * 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 - * Java Language Specification. - * section - * 5.2 + * See Section 5.2 of + * The Java™ Language Specification * for more information on assignment compatibility. *

      * 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 - * Java Language Specification. - * section - * 5.2 + * See section 5.2 of + * The Java™ Language Specification * for more information on assignment compatibility. *

      * 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 { /** * Gets the generic signature for this variable if there is one. * Generic signatures are described in the - * - * "JavaTM - * Virtual Machine Specification, 3rd Edition. + * The Java™ Virtual Machine Specification. * * @return a string containing the generic signature, or null * 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 { /** * Determine if this method is a bridge method. Bridge - * methods are defined in the - * - * "JavaTM - * Language Specification, 3rd Edition. + * methods are defined in + * The Java™ Language Specification. * * @return true 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 - * JavaTM Language Specification. - * section - * 5.2 + * See section 5.2 of + * The Java™ Language Specification * 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 - * Java Language Specification. - * section - * 5.2 + * See section 5.2 of + * The Java™ Language Specification * for more information on assignment compatibility. *

      * By default, the method is invoked using dynamic lookup as - * documented in the - * - * Java Language Specification - * second edition, section - * 15.12.4.4; + * documented in section 15.12.4.4 of + * The Java™ Language Specification * 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 - * - * JavaTM Language Specification. + * classes, interfaces, and array types as defined in + * The Java™ Language Specification. * 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 - * - * "JavaTM - * Virtual Machine Specification, 3rd Edition. + * The Java™ Virtual Machine Specification. * * @return a string containing the generic signature, or null * 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 - * - * "JavaTM - * Virtual Machine Specification, 3rd Edition. + * The Java™ Virtual Machine Specification. * * @return a string containing the generic signature, or null * if there is no generic signature. 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 33f64137dcd..55099f44aa4 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.

      Auto-shutdown

      -According to The -JavaTM Virtual Machine Specification, -Second edition (see §2.17.9 -and §2.19), +According to +The Java™ Virtual Machine Specification, +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 main method of some class. The virtual machine terminates all its activity and exits when @@ -183,7 +182,8 @@ non-daemon thread that blocks forever. <...> -The Java Virtual Machine Specification guarantees +The Java™ Virtual Machine Specification + guarantees that the JVM doesn't exit until this thread terminates. diff --git a/jdk/src/share/classes/java/io/Console.java b/jdk/src/share/classes/java/io/Console.java index 9bfbaf00497..50a9718019b 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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. + * The Java™ Virtual Machine Specification. * * @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 Java - * Virtual Machine Specification. + * The Java™ Virtual Machine Specification. * * @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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * 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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * 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(expression) * * has as its detail message the string conversion of - * expression (as defined in - * The Java Language Specification, Second Edition, - * - * Section 15.18.1.1), regardless of the type of expression. + * expression (as defined in section 15.18.1.1 of + * The Java™ Language Specification), + * regardless of the type of expression. * * @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 The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * defined in section 15.18.1.1 of + * The Java™ Language Specification. *

      * If the specified object is an instance of {@code Throwable}, it * becomes the cause 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 boolean, which is converted to - * a string as defined in The Java Language Specification, - * Second Edition, Section 15.18.1.1. + * a string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 char, which is converted to a - * string as defined in The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 int, which is converted to a - * string as defined in The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 long, which is converted to a - * string as defined in The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 float, which is converted to a - * string as defined in The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 double, which is converted to a - * string as defined in The Java Language Specification, Second - * Edition, Section 15.18.1.1. + * string as defined in section 15.18.1.1 of + * The Java™ Language Specification. * * @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 { * * * DecimalNumeral, HexDigits, and OctalDigits - * are defined in §3.10.1 - * of the Java - * Language Specification. + * are as defined in section 3.10.1 of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. * *

      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/Class.java b/jdk/src/share/classes/java/lang/Class.java index db76523ced3..b22c3b67300 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.*; * * *

      It is also possible to get the {@code Class} object for a named - * type (or for void) using a class literal - * (JLS Section 15.8.2). + * type (or for void) using a class literal. See Section 15.8.2 of + * The Java™ Language Specification. * For example: * *

      @@ -521,7 +521,8 @@ public final * *

      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 + * The Java™ Language Specification. * *

      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 + * The Java™ Virtual Machine Specification * @since 1.5 */ public TypeVariable>[] 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 + * The Java™ Virtual Machine Specification * @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 + * The Java™ Virtual Machine Specification * @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; *

      Binary names

      * *

      Any class name provided as a {@link String} parameter to methods in - * ClassLoader must be a binary name as defined by the Java Language Specification. + * ClassLoader must be a binary name as defined by + * The Java™ Language Specification. * *

      Examples of valid class names include: *

      @@ -531,9 +531,8 @@ public abstract class ClassLoader {
            * @param  b
            *         The bytes that make up the class data.  The bytes in positions
            *         off through off+len-1 should have the format
      -     *         of a valid class file as defined by the Java Virtual
      -     *         Machine Specification.
      +     *         of a valid class file as defined by
      +     *         The Java™ Virtual Machine Specification.
            *
            * @param  off
            *         The start offset in b 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
            *         off through off+len-1 should have the format
      -     *         of a valid class file as defined by the Java Virtual
      -     *         Machine Specification.
      +     *         of a valid class file as defined by
      +     *         The Java™ Virtual Machine Specification.
            *
            * @param  off
            *         The start offset in b 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
            *         off through off+len-1 should have the format
      -     *         of a valid class file as defined by the Java Virtual
      -     *         Machine Specification.
      +     *         of a valid class file as defined by
      +     *         The Java™ Virtual Machine Specification.
            *
            * @param  off
            *         The start offset in b of the class data
      @@ -838,8 +835,7 @@ public abstract class ClassLoader {
            *         The bytes that make up the class data. The bytes from positions
            *         b.position() through b.position() + b.limit() -1
            *          should have the format of a valid class file as defined by
      -     *         the Java Virtual
      -     *         Machine Specification.
      +     *         The Java™ Virtual Machine Specification.
            *
            * @param  protectionDomain
            *         The ProtectionDomain of the class, or null.
      @@ -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 c has
            * already been linked, then this method simply returns. Otherwise, the
      -     * class is linked as described in the "Execution" chapter of the Java Language
      -     * Specification.
      +     * class is linked as described in the "Execution" chapter of
      +     * The Java™ Language Specification.
            * 

      * * @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 null value indicates the unnamed * package that is "current" - * (Java Language - * Specification, section 7.4.2). + * (see section 7.4.2 of + * The Java™ Language Specification.) * * @param enabled * true 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 { * where Sign, FloatingPointLiteral, * HexNumeral, HexDigits, SignedInteger and * FloatTypeSuffix are as defined in the lexical structure - * sections of the Java Language - * Specification. If {@code s} does not have the form of + * sections of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. + * If {@code s} does not have the form of * a FloatValue, 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 { * // 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 + * // The Java™ Language Specification. * * // 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 The Java™ Language Specification, Third - * Edition, §8.9. + * found in section 8.9 of + * The Java™ Language Specification. * *

      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 { * where Sign, FloatingPointLiteral, * HexNumeral, HexDigits, SignedInteger and * FloatTypeSuffix are as defined in the lexical structure - * sections of the Java Language - * Specification. If {@code s} does not have the form of + * sections of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. + * If {@code s} does not have the form of * a FloatValue, 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 { *

      * * DecimalNumeral, HexDigits, and OctalDigits - * are defined in §3.10.1 - * of the Java - * Language Specification. + * are as defined in section 3.10.1 of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. * *

      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 { *

      * * DecimalNumeral, HexDigits, and OctalDigits - * are defined in §3.10.1 - * of the Java - * Language Specification. + * are as defined in section 3.10.1 of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. * *

      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/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 The Java - * Language Specification, Third Edition (15.8.2 Class - * Literals) + * @see Class Literals, section 15.8.2 of + * The Java™ Language Specification. */ 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 75bb658af44..69828e9d537 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 - * Java Language Specification, Third Edition - * - * §6.5.3, for example, {@code java.lang} + * @return The fully-qualified name of this package as defined in section 6.5.3 of + * The Java™ Language Specification, + * 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.*; * *

    * - * @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 { * * * DecimalNumeral, HexDigits, and OctalDigits - * are defined in §3.10.1 - * of the Java - * Language Specification. + * are as defined in section 3.10.1 of + * The Java™ Language Specification, + * except that underscores are not accepted between digits. * *

    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/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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -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 Java - * Virtual Machine Specification. The behaviour on a + * The Java™ Virtual Machine Specification. + * The behaviour on a * null argument depends on the conversion. * @@ -3066,9 +3066,8 @@ public final class String * if and only if s.equals(t) is true. *

    * All literal strings and string-valued constant expressions are - * interned. String literals are defined in §3.10.5 of the - * Java Language - * Specification + * interned. String literals are defined in section 3.10.5 of the + * The Java™ Language Specification. * * @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 The - * Java™ Language Specification, Third Edition, §9.6. + * More information about annotation types can be found in section 9.6 of + * The Java™ Language Specification. * * @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. *

    - * Note the term class file is used as defined in the chapter - * The class File Format - * of The Java Virtual Machine Specification, to mean a sequence + * Note the term class file is used as defined in section 3.1 of + * The Java™ Virtual Machine Specification, + * 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. * - *

    The Java Virtual Machine - * Specification specifies that a subsequent attempt to resolve a symbolic + *

    + * The Java™ Virtual Machine Specification + * 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 jarfile and this is provided as the * parameter to the appendToClassPathForInstrumentation method. * - *

    The Java Virtual Machine - * Specification specifies that a subsequent attempt to resolve a symbolic + *

    + * The Java™ Virtual Machine Specification + * 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. *

    - * The rules of section 5.4.3 of the - * JVM Specification + * The rules of section 5.4.3 of + * The Java™ Virtual Machine Specification * 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 + * The Java™ Virtual Machine Specification * @since 1.5 */ public TypeVariable>[] 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 + * The Java™ Virtual Machine Specification * @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 + * The Java™ Virtual Machine Specification * @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 * *

    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 The Java Language - * Specification, section 15.9.3. + * to be the enclosing instance; see section 15.9.3 of + * The Java™ Language Specification. * *

    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 + * The Java™ Language Specification. * @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 + * The Java™ Virtual Machine Specification * @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 + * The Java™ Virtual Machine Specification */ 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 + * The Java™ Virtual Machine Specification * @since 1.5 */ public TypeVariable[] 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 + * The Java™ Virtual Machine Specification * @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 + * The Java™ Virtual Machine Specification * @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 + * The Java™ Virtual Machine Specification * @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 The - * JavaTM Virtual Machine Specification, Second - * edition tables - * 4.1, - * 4.4, - * 4.5, and - * 4.7. + * representing the modifiers are taken from the tables in sections 4.1, 4.4, 4.5, and 4.7 of + * The Java™ Virtual Machine Specification. * * @see Class#getModifiers() * @see Member#getModifiers() @@ -214,14 +208,8 @@ class Modifier { * public final synchronized strictfp * * The modifier names are returned in an order consistent with the - * suggested modifier orderings given in The - * Java Language Specification, Second Edition sections - * §8.1.1, - * §8.3.1, - * §8.4.3, - * §8.8.3, and - * §9.1.1. + * suggested modifier orderings given in sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1 of + * The Java™ Language Specification. * The full modifier ordering used by this method is: *

    {@code * public protected private abstract static final transient @@ -269,9 +257,8 @@ class Modifier { } /* - * Access modifier flag constants from The Java Virtual - * Machine Specification, Second Edition, 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 + * The Java™ Virtual Machine Specification */ /** @@ -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 { /** * Converts this {@code BigDecimal} to a {@code BigInteger}. - * This conversion is analogous to a narrowing - * primitive conversion from {@code double} to - * {@code long} as defined in the Java Language - * Specification: any fractional part of this + * This conversion is analogous to the + * narrowing primitive conversion from {@code double} to + * {@code long} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { } /** - * Converts this {@code BigDecimal} to a {@code long}. This - * conversion is analogous to a narrowing - * primitive conversion from {@code double} to - * {@code short} as defined in the Java Language - * Specification: any fractional part of this + * Converts this {@code BigDecimal} to a {@code long}. + * This conversion is analogous to the + * narrowing primitive conversion from {@code double} to + * {@code short} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { } /** - * Converts this {@code BigDecimal} to an {@code int}. This - * conversion is analogous to a narrowing - * primitive conversion from {@code double} to - * {@code short} as defined in the Java Language - * Specification: any fractional part of this + * Converts this {@code BigDecimal} to an {@code int}. + * This conversion is analogous to the + * narrowing primitive conversion from {@code double} to + * {@code short} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this {@code BigDecimal} to a {@code float}. - * This conversion is similar to the narrowing - * primitive conversion from {@code double} to - * {@code float} defined in the Java Language - * Specification: if this {@code BigDecimal} has too great a + * This conversion is similar to the + * narrowing primitive conversion from {@code double} to + * {@code float} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this {@code BigDecimal} to a {@code double}. - * This conversion is similar to the narrowing - * primitive conversion from {@code double} to - * {@code float} as defined in the Java Language - * Specification: if this {@code BigDecimal} has too great a + * This conversion is similar to the + * narrowing primitive conversion from {@code double} to + * {@code float} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this BigInteger to an {@code int}. This - * conversion is analogous to a narrowing - * primitive conversion from {@code long} to - * {@code int} as defined in the Java Language - * Specification: if this BigInteger is too big to fit in an + * conversion is analogous to a + * narrowing primitive conversion from {@code long} to + * {@code int} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this BigInteger to a {@code long}. This - * conversion is analogous to a narrowing - * primitive conversion from {@code long} to - * {@code int} as defined in the Java Language - * Specification: if this BigInteger is too big to fit in a + * conversion is analogous to a + * narrowing primitive conversion from {@code long} to + * {@code int} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this BigInteger to a {@code float}. This - * conversion is similar to the narrowing - * primitive conversion from {@code double} to - * {@code float} defined in the Java Language - * Specification: if this BigInteger has too great a magnitude + * conversion is similar to the + * narrowing primitive conversion from {@code double} to + * {@code float} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 { /** * Converts this BigInteger to a {@code double}. This - * conversion is similar to the narrowing - * primitive conversion from {@code double} to - * {@code float} defined in the Java Language - * Specification: if this BigInteger has too great a magnitude + * conversion is similar to the + * narrowing primitive conversion from {@code double} to + * {@code float} as defined in section 5.1.3 of + * The Java™ Language Specification: + * 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 4f774ca8f7d..8d72a0f0c8c 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 off through off+len-1 - * should have the format of a valid class file as defined - * by the - * Java - * Virtual Machine Specification. + * should have the format of a valid class file as defined by + * The Java™ Virtual Machine Specification. * @param off the start offset in b of the class data * @param len the length of the class data * @param cs the associated CodeSource, or null 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 * b.position() through b.position() + b.limit() -1 - * should have the format of a valid class file as defined by the - * Java Virtual - * Machine Specification. + * should have the format of a valid class file as defined by + * The Java™ Virtual Machine Specification. * @param cs the associated CodeSource, or null if none * @return the Class object created from the data, * and optional CodeSource. 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; *
    * *

    The maximum number of arguments is limited by the maximum dimension of a - * Java array as defined by the Java Virtual Machine - * Specification. If the argument index is does not correspond to an + * Java array as defined by + * The Java™ Virtual Machine Specification. + * If the argument index is does not correspond to an * available argument, then a {@link MissingFormatArgumentException} is thrown. * *

    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 Java - * Virtual Machine Specification. + * The Java™ Virtual Machine Specification. * * @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 Java - * Virtual Machine Specification + * The Java™ Virtual Machine Specification. * * @throws IllegalFormatException * If a format string contains an illegal syntax, a format 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 - * Unicode escapes - * ; only a single 'u' character is allowed in an escape + * Unicode escapes as defined in section 3.3 of + * The Java™ Language Specification; + * 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 { * * Characters in keys and elements can be represented in escape * sequences similar to those used for character and string literals - * (see §3.3 - * and §3.10.6 - * of the Java Language Specification). + * (see sections 3.3 and 3.10.6 of + * The Java™ Language Specification). * * The differences from the character escape sequences and Unicode * escapes used for characters and strings are: @@ -326,8 +324,9 @@ class Properties extends Hashtable { * {@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 - * Unicode escapes. + * are represented in keys and elements using Unicode escapes as defined in + * section 3.3 of + * The Java™ Language Specification. *

    * 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 - * Unicode Escapes, + * that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes + * as defined in section 3.3 of + * The Java™ Language Specification * whereas the other constructor which takes a Reader does not have that limitation. * * @see ResourceBundle 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 02ec9ee3963..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 @@ -80,9 +80,8 @@ * * *

    The memory effects for accesses and updates of atomics generally - * follow the rules for volatiles, as stated in - * The Java Language - * Specification, Third Edition (17.4 Memory Model): + * follow the rules for volatiles, as stated in section 17.4 of + * The Java™ Language Specification. * *

      * 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 0751e5cb37a..8ed346c2914 100644 --- a/jdk/src/share/classes/java/util/concurrent/locks/Lock.java +++ b/jdk/src/share/classes/java/util/concurrent/locks/Lock.java @@ -120,8 +120,8 @@ import java.util.concurrent.TimeUnit; * *

      All {@code Lock} implementations must enforce the same * memory synchronization semantics as provided by the built-in monitor - * lock, as described in - * The Java Language Specification, Third Edition (17.4 Memory Model): + * lock, as described in section 17.4 of + * The Java™ Language Specification: *

        *
      • A successful {@code lock} operation has the same memory * synchronization effects as a successful Lock action. 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 e1fce2f036a..8116e82cffa 100644 --- a/jdk/src/share/classes/java/util/concurrent/package-info.java +++ b/jdk/src/share/classes/java/util/concurrent/package-info.java @@ -218,8 +218,9 @@ * *

        Memory Consistency Properties

        * - * - * Chapter 17 of the Java Language Specification defines the + * Chapter 17 of + * The Java™ Language Specification + * defines the * happens-before 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/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 - * http://java.sun.com/docs/books/vmspec/html/ClassFile.doc.html. + * as specified in + * The Java™ Virtual Machine Specification. *

        * 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/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index e0494ab4292..cf738d095b5 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. * *

        Backslashes within string literals in Java source code are interpreted - * as required by the Java Language - * Specification as either Unicode - * escapes or other character - * escapes. It is therefore necessary to double backslashes in string + * as required by + * The Java™ Language Specification + * 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 * "\b", for example, matches a single backspace character when @@ -525,9 +522,9 @@ import java.util.Arrays; * Canonical Equivalents. * *

        Unicode escape sequences such as \u2014 in Java source code - * are processed as described in \u00A73.3 - * of the Java Language Specification. Such escape sequences are also + * are processed as described in section 3.3 of + * The Java™ Language Specification. + * 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 "\u2014" and "\\u2014", 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

        The formal grammar for connection ids that follow this - convention is as follows (using the grammar - notation from The Java Language Specification, Second - Edition):

        - + convention is as follows (using the grammar notation from section 2.4 of + The Java™ Language Specification):

         ConnectionId:
             Protocol : ClientAddressopt Space ClientIdopt Space ArbitraryText
        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{@code scale_factor} rounded as if performed
              * by a single correctly rounded floating-point multiply to a
        -     * member of the double value set.  See §4.2.3
        -     * of the Java
        -     * Language Specification for a discussion of floating-point
        +     * member of the double value set.  See section 4.2.3 of
        +     * The Java™ Language Specification
        +     * 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{@code scale_factor} rounded as if performed
              * by a single correctly rounded floating-point multiply to a
        -     * member of the float value set.  See §4.2.3
        -     * of the Java
        -     * Language Specification 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
        +     * The Java™ Language Specification
        +     * 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
        
        From aac4b1553e5f55176f41d400130d05dc8e1e2629 Mon Sep 17 00:00:00 2001
        From: Igor Veresov 
        Date: Wed, 13 Apr 2011 14:33:03 -0700
        Subject: [PATCH 085/144] 6988308: assert((cnt > 0.0f) && (prob > 0.0f))
         failed: Bad frequency assignment in if
        
        Make sure cnt doesn't become negative and integer overflow doesn't happen.
        
        Reviewed-by: kvn, twisti
        ---
         hotspot/src/share/vm/opto/parse2.cpp | 9 +++++----
         1 file changed, 5 insertions(+), 4 deletions(-)
        
        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;
        
        From 5ef43cd3d8b91af26a6faea4a99b63de3a18c27c Mon Sep 17 00:00:00 2001
        From: Phil Race 
        Date: Wed, 13 Apr 2011 15:17:42 -0700
        Subject: [PATCH 086/144] 7036275: EUDC character is not displayed on Swing if
         ClearType is enabled
        
        Reviewed-by: igor, jgodinez
        ---
         jdk/src/windows/classes/sun/awt/Win32FontManager.java | 5 ++++-
         1 file changed, 4 insertions(+), 1 deletion(-)
        
        diff --git a/jdk/src/windows/classes/sun/awt/Win32FontManager.java b/jdk/src/windows/classes/sun/awt/Win32FontManager.java
        index b2dd894e490..40ed72afbcb 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) {
                                 }
                             }
        
        From 2b73acfa12e6fa72574aa69b03ae64f41cad8524 Mon Sep 17 00:00:00 2001
        From: Bradford Wetmore 
        Date: Wed, 13 Apr 2011 16:12:49 -0700
        Subject: [PATCH 087/144] 6626257: Update SWAN-specific webcaching to Oracle
         environment in the regression tests
        
        Reviewed-by: valeriep
        ---
         .../sun/net/InetAddress/nameservice/dns/cname.sh     | 12 ++++++------
         1 file changed, 6 insertions(+), 6 deletions(-)
        
        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 ''
        
        From 20a3437a74ef88922766488e55773b86b52efd15 Mon Sep 17 00:00:00 2001
        From: John Cuthbertson 
        Date: Wed, 13 Apr 2011 17:56:43 -0700
        Subject: [PATCH 088/144] 7035117: G1: nsk/stress/jni/jnistress002 fails with
         assertion failure
        
        Allow long type for offset in G1 code in compiler implementations of Unsafe.getObject
        
        Reviewed-by: never, iveresov
        ---
         .../src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp   |  2 +-
         hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp   |  2 +-
         hotspot/src/share/vm/c1/c1_LIRGenerator.cpp   | 27 +++++++++++++++----
         hotspot/src/share/vm/opto/library_call.cpp    |  2 +-
         4 files changed, 25 insertions(+), 8 deletions(-)
        
        diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
        index 39186972dd3..8ea114f7c23 100644
        --- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
        +++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp
        @@ -489,7 +489,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
         
           // Is marking active?
           assert(thread()->is_register(), "precondition");
        -  Register thread_reg = thread()->as_register();
        +  Register thread_reg = NOT_LP64(thread()->as_register()) LP64_ONLY(thread()->as_register_lo());
         
           Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() +
                                                PtrQueue::byte_offset_of_active()));
        diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
        index 92482427692..a83f9311429 100644
        --- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
        +++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp
        @@ -523,7 +523,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) {
         
           // Is marking active?
           assert(thread()->is_register(), "precondition");
        -  Register thread_reg = thread()->as_register();
        +  Register thread_reg = NOT_LP64(thread()->as_register()) LP64_ONLY(thread()->as_register_lo());
         
           Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() +
                                                PtrQueue::byte_offset_of_active()));
        diff --git a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
        index ee9f1abf78e..5e7dd27bdf0 100644
        --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
        +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp
        @@ -2062,9 +2062,12 @@ void LIRGenerator::do_UnsafeGetObject(UnsafeGetObject* x) {
             bool gen_source_check = true;       // Assume the code stub has to check the src object for null.
         
             if (off.is_constant()) {
        -      jint off_con = off.get_jint_constant();
        +      jlong off_con = (off.type()->is_int() ?
        +                        (jlong) off.get_jint_constant() :
        +                        off.get_jlong_constant());
         
        -      if (off_con != java_lang_ref_Reference::referent_offset) {
        +
        +      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.
        @@ -2112,15 +2115,29 @@ void LIRGenerator::do_UnsafeGetObject(UnsafeGetObject* x) {
               // the offset check.
               if (gen_offset_check) {
                 // if (offset == referent_offset) -> slow code stub
        -        __ cmp(lir_cond_equal, off.result(),
        -               LIR_OprFact::intConst(java_lang_ref_Reference::referent_offset));
        +        // 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, T_INT, stub);
        +        __ branch(lir_cond_equal, as_BasicType(off.type()), stub);
               } else {
                 if (gen_source_check) {
                   // offset is a const and equals referent offset
        diff --git a/hotspot/src/share/vm/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp
        index 6dd7fa02a1d..e7a8dffeda5 100644
        --- a/hotspot/src/share/vm/opto/library_call.cpp
        +++ b/hotspot/src/share/vm/opto/library_call.cpp
        @@ -2169,7 +2169,7 @@ void LibraryCallKit::insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* p
           const int reference_type_offset = instanceKlass::reference_type_offset_in_bytes() +
                                                 sizeof(oopDesc);
         
        -  Node* referent_off = __ ConI(java_lang_ref_Reference::referent_offset);
        +  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); {
        
        From f4ec972481fe521248aada2d3056c766a72d5a44 Mon Sep 17 00:00:00 2001
        From: Weijun Wang 
        Date: Thu, 14 Apr 2011 12:40:30 +0800
        Subject: [PATCH 089/144] 7036157: TCP connection does not use kdc_timeout
        
        Reviewed-by: valeriep
        ---
         .../share/classes/sun/security/krb5/internal/NetClient.java  | 5 +++--
         1 file changed, 3 insertions(+), 2 deletions(-)
        
        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);
        
        From 3344bbfb2942c1c0cabfb73b88db8b3cd00c21ee Mon Sep 17 00:00:00 2001
        From: Igor Veresov 
        Date: Thu, 14 Apr 2011 00:02:21 -0700
        Subject: [PATCH 090/144] 7036236: VM crashes assert((!inside_attrs()) ||
         is_error_reported()) failed ..
        
        Eliminate the race condition.
        
        Reviewed-by: kvn
        ---
         hotspot/src/share/vm/code/codeCache.cpp         |  2 --
         hotspot/src/share/vm/compiler/compileBroker.cpp |  8 +++++++-
         hotspot/src/share/vm/runtime/sweeper.cpp        | 14 ++++++++++++--
         3 files changed, 19 insertions(+), 5 deletions(-)
        
        diff --git a/hotspot/src/share/vm/code/codeCache.cpp b/hotspot/src/share/vm/code/codeCache.cpp
        index 4dba8927b3e..2dd42dc06af 100644
        --- a/hotspot/src/share/vm/code/codeCache.cpp
        +++ b/hotspot/src/share/vm/code/codeCache.cpp
        @@ -971,8 +971,6 @@ size_t CodeCache::largest_free_block() {
           if (CodeCache_lock->owned_by_self()) {
             return _heap->largest_free_block();
           } else {
        -    // Avoid lock ordering problems with ttyLock.
        -    ttyUnlocker ttyul;
             MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
             return _heap->largest_free_block();
           }
        diff --git a/hotspot/src/share/vm/compiler/compileBroker.cpp b/hotspot/src/share/vm/compiler/compileBroker.cpp
        index 47def8af8f9..6c2a9683d5c 100644
        --- a/hotspot/src/share/vm/compiler/compileBroker.cpp
        +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp
        @@ -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/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();
           }
        
        From c933c7d4f23df6bc88afee867463c3418be269f0 Mon Sep 17 00:00:00 2001
        From: Xerxes Ranby 
        Date: Thu, 14 Apr 2011 01:53:12 -0700
        Subject: [PATCH 091/144] 7036220: Shark fails to find LLVM 2.9 System headers
         during build
        
        Reviewed-by: gbenson, twisti
        ---
         hotspot/src/share/vm/shark/llvmHeaders.hpp | 10 +++++++++-
         1 file changed, 9 insertions(+), 1 deletion(-)
        
        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 
         
        
        From 6c09d788597eb5f36f8f80b4aa81b9c8a1cb23c8 Mon Sep 17 00:00:00 2001
        From: Denis Fokin 
        Date: Thu, 14 Apr 2011 13:53:08 +0400
        Subject: [PATCH 092/144] 7036540: A change for 7021001 and some makefile
         changes have been pushed as a part of 7030062
        
        Reviewed-by: dcherepanov
        ---
         jdk/make/sun/jpeg/Makefile                  |  2 +-
         jdk/src/share/classes/java/awt/Toolkit.java | 33 ---------------------
         2 files changed, 1 insertion(+), 34 deletions(-)
        
        diff --git a/jdk/make/sun/jpeg/Makefile b/jdk/make/sun/jpeg/Makefile
        index ddd8e3bc7a8..78c53c461a1 100644
        --- a/jdk/make/sun/jpeg/Makefile
        +++ b/jdk/make/sun/jpeg/Makefile
        @@ -74,7 +74,7 @@ ifeq ($(PLATFORM), linux)
           # volatile to prevent the optimization. However, this approach does not
           # work because we have to declare all variables as volatile in result.
         
        -#  OTHER_CFLAGS += -Wno-clobbered
        +  OTHER_CFLAGS += -Wno-clobbered
         endif
         
         include $(BUILDDIR)/common/Mapfile-vers.gmk
        diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java
        index 2f474e970e0..105bc1bf325 100644
        --- a/jdk/src/share/classes/java/awt/Toolkit.java
        +++ b/jdk/src/share/classes/java/awt/Toolkit.java
        @@ -466,10 +466,6 @@ public abstract class Toolkit {
              */
             protected void loadSystemColors(int[] systemColors)
                 throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
        -
             }
         
         /**
        @@ -504,10 +500,6 @@ public abstract class Toolkit {
              */
             public void setDynamicLayout(boolean dynamic)
                 throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
        -
             }
         
             /**
        @@ -531,9 +523,6 @@ public abstract class Toolkit {
              */
             protected boolean isDynamicLayoutSet()
                 throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
                 if (this != Toolkit.getDefaultToolkit()) {
                     return Toolkit.getDefaultToolkit().isDynamicLayoutSet();
                 } else {
        @@ -569,9 +558,6 @@ public abstract class Toolkit {
              */
             public boolean isDynamicLayoutActive()
                 throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
                 if (this != Toolkit.getDefaultToolkit()) {
                     return Toolkit.getDefaultToolkit().isDynamicLayoutActive();
                 } else {
        @@ -615,9 +601,6 @@ 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 {
        @@ -1359,9 +1342,6 @@ 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 {
        @@ -1391,10 +1371,6 @@ public abstract class Toolkit {
              * @since     JDK1.1
              */
             public int getMenuShortcutKeyMask() throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
        -
                 return Event.CTRL_MASK;
             }
         
        @@ -1523,9 +1499,6 @@ 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().
        @@ -1553,9 +1526,6 @@ 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();
        @@ -2602,9 +2572,6 @@ public abstract class Toolkit {
             * @since 1.7
              */
             public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
        -        if (GraphicsEnvironment.isHeadless()){
        -            throw new HeadlessException();
        -        }
                 return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
             }
         }
        
        From 118113c31f31b44ab191acaf19ac2862cd7914d3 Mon Sep 17 00:00:00 2001
        From: Denis Fokin 
        Date: Thu, 14 Apr 2011 13:59:26 +0400
        Subject: [PATCH 093/144] 7021001: Default implementation of
         Toolkit.loadSystemColors(int[]) and many others doesn't throw HE in hl env
        
        Reviewed-by: dcherepanov
        ---
         jdk/src/share/classes/java/awt/Toolkit.java | 33 +++++++++++++++++++++
         1 file changed, 33 insertions(+)
        
        diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java
        index 105bc1bf325..2f474e970e0 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();
        @@ -2572,6 +2602,9 @@ public abstract class Toolkit {
             * @since 1.7
              */
             public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
        +        if (GraphicsEnvironment.isHeadless()){
        +            throw new HeadlessException();
        +        }
                 return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
             }
         }
        
        From d9212b0817b23c1b239290bf61451a28d096175f Mon Sep 17 00:00:00 2001
        From: Andrei Dmitriev 
        Date: Thu, 14 Apr 2011 16:16:19 +0400
        Subject: [PATCH 094/144] 7032566: Toolkit.areExtraMouseButtonsEnabled() not
         alws correspnd "sun.awt.enableExtraMouseButtons" sys prop
        
        Reviewed-by: art, dcherepanov
        ---
         jdk/src/share/classes/java/awt/Toolkit.java | 2 --
         1 file changed, 2 deletions(-)
        
        diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java
        index 2f474e970e0..169084ec5fb 100644
        --- a/jdk/src/share/classes/java/awt/Toolkit.java
        +++ b/jdk/src/share/classes/java/awt/Toolkit.java
        @@ -2591,8 +2591,6 @@ public abstract class Toolkit {
             * initialized with {@code true}.
             * Changing this value after the {@code Toolkit} class initialization will have no effect.
             * 

        - * 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 From b3eb7daed6ee95275486e994e126ab42a5d0dbc6 Mon Sep 17 00:00:00 2001 From: Zhengyu Gu Date: Thu, 14 Apr 2011 11:50:36 -0400 Subject: [PATCH 095/144] 7033100: CreateMinidumpOnCrash does not work for failed asserts Passing NULL as MINIDUMP_EXCEPTION_INFORMATION when calling MiniDumpWriteDump when crash is due to assertion instead of real exception to avoid creating zero-length mini dump file. Reviewed-by: acorn, dcubed, poonam, coleenp --- hotspot/src/os/windows/vm/os_windows.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) 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); From 91657bd273dfd78e00c39e85e8dfb47ced40f282 Mon Sep 17 00:00:00 2001 From: "Y. Srinivas Ramakrishna" Date: Thu, 14 Apr 2011 12:10:15 -0700 Subject: [PATCH 096/144] 7036482: clear argument is redundant and unused in cardtable methods Removed the unused clear argument to various cardtbale methods and unused mod_oop_in_space_iterate method. Unrelated to synopsis, added a pair of clarifying parens in AllocationStats constructor. Reviewed-by: brutisso, jcoomes --- .../parNew/parCardTableModRefBS.cpp | 8 ++- .../shared/allocationStats.hpp | 2 +- .../src/share/vm/memory/cardTableModRefBS.cpp | 53 +++---------------- .../src/share/vm/memory/cardTableModRefBS.hpp | 24 +++------ hotspot/src/share/vm/memory/cardTableRS.cpp | 4 +- .../src/share/vm/memory/modRefBarrierSet.hpp | 11 +--- 6 files changed, 22 insertions(+), 80 deletions(-) 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/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/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/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. From bc5860b142b244acc33a57eab8911973cb93fee3 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:21:38 -0700 Subject: [PATCH 097/144] Added tag jdk7-b138 for changeset b4b1b3e184ee --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index b02fce8ab91..1bf6ba3b7d6 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -112,3 +112,4 @@ ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134 783bd02b4ab4596059c74b10a1793d7bd2f1c157 jdk7-b135 2fe76e73adaa5133ac559f0b3c2c0707eca04580 jdk7-b136 7654afc6a29e43cb0a1343ce7f1287bf690d5e5f jdk7-b137 +fc47c97bbbd91b1f774d855c48a7e285eb1a351a jdk7-b138 From b6d4e6f724b64eb19484d9b418ab619d0167e2eb Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:21:40 -0700 Subject: [PATCH 098/144] Added tag jdk7-b138 for changeset 33b454ccd9f2 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 159f7343ec9..f5b10590ec6 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -112,3 +112,4 @@ d7532bcd3742f1576dd07ff9fbb535c9c9a276e9 jdk7-b126 e0b72ae5dc5e824b342801c8d1d336a55eb54e2c jdk7-b135 48ef0c712e7cbf272f47f9224db92a3c6a9e2612 jdk7-b136 a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137 +78d8cf04697e9df54f7f11e195b7da29b8e345a2 jdk7-b138 From 5f954ad7f240eaf706c0d3e3ae81ea78f5e1c05b Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:21:45 -0700 Subject: [PATCH 099/144] Added tag jdk7-b138 for changeset dff699fcdf23 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index cc91bc1d1a5..2e59dea1745 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -162,3 +162,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 jdk7-b136 bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f jdk7-b137 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f hs21-b07 +0930dc920c185afbf40fed9a655290b8e5b16783 jdk7-b138 From 5d58977c4ac9b6c94a38e330c4801cd4831827f8 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:21:52 -0700 Subject: [PATCH 100/144] Added tag jdk7-b138 for changeset 0319b53ef05f --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 323e12f017a..3a3752b1430 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -112,3 +112,4 @@ d56b326ae0544fc16c3e0d0285876f3c82054db2 jdk7-b134 4aa9916693dc1078580c1865e6f2584046851e5a jdk7-b135 1759daa85d33800bd578853f9531f9de73f70fc7 jdk7-b136 1d87f7460cde7f8f30af668490f82b52b879bfd8 jdk7-b137 +be3758943770a0a3dd4be6a1cb4063507c4d7062 jdk7-b138 From a2ebd0060a16a78826c42c2094b8f6e912edf268 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:21:53 -0700 Subject: [PATCH 101/144] Added tag jdk7-b138 for changeset 63c8767f5915 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 1d2a6156168..2c63e42ab57 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -112,3 +112,4 @@ ba1fac1c2083196422a12130db174334179a4d44 jdk7-b130 d5fc61f18043765705ef22b57a68c924ab2f1a5b jdk7-b135 c81d289c9a532d6e94af3c09d856a2a20529040f jdk7-b136 ccea3282991ce8b678e188cf32a8239f76ff3bfa jdk7-b137 +cc956c8a8255583535597e9a63db23c510e9a063 jdk7-b138 From 5ede995e53330a6c1be2f6b9a83973f1e48e743e Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 14 Apr 2011 15:22:12 -0700 Subject: [PATCH 102/144] Added tag jdk7-b138 for changeset 7a2738b5e9c6 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 4f9d4e25542..74abba91e7f 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -112,3 +112,4 @@ e77e98f936e83d94c9b56cc7af218dc822a06122 jdk7-b133 9d0a61ac567b983da7cc8f4a7030f2245bb6dbab jdk7-b135 ed0f7f1f9511db4f9615b1426d22f8b961629275 jdk7-b136 a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137 +53f212bed4f4304dce7f0bf0fa01c998c65bacd6 jdk7-b138 From fa2b3a414e73c153559b2d34e34572bb76fa7f9e Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Thu, 14 Apr 2011 17:53:28 -0700 Subject: [PATCH 103/144] Added tag hs21-b08 for changeset dff699fcdf23 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 2e59dea1745..10932c75088 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -163,3 +163,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f jdk7-b137 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f hs21-b07 0930dc920c185afbf40fed9a655290b8e5b16783 jdk7-b138 +0930dc920c185afbf40fed9a655290b8e5b16783 hs21-b08 From b4d4e3bed48fae16f01345fc624715588d112697 Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Thu, 14 Apr 2011 21:27:10 -0700 Subject: [PATCH 104/144] 6430675: Math.round has surprising behavior for 0x1.fffffffffffffp-2 Reviewed-by: alanb --- jdk/src/share/classes/java/lang/Math.java | 31 +++--- .../share/classes/java/lang/StrictMath.java | 20 ++-- jdk/test/java/lang/Math/RoundTests.java | 98 +++++++++++++++++++ 3 files changed, 121 insertions(+), 28 deletions(-) create mode 100644 jdk/test/java/lang/Math/RoundTests.java 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: - *

        {@code (int)Math.floor(a + 0.5f)} + * Returns the closest {@code int} to the argument, with ties + * rounding up. + * *

        * Special cases: *

        • 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: - *

          {@code (long)Math.floor(a + 0.5d)} - *

          - * Special cases: + * Returns the closest {@code long} to the argument, with ties + * rounding up. + * + *

          Special cases: *

          • If the argument is NaN, the result is 0. *
          • 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/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: - *

            {@code (int)Math.floor(a + 0.5f)} + * Returns the closest {@code int} to the argument, with ties + * rounding up. * *

            Special cases: *

            • 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: - *

              {@code (long)Math.floor(a + 0.5d)} + * Returns the closest {@code long} to the argument, with ties + * rounding up. * *

              Special cases: *

              • 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/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; + } +} From 30d9e9d6dc71b3352aae3ec72a33d11c2bd6bb4a Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Fri, 15 Apr 2011 16:51:25 +0400 Subject: [PATCH 105/144] 6983562: Two java/awt tests failing just on jdk7b108 Reviewed-by: art, denis, dcherepanov --- jdk/src/windows/native/sun/windows/awt_Button.cpp | 4 +++- jdk/src/windows/native/sun/windows/awt_Checkbox.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) 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); + } } } From 8acea1848a0856abfadbbba69c63830a8f0e992b Mon Sep 17 00:00:00 2001 From: Coleen Phillimore Date: Fri, 15 Apr 2011 09:36:28 -0400 Subject: [PATCH 106/144] 7032407: Crash in LinkResolver::runtime_resolve_virtual_method() Make CDS reorder vtables so that dump time vtables match run time order, so when redefine classes reinitializes them, they aren't in the wrong order. Reviewed-by: dcubed, acorn --- .../share/vm/classfile/classFileParser.cpp | 10 +++-- .../share/vm/classfile/systemDictionary.cpp | 10 +++++ hotspot/src/share/vm/memory/dump.cpp | 38 +++++++++++++++---- .../src/share/vm/oops/instanceKlassKlass.cpp | 3 +- hotspot/src/share/vm/oops/klass.cpp | 8 ++++ hotspot/src/share/vm/oops/klassVtable.cpp | 9 +++++ hotspot/src/share/vm/oops/klassVtable.hpp | 10 ++++- 7 files changed, 75 insertions(+), 13 deletions(-) diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index cd4ef079faf..0593639bbf7 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -2196,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"); @@ -2214,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++) { diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp index 17a9f740685..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) { 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/oops/instanceKlassKlass.cpp b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp index aa12d13a8c9..dc2cd6cdf45 100644 --- a/hotspot/src/share/vm/oops/instanceKlassKlass.cpp +++ b/hotspot/src/share/vm/oops/instanceKlassKlass.cpp @@ -690,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, From 258de27aefdd09eedcae47aef6c6343904c12d3b Mon Sep 17 00:00:00 2001 From: Kevin Walls Date: Fri, 15 Apr 2011 14:42:09 +0100 Subject: [PATCH 107/144] 6994753: Optional tracking of JRE usage Reviewed-by: mchung, ksrini, ohair --- jdk/make/sun/Makefile | 5 ++++ jdk/make/sun/usagetracker/Makefile | 40 ++++++++++++++++++++++++++ jdk/src/share/javavm/export/jvm.h | 5 ++-- jdk/src/share/native/common/jdk_util.c | 6 +++- 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 jdk/make/sun/usagetracker/Makefile 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/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/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; + } From f603d437be1787077726baad1308adc8a2a9c6ad Mon Sep 17 00:00:00 2001 From: John Cuthbertson Date: Fri, 15 Apr 2011 10:10:50 -0700 Subject: [PATCH 108/144] 7036021: G1: build failure on win64 and linux with hs21 in jdk6 build environment Missing parentheses around a casted expression and some missing casts were causing build failures with the jdk6 build tools. Reviewed-by: kvn, brutisso --- .../share/vm/gc_implementation/g1/concurrentG1Refine.hpp | 8 ++++---- hotspot/src/share/vm/opto/library_call.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) 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/opto/library_call.cpp b/hotspot/src/share/vm/opto/library_call.cpp index 8f86f5fdcf7..eeed53f6dcf 100644 --- a/hotspot/src/share/vm/opto/library_call.cpp +++ b/hotspot/src/share/vm/opto/library_call.cpp @@ -2193,7 +2193,7 @@ void LibraryCallKit::insert_g1_pre_barrier(Node* base_oop, Node* offset, Node* p // Use the pre-barrier to record the value in the referent field pre_barrier(false /* do_load */, __ ctrl(), - NULL /* obj */, NULL /* adr */, -1 /* alias_idx */, NULL /* val */, NULL /* val_type */, + NULL /* obj */, NULL /* adr */, max_juint /* alias_idx */, NULL /* val */, NULL /* val_type */, pre_val /* pre_val */, T_OBJECT); @@ -5419,7 +5419,7 @@ bool LibraryCallKit::inline_reference_get() { // Use the pre-barrier to record the value in the referent field pre_barrier(false /* do_load */, control(), - NULL /* obj */, NULL /* adr */, -1 /* alias_idx */, NULL /* val */, NULL /* val_type */, + NULL /* obj */, NULL /* adr */, max_juint /* alias_idx */, NULL /* val */, NULL /* val_type */, result /* pre_val */, T_OBJECT); From 7e782e5b4f5c5e5bb0438b11317622a3c209aed9 Mon Sep 17 00:00:00 2001 From: Phil Race Date: Fri, 15 Apr 2011 12:58:56 -0700 Subject: [PATCH 109/144] 6942504: test/javax/imageio/metadata/DOML3Node.java fails Reviewed-by: bae, jgodinez --- jdk/test/javax/imageio/metadata/DOML3Node.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) 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"); From 49e24e3e8fe673a77b900968aa01803dbc27a115 Mon Sep 17 00:00:00 2001 From: Dag Wanvik Date: Fri, 15 Apr 2011 23:01:09 +0200 Subject: [PATCH 110/144] 7036048: Bring the Java DB in JDK7 to the same level as JDK 6 (Java DB v10.6.2.1) Replace the existing Java DB bundles with newer ones, and move demo dir into JDK's demo dir as db Reviewed-by: ohair --- jdk/make/common/Release.gmk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index 17297d573b0..189b3d703ef 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -885,12 +885,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 From 16ddb7350c05132ad387dcff3dc75eab5765915d Mon Sep 17 00:00:00 2001 From: Valerie Peng Date: Fri, 15 Apr 2011 15:56:12 -0700 Subject: [PATCH 111/144] 7035115: sun/security/pkcs11/Provider/ConfigShortPath.java compilation failed Updated the test to use reflection and skip when SunPKCS11 provider not present. Reviewed-by: weijun --- .../pkcs11/Provider/ConfigShortPath.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java index dbc58bbe1f1..21238f735d5 100644 --- a/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java +++ b/jdk/test/sun/security/pkcs11/Provider/ConfigShortPath.java @@ -29,23 +29,36 @@ import java.security.*; import java.io.*; +import java.lang.reflect.*; public class ConfigShortPath { private static final String[] configNames = { "csp.cfg", "cspPlus.cfg" }; - public static void main(String[] args) { + public static void main(String[] args) throws Exception { + Constructor cons = null; + try { + 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 { - 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; + 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; + } } } } From f0b2f38989787bca881805e2a69507a88ba27f69 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Fri, 15 Apr 2011 18:23:27 -0700 Subject: [PATCH 112/144] 7037174: Bump the HS21 build number to 09 Update the HS21 build number to 09 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index bd9d89e0bef..29e472d73f0 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=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 From 4ccabedd50ea2b4b45b8327541257118bc8a2a08 Mon Sep 17 00:00:00 2001 From: Mandy Chung Date: Fri, 15 Apr 2011 23:42:12 -0700 Subject: [PATCH 113/144] 7032589: FileHandler leaking file descriptor of the file lock Reviewed-by: forax, dcubed --- .../java/util/logging/FileHandler.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/jdk/src/share/classes/java/util/logging/FileHandler.java b/jdk/src/share/classes/java/util/logging/FileHandler.java index 956677630a0..6b67f8779b5 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(); } } From 34c1a8cd7997a6209cde91860f09b2fe7a39cb63 Mon Sep 17 00:00:00 2001 From: Tomas Hurka Date: Sat, 16 Apr 2011 11:59:54 +0200 Subject: [PATCH 114/144] 7007254: NullPointerException occurs with jvisualvm placed under a dir. including Japanese chars Use java_lang_String::create_from_platform_dependent_str() instead of java_lang_String::create_from_str() in JvmtiEnv::AddToSystemClassLoaderSearch() Reviewed-by: dcubed --- hotspot/src/share/vm/prims/jvmtiEnv.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From c930bfc38786fbd87020beb29e97a0584c722d23 Mon Sep 17 00:00:00 2001 From: Sergey Kuksenko Date: Sun, 17 Apr 2011 13:49:33 +0100 Subject: [PATCH 115/144] 7036582: Improve test coverage of java.math.BigDecimal Reviewed-by: darcy --- jdk/test/ProblemList.txt | 6 - .../java/math/BigDecimal/DivideMcTests.java | 5797 +++++++++++++++++ .../BigDecimal/FloatDoubleValueTests.java | 23 + jdk/test/java/math/BigDecimal/RangeTests.java | 245 + .../math/BigDecimal/StrippingZerosTest.java | 7 + .../math/BigDecimal/ToPlainStringTests.java | 11 +- 6 files changed, 6081 insertions(+), 8 deletions(-) create mode 100644 jdk/test/java/math/BigDecimal/DivideMcTests.java create mode 100644 jdk/test/java/math/BigDecimal/RangeTests.java diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt index d0336f9b6a1..e22a421efb0 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/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 " + From 04d347dde1d02cd0410b441204f1bcf87690e2ef Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Sun, 17 Apr 2011 22:52:26 -0700 Subject: [PATCH 116/144] 7021568: Double.parseDouble() returns architecture dependent results Reviewed-by: alanb --- .../classes/sun/misc/FloatingDecimal.java | 2 +- .../sun/misc/FormattedFloatingDecimal.java | 4 +-- jdk/test/java/lang/Double/ParseDouble.java | 28 ++++++++++++++++++- 3 files changed, 30 insertions(+), 4 deletions(-) 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/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(); } } From f1659ec169a051e559bcc93ccff2de37bda0648a Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Mon, 18 Apr 2011 11:14:28 +0100 Subject: [PATCH 117/144] 7030649: URL.equals() fails to compare jar urls Reviewed-by: michaelm --- .../sun/net/www/protocol/jar/Handler.java | 76 ++++++++++++++++- jdk/test/java/net/URL/Equals.java | 83 +++++++++++++++++-- 2 files changed, 150 insertions(+), 9 deletions(-) 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/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; + } } From d6d40a3f873c6ad283ff0a28470b53b88acd3edd Mon Sep 17 00:00:00 2001 From: Doug Lea Date: Mon, 18 Apr 2011 15:50:18 +0100 Subject: [PATCH 118/144] 7037436: CR 7035020 fails to check shutdown Reviewed-by: chegar --- .../java/util/concurrent/ForkJoinPool.java | 21 ++++++++++--------- .../util/concurrent/ForkJoinWorkerThread.java | 6 +++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java index 8d30808a6c5..9c90f36adb4 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinPool.java @@ -824,7 +824,8 @@ public class ForkJoinPool extends AbstractExecutorService { else if (w.eventCount != v) return true; // update next time } - if ((int)c != 0 && 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;;) { @@ -1024,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)); } /** @@ -1177,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; @@ -1360,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)); } /** @@ -1714,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 } /** @@ -1726,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 } /** @@ -1881,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/ForkJoinWorkerThread.java b/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java index 056585fdf41..3504abb73c7 100644 --- a/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java +++ b/jdk/src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java @@ -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; From a91e07ae2405674c9ae7b751ee5ecb86d3db2ffb Mon Sep 17 00:00:00 2001 From: Doug Lea Date: Mon, 18 Apr 2011 16:10:40 +0100 Subject: [PATCH 119/144] 7036559: ConcurrentHashMap footprint and contention improvements Reviewed-by: chegar --- .../util/concurrent/ConcurrentHashMap.java | 1123 ++++++++++------- 1 file changed, 652 insertions(+), 471 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java index fb8a967684d..c66a82e6305 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java @@ -105,7 +105,25 @@ public class ConcurrentHashMap extends AbstractMap /* * 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 extends AbstractMap */ 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 extends AbstractMap 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[] segments; @@ -172,7 +197,65 @@ public class ConcurrentHashMap extends AbstractMap transient Set> entrySet; transient Collection values; - /* ---------------- Small Utilities -------------- */ + /** + * ConcurrentHashMap list entry. Note that this is never exported + * out as a user-visible Map.Entry. + */ + static final class HashEntry { + final int hash; + final K key; + volatile V value; + volatile HashEntry next; + + HashEntry(int hash, K key, V value, HashEntry 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 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 HashEntry entryAt(HashEntry[] tab, int i) { + return (tab == null) ? null : + (HashEntry) 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 void setEntryAt(HashEntry[] tab, int i, + HashEntry 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 extends AbstractMap 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 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 { - final K key; - final int hash; - volatile V value; - final HashEntry next; - - HashEntry(K key, int hash, HashEntry next, V value) { - this.key = key; - this.hash = hash; - this.next = next; - this.value = value; - } - - @SuppressWarnings("unchecked") - static final HashEntry[] 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 extends AbstractMap */ static final class Segment 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[] 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 extends AbstractMap */ transient int threshold; - /** - * The per-segment table. - */ - transient volatile HashEntry[] 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 extends AbstractMap */ final float loadFactor; - Segment(int initialCapacity, float lf) { - loadFactor = lf; - setTable(HashEntry.newArray(initialCapacity)); + Segment(float lf, int threshold, HashEntry[] tab) { + this.loadFactor = lf; + this.threshold = threshold; + this.table = tab; } + final V put(K key, int hash, V value, boolean onlyIfAbsent) { + HashEntry node = tryLock() ? null : + scanAndLockForPut(key, hash, value); + V oldValue; + try { + HashEntry[] tab = table; + int index = (tab.length - 1) & hash; + HashEntry first = entryAt(tab, index); + for (HashEntry 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(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 Segment[] newArray(int i) { - return new Segment[i]; - } - - /** - * Sets table to new HashEntry array. - * Call only while holding lock or in constructor. - */ - void setTable(HashEntry[] newTable) { - threshold = (int)(newTable.length * loadFactor); - table = newTable; - } - - /** - * Returns properly casted first entry of bin for given hash. - */ - HashEntry getFirst(int hash) { - HashEntry[] 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 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 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 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[] tab = table; - int len = tab.length; - for (int i = 0 ; i < len; i++) { - for (HashEntry 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 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 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[] tab = table; - int index = hash & (tab.length - 1); - HashEntry first = tab[index]; - HashEntry 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(key, hash, first, value); - count = c; // write-volatile - } - return oldValue; - } finally { - unlock(); - } - } - - void rehash() { + private void rehash(HashEntry 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[] 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[] newTable = HashEntry.newArray(oldCapacity<<1); - threshold = (int)(newTable.length * loadFactor); - int sizeMask = newTable.length - 1; + int newCapacity = oldCapacity << 1; + threshold = (int)(newCapacity * loadFactor); + HashEntry[] newTable = + (HashEntry[]) 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 e = oldTable[i]; - if (e != null) { HashEntry 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 lastRun = e; int lastIdx = idx; for (HashEntry last = next; @@ -522,74 +455,259 @@ public class ConcurrentHashMap extends AbstractMap } } newTable[lastIdx] = lastRun; - - // Clone all remaining nodes + // Clone remaining nodes for (HashEntry 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 n = newTable[k]; - newTable[k] = new HashEntry(p.key, p.hash, - n, p.value); + newTable[k] = new HashEntry(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 scanAndLockForPut(K key, int hash, V value) { + HashEntry first = entryForHash(this, hash); + HashEntry e = first; + HashEntry node = null; + int retries = -1; // negative while locating node + while (!tryLock()) { + HashEntry f; // to recheck first below + if (retries < 0) { + if (e == null) { + if (node == null) // speculatively create node + node = new HashEntry(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 first = entryForHash(this, hash); + HashEntry e = first; + int retries = -1; + while (!tryLock()) { + HashEntry 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[] tab = table; - int index = hash & (tab.length - 1); - HashEntry first = tab[index]; - HashEntry e = first; - while (e != null && (e.hash != hash || !key.equals(e.key))) - e = e.next; + int index = (tab.length - 1) & hash; + HashEntry e = entryAt(tab, index); + HashEntry pred = null; + while (e != null) { + K k; + HashEntry 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 newFirst = e.next; - for (HashEntry p = first; p != e; p = p.next) - newFirst = new HashEntry(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 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 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[] 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[] 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 Segment segmentAt(Segment[] ss, int j) { + long u = (j << SSHIFT) + SBASE; + return ss == null ? null : + (Segment) 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 ensureSegment(int k) { + final Segment[] ss = this.segments; + long u = (k << SSHIFT) + SBASE; // raw offset + Segment seg; + if ((seg = (Segment)UNSAFE.getObjectVolatile(ss, u)) == null) { + Segment proto = ss[0]; // use segment 0 as prototype + int cap = proto.table.length; + float lf = proto.loadFactor; + int threshold = (int)(cap * lf); + HashEntry[] tab = (HashEntry[])new HashEntry[cap]; + if ((seg = (Segment)UNSAFE.getObjectVolatile(ss, u)) + == null) { // recheck + Segment s = new Segment(lf, threshold, tab); + while ((seg = (Segment)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 segmentForHash(int h) { + long u = (((h >>> segmentShift) & segmentMask) << SSHIFT) + SBASE; + return (Segment) UNSAFE.getObjectVolatile(segments, u); + } + + /** + * Gets the table entry for the given segment and hash + */ + @SuppressWarnings("unchecked") + static final HashEntry entryForHash(Segment seg, int h) { + HashEntry[] tab; + return (seg == null || (tab = seg.table) == null) ? null : + (HashEntry) UNSAFE.getObjectVolatile + (tab, ((long)(((tab.length - 1) & h)) << TSHIFT) + TBASE); + } /* ---------------- Public operations -------------- */ @@ -609,14 +727,13 @@ public class ConcurrentHashMap extends AbstractMap * 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 extends AbstractMap ++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(cap, loadFactor); + // create segments and segments[0] + Segment s0 = + new Segment(loadFactor, (int)(cap * loadFactor), + (HashEntry[])new HashEntry[cap]); + Segment[] ss = (Segment[])new Segment[ssize]; + UNSAFE.putOrderedObject(ss, SBASE, s0); // ordered write of segments[0] + this.segments = ss; } /** @@ -701,34 +820,37 @@ public class ConcurrentHashMap extends AbstractMap * @return true if this map contains no key-value mappings */ public boolean isEmpty() { - final Segment[] 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[] segments = this.segments; + for (int j = 0; j < segments.length; ++j) { + Segment 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 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 extends AbstractMap * @return the number of key-value mappings in this map */ public int size() { - final Segment[] 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[] 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 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 extends AbstractMap */ public V get(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).get(key, hash); + for (HashEntry 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 extends AbstractMap */ public boolean containsKey(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).containsKey(key, hash); + for (HashEntry 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 extends AbstractMap * @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[] 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[] tab; + Segment seg = segmentAt(segments, j); + if (seg != null && (tab = seg.table) != null) { + for (int i = 0 ; i < tab.length; i++) { + HashEntry 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 extends AbstractMap 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 s = segmentAt(segments, j); + if (s == null) + s = ensureSegment(j); + return s.put(key, hash, value, false); } /** @@ -922,7 +1054,11 @@ public class ConcurrentHashMap extends AbstractMap 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 s = segmentAt(segments, j); + if (s == null) + s = ensureSegment(j); + return s.put(key, hash, value, true); } /** @@ -948,7 +1084,8 @@ public class ConcurrentHashMap extends AbstractMap */ public V remove(Object key) { int hash = hash(key.hashCode()); - return segmentFor(hash).remove(key, hash, null); + Segment s = segmentForHash(hash); + return s == null ? null : s.remove(key, hash, null); } /** @@ -958,9 +1095,9 @@ public class ConcurrentHashMap extends AbstractMap */ 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 s; + return value != null && (s = segmentForHash(hash)) != null && + s.remove(key, hash, value) != null; } /** @@ -969,10 +1106,11 @@ public class ConcurrentHashMap extends AbstractMap * @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 s = segmentForHash(hash); + return s != null && s.replace(key, hash, oldValue, newValue); } /** @@ -983,18 +1121,23 @@ public class ConcurrentHashMap extends AbstractMap * @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 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[] segments = this.segments; + for (int j = 0; j < segments.length; ++j) { + Segment s = segmentAt(segments, j); + if (s != null) + s.clear(); + } } /** @@ -1095,42 +1238,41 @@ public class ConcurrentHashMap extends AbstractMap 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 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 seg = segmentAt(segments, nextSegmentIndex--); + if (seg != null && (currentTable = seg.table) != null) + nextTableIndex = currentTable.length - 1; + } + else + break; } } - public boolean hasNext() { return nextEntry != null; } - - HashEntry nextEntry() { - if (nextEntry == null) + final HashEntry nextEntry() { + HashEntry 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 extends AbstractMap extends HashIterator implements Iterator, Enumeration { - 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, Enumeration { - 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 extends AbstractMap * 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[] segments = this.segments; for (int k = 0; k < segments.length; ++k) { - Segment seg = segments[k]; + Segment seg = segmentAt(segments, k); seg.lock(); try { HashEntry[] tab = seg.table; for (int i = 0; i < tab.length; ++i) { - for (HashEntry e = tab[i]; e != null; e = e.next) { + HashEntry 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 extends AbstractMap * 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[] segments = this.segments; + for (int k = 0; k < segments.length; ++k) { + Segment seg = segments[k]; + if (seg != null) { + seg.threshold = (int)(cap * seg.loadFactor); + seg.table = (HashEntry[]) new HashEntry[cap]; + } } // Read the keys and values, and put the mappings in the table @@ -1315,4 +1469,31 @@ public class ConcurrentHashMap extends AbstractMap 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); + } + } From 1c94406e2a1dbe6aafabef7265fe297b5d90d331 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Mon, 18 Apr 2011 12:07:29 -0400 Subject: [PATCH 120/144] 7037085: Add hashCode() to Timestamp to address Findbugs warning Reviewed-by: darcy, alanb, emcmanus --- jdk/src/share/classes/java/sql/Timestamp.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 Timestamp.equals(Object) * method is not symmetric with respect to the * java.util.Date.equals(Object) - * method. Also, the hashcode method uses the underlying + * method. Also, the hashCode method uses the underlying * java.util.Date * implementation and therefore does not include nanos in its computation. *

                @@ -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; } From bad4b686c4c16332dcfe51ed6f7838d72d9eb152 Mon Sep 17 00:00:00 2001 From: Neil Richards Date: Mon, 18 Apr 2011 10:51:19 -0700 Subject: [PATCH 121/144] 7031076: Retained ZipFile InputStreams increase heap demand Allow unreferenced ZipFile InputStreams to be finalized, GC'd Reviewed-by: sherman, dholmes --- .../share/classes/java/util/zip/ZipFile.java | 199 +++++++++++------- .../ClearStaleZipFileInputStreams.java | 148 +++++++++++++ 2 files changed, 271 insertions(+), 76 deletions(-) create mode 100644 jdk/test/java/util/zip/ZipFile/ClearStaleZipFileInputStreams.java 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 streams = new HashSet<>(); + // the outstanding inputstreams that need to be closed, + // mapped to the inflater objects they use. + private final Map 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 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 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 copy = new HashMap<>(streams); + streams.clear(); + for (Map.Entry 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 close 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. * *

                * 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/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; + } +} From d845140f333e8df319d9b2d6168adbd164572bdf Mon Sep 17 00:00:00 2001 From: Mike Duigou Date: Mon, 18 Apr 2011 11:31:38 -0700 Subject: [PATCH 122/144] 7035160: Disable broken test cases for test/java/lang/reflect/Generics/Probe.java Reviewed-by: alanb --- jdk/test/java/lang/reflect/Generics/Probe.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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", From 236207402df783c6430dab3e48a27a4ad74ea7ec Mon Sep 17 00:00:00 2001 From: John Cuthbertson Date: Mon, 18 Apr 2011 16:27:16 -0700 Subject: [PATCH 123/144] 7036706: G1: Use LIR_OprDesc::as_pointer_register in code changes for 7035117 Use LIR_OprDesc::as_pointer_register() instead as_register/as_register_lo combination in the code changes for 7035117. Reviewed-by: iveresov --- hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp | 2 +- hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp index 8ea114f7c23..73d808a7070 100644 --- a/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp @@ -489,7 +489,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) { // Is marking active? assert(thread()->is_register(), "precondition"); - Register thread_reg = NOT_LP64(thread()->as_register()) LP64_ONLY(thread()->as_register_lo()); + Register thread_reg = thread()->as_pointer_register(); Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active())); diff --git a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp index 728f3854a24..5e2d7feb996 100644 --- a/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_CodeStubs_x86.cpp @@ -525,7 +525,7 @@ void G1UnsafeGetObjSATBBarrierStub::emit_code(LIR_Assembler* ce) { // Is marking active? assert(thread()->is_register(), "precondition"); - Register thread_reg = NOT_LP64(thread()->as_register()) LP64_ONLY(thread()->as_register_lo()); + Register thread_reg = thread()->as_pointer_register(); Address in_progress(thread_reg, in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active())); From 8e70d44f2c426dd688c0602f215ab277418af9eb Mon Sep 17 00:00:00 2001 From: Yong Jeffrey Huang Date: Mon, 18 Apr 2011 23:00:53 -0700 Subject: [PATCH 124/144] 7036905: [de] dem - the german mark display name is incorrect Reviewed-by: naoto --- .../sun/util/resources/CurrencyNames_de.properties | 7 +++++++ .../sun/util/resources/CurrencyNames_it.properties | 1 + jdk/test/java/util/Currency/CurrencyTest.java | 4 ++-- jdk/test/sun/text/resources/LocaleData | 11 +++++++++++ jdk/test/sun/text/resources/LocaleDataTest.java | 2 +- 5 files changed, 22 insertions(+), 3 deletions(-) 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/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/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 1b7d80ef78d..5b5f4d7b6dc 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 * */ From 7a7cba032440b099e1b48ae660ea65a5421984b2 Mon Sep 17 00:00:00 2001 From: Shinya Ogino Date: Tue, 19 Apr 2011 20:58:46 -0700 Subject: [PATCH 125/144] 7025070: man page localization broken in jdk7 Reviewed-by: mfang --- jdk/src/linux/doc/man/ja/appletviewer.1 | 38 +- jdk/src/linux/doc/man/ja/apt.1 | 93 +- jdk/src/linux/doc/man/ja/extcheck.1 | 40 +- jdk/src/linux/doc/man/ja/idlj.1 | 681 ++-- jdk/src/linux/doc/man/ja/jar.1 | 326 +- jdk/src/linux/doc/man/ja/jarsigner.1 | 1990 ++++----- jdk/src/linux/doc/man/ja/java.1 | 322 +- jdk/src/linux/doc/man/ja/javac.1 | 980 +++-- jdk/src/linux/doc/man/ja/javadoc.1 | 3569 +++++------------ jdk/src/linux/doc/man/ja/javah.1 | 79 +- jdk/src/linux/doc/man/ja/javap.1 | 110 +- jdk/src/linux/doc/man/ja/javaws.1 | 246 +- jdk/src/linux/doc/man/ja/jconsole.1 | 95 +- jdk/src/linux/doc/man/ja/jdb.1 | 202 +- jdk/src/linux/doc/man/ja/jhat.1 | 89 +- jdk/src/linux/doc/man/ja/jinfo.1 | 88 +- jdk/src/linux/doc/man/ja/jmap.1 | 93 +- jdk/src/linux/doc/man/ja/jps.1 | 124 +- jdk/src/linux/doc/man/ja/jrunscript.1 | 128 +- jdk/src/linux/doc/man/ja/jsadebugd.1 | 51 +- jdk/src/linux/doc/man/ja/jstack.1 | 83 +- jdk/src/linux/doc/man/ja/jstat.1 | 636 ++- jdk/src/linux/doc/man/ja/jstatd.1 | 120 +- jdk/src/linux/doc/man/ja/jvisualvm.1 | 126 + jdk/src/linux/doc/man/ja/keytool.1 | 1946 +++++---- jdk/src/linux/doc/man/ja/native2ascii.1 | 42 +- jdk/src/linux/doc/man/ja/orbd.1 | 142 +- jdk/src/linux/doc/man/ja/pack200.1 | 260 +- jdk/src/linux/doc/man/ja/policytool.1 | 54 +- jdk/src/linux/doc/man/ja/rmic.1 | 142 +- jdk/src/linux/doc/man/ja/rmid.1 | 160 +- jdk/src/linux/doc/man/ja/rmiregistry.1 | 49 +- jdk/src/linux/doc/man/ja/schemagen.1 | 84 +- jdk/src/linux/doc/man/ja/serialver.1 | 62 +- jdk/src/linux/doc/man/ja/servertool.1 | 70 +- jdk/src/linux/doc/man/ja/tnameserv.1 | 114 +- jdk/src/linux/doc/man/ja/unpack200.1 | 142 +- jdk/src/linux/doc/man/ja/wsgen.1 | 76 +- jdk/src/linux/doc/man/ja/wsimport.1 | 367 +- jdk/src/linux/doc/man/ja/xjc.1 | 217 +- .../doc/sun/man/man1/ja/appletviewer.1 | 38 +- jdk/src/solaris/doc/sun/man/man1/ja/apt.1 | 93 +- .../solaris/doc/sun/man/man1/ja/extcheck.1 | 40 +- jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 | 681 ++-- jdk/src/solaris/doc/sun/man/man1/ja/jar.1 | 326 +- .../solaris/doc/sun/man/man1/ja/jarsigner.1 | 1990 ++++----- jdk/src/solaris/doc/sun/man/man1/ja/java.1 | 322 +- jdk/src/solaris/doc/sun/man/man1/ja/javac.1 | 980 +++-- jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 | 3569 +++++------------ jdk/src/solaris/doc/sun/man/man1/ja/javah.1 | 79 +- jdk/src/solaris/doc/sun/man/man1/ja/javap.1 | 110 +- jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 | 246 +- .../solaris/doc/sun/man/man1/ja/jconsole.1 | 95 +- jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 | 202 +- jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 | 89 +- jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 | 88 +- jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 | 93 +- jdk/src/solaris/doc/sun/man/man1/ja/jps.1 | 124 +- .../solaris/doc/sun/man/man1/ja/jrunscript.1 | 128 +- .../solaris/doc/sun/man/man1/ja/jsadebugd.1 | 51 +- jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 | 83 +- jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 | 636 ++- jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 | 120 +- .../solaris/doc/sun/man/man1/ja/jvisualvm.1 | 126 + jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 | 1946 +++++---- .../doc/sun/man/man1/ja/native2ascii.1 | 42 +- jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 | 260 +- .../solaris/doc/sun/man/man1/ja/policytool.1 | 54 +- jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 | 160 +- .../solaris/doc/sun/man/man1/ja/rmiregistry.1 | 49 +- .../solaris/doc/sun/man/man1/ja/schemagen.1 | 84 +- .../solaris/doc/sun/man/man1/ja/serialver.1 | 62 +- .../solaris/doc/sun/man/man1/ja/servertool.1 | 70 +- .../solaris/doc/sun/man/man1/ja/tnameserv.1 | 114 +- .../solaris/doc/sun/man/man1/ja/unpack200.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 | 76 +- .../solaris/doc/sun/man/man1/ja/wsimport.1 | 367 +- jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 | 217 +- 80 files changed, 13128 insertions(+), 15344 deletions(-) create mode 100644 jdk/src/linux/doc/man/ja/jvisualvm.1 create mode 100644 jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 diff --git a/jdk/src/linux/doc/man/ja/appletviewer.1 b/jdk/src/linux/doc/man/ja/appletviewer.1 index e7b128d6869..fcbcc19a43b 100644 --- a/jdk/src/linux/doc/man/ja/appletviewer.1 +++ b/jdk/src/linux/doc/man/ja/appletviewer.1 @@ -19,54 +19,44 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "02 Jun 2010" +.TH appletviewer 1 "14 Apr 2011" .LP -.SH "åå‰" -appletviewer \- Java アプレットビューア -.LP -.RS 3 - +.SH "̾Á°" +appletviewer \- Java ¥¢¥×¥ì¥Ã¥È¥Ó¥å¡¼¥¢ .LP .LP -\f3appletviewer\fP コマンド㯠Web ブラウザã®å¤–ã§ã‚¢ãƒ—レットを実行ã•ã›ã¾ã™ã€‚ +\f3appletviewer\fP ¥³¥Þ¥ó¥É¤Ï Web ¥Ö¥é¥¦¥¶¤Î³°¤Ç¥¢¥×¥ì¥Ã¥È¤ò¼Â¹Ô¤µ¤»¤Þ¤¹¡£ .LP -.RE -.SH "å½¢å¼" -.LP - +.SH "·Á¼°" .LP .LP \f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ... .LP -.SH "説明" -.LP - +.SH "ÀâÌÀ" .LP .LP -\f3appletviewer\fP コマンド㯠\f2urls\fP ã«æŒ‡å®šã•れãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚ã‚‹ã„ã¯ãƒªã‚½ãƒ¼ã‚¹ã¨æŽ¥ç¶šã—ã¦ã€ãã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãŒå‚ç…§ã™ã‚‹ãれãžã‚Œã®ã‚¢ãƒ—レットを独自ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤ºã—ã¾ã™ã€‚注: \f2urls\fP ã«ã‚ˆã£ã¦å‚ç…§ã•れãŸãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆãŒã€\f2OBJECT\fPã€\f2EMBED\fPã€ã¾ãŸã¯ \f2APPLET\fP ã‚¿ã‚°ã§ã©ã®ã‚¢ãƒ—レットもå‚ç…§ã—ã¦ã„ãªã„å ´åˆã€\f3appletviewer\fP ã¯ä½•も行ã„ã¾ã›ã‚“。\f3appletviewer\fP ã§ã‚µãƒãƒ¼ãƒˆã•れる HTML ã‚¿ã‚°ã®è©³ç´°ã«ã¤ã„ã¦ã¯ã€ +\f3appletviewer\fP ¥³¥Þ¥ó¥É¤Ï \f2urls\fP ¤Ë»ØÄꤵ¤ì¤¿¥É¥­¥å¥á¥ó¥È¤¢¤ë¤¤¤Ï¥ê¥½¡¼¥¹¤ÈÀܳ¤·¤Æ¡¢¤½¤Î¥É¥­¥å¥á¥ó¥È¤¬»²¾È¤¹¤ë¤½¤ì¤¾¤ì¤Î¥¢¥×¥ì¥Ã¥È¤òÆÈ¼«¤Î¥¦¥£¥ó¥É¥¦¤Çɽ¼¨¤·¤Þ¤¹¡£Ãí: \f2urls\fP ¤Ë¤è¤Ã¤Æ»²¾È¤µ¤ì¤¿¥É¥­¥å¥á¥ó¥È¤¬¡¢\f2OBJECT\fP¡¢\f2EMBED\fP¡¢¤Þ¤¿¤Ï \f2APPLET\fP ¥¿¥°¤Ç¤É¤Î¥¢¥×¥ì¥Ã¥È¤â»²¾È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢\f3appletviewer\fP ¤Ï²¿¤â¹Ô¤¤¤Þ¤»¤ó¡£\f3appletviewer\fP ¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë HTML ¥¿¥°¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ .na -\f2「アプレットビューアã®ã‚¿ã‚°ã€\fP @ +\f2¡Ö¥¢¥×¥ì¥Ã¥È¥Ó¥å¡¼¥¢¤Î¥¿¥°¡×\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.htmlã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.html¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ .LP .LP -\f3注:\fP \f3appletviewer\fP ã¯ã€RFC2396 ã§è¦å®šã•れãŸã‚¨ã‚¹ã‚±ãƒ¼ãƒ—機構ã«å¾“ã£ã¦ç¬¦å·åŒ–ã•れ㟠URL ã‚’å¿…è¦ã¨ã—ã¾ã™ã€‚サãƒãƒ¼ãƒˆã•れるã®ã¯ã€ç¬¦å·åŒ–ã•れ㟠URL ã ã‘ã§ã™ã€‚ãŸã ã—ã€ãƒ•ァイルåã«ã¤ã„ã¦ã¯ã€RFC2396 ã«æŒ‡å®šã•ã‚ŒãŸæ–¹æ³•ã§ç¬¦å·åŒ–を解除ã—ã¦ãŠãå¿…è¦ãŒã‚りã¾ã™ã€‚ +\f3Ãí:\fP \f3appletviewer\fP ¤Ï¡¢RFC2396 ¤Çµ¬Äꤵ¤ì¤¿¥¨¥¹¥±¡¼¥×µ¡¹½¤Ë½¾¤Ã¤ÆÉ乿²½¤µ¤ì¤¿ URL ¤òɬÍפȤ·¤Þ¤¹¡£¥µ¥Ý¡¼¥È¤µ¤ì¤ë¤Î¤Ï¡¢É乿²½¤µ¤ì¤¿ URL ¤À¤±¤Ç¤¹¡£¤¿¤À¤·¡¢¥Õ¥¡¥¤¥ë̾¤Ë¤Ä¤¤¤Æ¤Ï¡¢RFC2396 ¤Ë»ØÄꤵ¤ì¤¿ÊýË¡¤ÇÉ乿²½¤ò²ò½ü¤·¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ .LP -.SH "オプション" -.LP - +.SH "¥ª¥×¥·¥ç¥ó" .LP .RS 3 .TP 3 \-debug -Java デãƒãƒƒã‚¬ jdb(1) ã§ã‚¢ãƒ—レットビューアを開始ã—ã¾ã™ã€‚ ã“れã«ã‚ˆã‚Šã€ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆä¸­ã®ã‚¢ãƒ—レットをデãƒãƒƒã‚°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ +Java ¥Ç¥Ð¥Ã¥¬ jdb(1) ¤Ç¥¢¥×¥ì¥Ã¥È¥Ó¥å¡¼¥¢¤ò³«»Ï¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê¡¢¥É¥­¥å¥á¥ó¥ÈÃæ¤Î¥¢¥×¥ì¥Ã¥È¤ò¥Ç¥Ð¥Ã¥°¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ .TP 3 \-encoding \ \ encoding name -入力 HTML ファイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°åを指定ã—ã¾ã™ã€‚ +ÆþÎÏ HTML ¥Õ¥¡¥¤¥ë¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£ .TP 3 \-Jjavaoption -文字列 \f2javaoption\fP ã¯ã€appletviewer を実行ã™ã‚‹ Java インタプリタ㫠1 ã¤ã®å¼•æ•°ã¨ã—ã¦æ¸¡ã•れã¾ã™ã€‚引数ã«ã‚¹ãƒšãƒ¼ã‚¹ã‚’å«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“。複数ã®å¼•æ•°ã¯ã€å„引数ã®ã™ã¹ã¦ã‚’接頭辞 \f3\-J\fP ã§å§‹ã‚ã‚‹ã“ã¨ã«ã‚ˆã‚ŠåŒºåˆ†ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã“れã¯ã€ã‚³ãƒ³ãƒ‘イラã®å®Ÿè¡Œç’°å¢ƒã€ã¾ãŸã¯ãƒ¡ãƒ¢ãƒªãƒ¼ã®åˆ©ç”¨ã«æœ‰åйã§ã™ã€‚ +ʸ»úÎó \f2javaoption\fP ¤Ï¡¢appletviewer ¤ò¼Â¹Ô¤¹¤ë Java ¥¤¥ó¥¿¥×¥ê¥¿¤Ë 1 ¤Ä¤Î°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤Þ¤¹¡£°ú¿ô¤Ë¥¹¥Ú¡¼¥¹¤ò´Þ¤á¤Æ¤Ï¤¤¤±¤Þ¤»¤ó¡£Ê£¿ô¤Î°ú¿ô¤Ï¡¢³Æ°ú¿ô¤Î¤¹¤Ù¤Æ¤òÀÜÆ¬¼­ \f3\-J\fP ¤Ç»Ï¤á¤ë¤³¤È¤Ë¤è¤ê¶èʬ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î¼Â¹Ô´Ä¶­¡¢¤Þ¤¿¤Ï¥á¥â¥ê¡¼¤ÎÍøÍѤËÍ­¸ú¤Ç¤¹¡£ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/apt.1 b/jdk/src/linux/doc/man/ja/apt.1 index 45f9ebb16ff..6255300f0aa 100644 --- a/jdk/src/linux/doc/man/ja/apt.1 +++ b/jdk/src/linux/doc/man/ja/apt.1 @@ -19,102 +19,133 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "02 Jun 2010" +.TH apt 1 "14 Apr 2011" .LP .SH "NAME" .LP .LP -\f2apt\fP \- 注釈処ç†ãƒ„ール +\f2apt\fP \- Ãí¼á½èÍý¥Ä¡¼¥ë .LP -.SH "å½¢å¼" +.SH "·Á¼°" .LP .LP -\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...][\f2javac option\fP] sourcefiles [@files] +\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...] [\f2javac option\fP] sourcefiles [@files] .LP -.SH "パラメータ" +.SH "¥Ñ¥é¥á¡¼¥¿" .LP .LP -オプションã¯é †ä¸åŒã§ã™ã€‚特定ã®ã‚ªãƒ—ションã«é©ç”¨ã•れるパラメータã«ã¤ã„ã¦ã¯ã€ä¸‹è¨˜ã®ã€Œã‚ªãƒ—ションã€ã‚’å‚ç…§ã—ã¦ãã ã•ã„。 +¥ª¥×¥·¥ç¥ó¤Î»ØÄê½ç½ø¤Ë·è¤Þ¤ê¤Ï¤¢¤ê¤Þ¤»¤ó¡£ÆÃÄê¤Î¥ª¥×¥·¥ç¥ó¤ËŬÍѤµ¤ì¤ë¥Ñ¥é¥á¡¼¥¿¤Ë¤Ä¤¤¤Æ¤Ï¡¢²¼µ­¤Î¡Ö¥ª¥×¥·¥ç¥ó¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£ .LP .RS 3 .TP 3 sourcefiles -ゼロã€1 ã¤ã€ã¾ãŸã¯è¤‡æ•°ã®å‡¦ç†å¯¾è±¡ã®ã‚½ãƒ¼ã‚¹ãƒ•ァイル +¥¼¥í¡¢1 ¤Ä¡¢¤Þ¤¿¤ÏÊ£¿ô¤Î½èÍýÂоݤΥ½¡¼¥¹¥Õ¥¡¥¤¥ë .TP 3 @files -ソースファイルã¾ãŸã¯ä»–ã®ã‚ªãƒ—ションを一覧表示ã™ã‚‹ 1 ã¤ã¾ãŸã¯è¤‡æ•°ã®ãƒ•ァイル +¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¾¤Î¥ª¥×¥·¥ç¥ó¤ò°ìÍ÷ɽ¼¨¤¹¤ë 1 ¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥Õ¥¡¥¤¥ë .RE .LP -.SH "説明" +.SH "ÀâÌÀ" .LP .LP -注釈処ç†ãƒ„ール \f2apt\fP ã¯ã€æ–°ã—ã„リフレクト API ã¨ã‚µãƒãƒ¼ãƒˆã‚¤ãƒ³ãƒ•ラストラクãƒãƒ£ãƒ¼ã‹ã‚‰æ§‹æˆã•れã€ãƒ—ログラム注釈を処ç†ã—ã¾ã™ã€‚\f2apt\fP リフレクト API ã¯ã€ 構築時ã®ã‚½ãƒ¼ã‚¹ãƒ™ãƒ¼ã‚¹ã§ã€ãƒ—ログラム構造ã«é–¢ã™ã‚‹èª­ã¿å–り専用ビューをæä¾›ã—ã¾ã™ã€‚ã“れらã®ãƒªãƒ•レクト API ã¯ã€ç·ç§°ã‚’追加ã—ãŸå¾Œã«ã€Java(TM) プログラミング言語ã®åž‹ã‚·ã‚¹ãƒ†ãƒ ã‚’æ­£ã—ãモデル化ã™ã‚‹ã‚ˆã†ã«è¨­è¨ˆã•れã¦ã„ã¾ã™ã€‚最åˆã«ã€\f2apt\fP ã¯ã€æ–°ã—ã„ソースコードã¨ä»–ã®ãƒ•ァイルを作æˆã™ã‚‹æ³¨é‡ˆãƒ—ロセッサを実行ã—ã¾ã™ã€‚次ã«ã€\f2apt\fP ã¯ã€å…ƒã®ã‚½ãƒ¼ã‚¹ãƒ•ァイルã¨ç”Ÿæˆã—ãŸã‚½ãƒ¼ã‚¹ãƒ•ァイルã®ä¸¡æ–¹ã‚’コンパイルã™ã‚‹ãŸã‚ã€é–‹ç™ºãŒæ¥½ã«ãªã‚Šã¾ã™ã€‚ツールã¨ã®ã‚¤ãƒ³ã‚¿ãƒ•ェースã«ä½¿ç”¨ã•れるリフレクト API ãªã©ã® API ã¯ã€\f2com.sun.mirror\fP ã®ã‚µãƒ–パッケージã§ã™ã€‚ +Ãí¼á½èÍý¥Ä¡¼¥ë \f2apt\fP ¤Ï¡¢¿·¤·¤¤¥ê¥Õ¥ì¥¯¥È API ¤È¥µ¥Ý¡¼¥È¥¤¥ó¥Õ¥é¥¹¥È¥é¥¯¥Á¥ã¡¼¤«¤é¹½À®¤µ¤ì¡¢¥×¥í¥°¥é¥àÃí¼á¤ò½èÍý¤·¤Þ¤¹¡£\f2apt\fP ¥ê¥Õ¥ì¥¯¥È API ¤Ï¡¢ ¹½ÃÛ»þ¤Î¥½¡¼¥¹¥Ù¡¼¥¹¤Ç¡¢¥×¥í¥°¥é¥à¹½Â¤¤Ë´Ø¤¹¤ëÆÉ¤ß¼è¤êÀìÍѥӥ塼¤òÄ󶡤·¤Þ¤¹¡£¤³¤ì¤é¤Î¥ê¥Õ¥ì¥¯¥È API ¤Ï¡¢Áí¾Î¤òÄɲä·¤¿¸å¤Ë¡¢Java(TM) ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Î·¿¥·¥¹¥Æ¥à¤òÀµ¤·¤¯¥â¥Ç¥ë²½¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ºÇ½é¤Ë¡¢\f2apt\fP ¤Ï¡¢¿·¤·¤¤¥½¡¼¥¹¥³¡¼¥É¤È¾¤Î¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëÃí¼á¥×¥í¥»¥Ã¥µ¤ò¼Â¹Ô¤·¤Þ¤¹¡£¼¡¤Ë¡¢\f2apt\fP ¤Ï¡¢¸µ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÈÀ¸À®¤·¤¿¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎξÊý¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤¿¤á¡¢³«È¯¤¬³Ú¤Ë¤Ê¤ê¤Þ¤¹¡£¥Ä¡¼¥ë¤È¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë»ÈÍѤµ¤ì¤ë¥ê¥Õ¥ì¥¯¥È API ¤Ê¤É¤Î API ¤Ï¡¢\f2com.sun.mirror\fP ¤Î¥µ¥Ö¥Ñ¥Ã¥±¡¼¥¸¤Ç¤¹¡£ .LP .LP -ãƒ„ãƒ¼ãƒ«ã®æ©Ÿèƒ½ã«é–¢ã™ã‚‹è©³ç´°ã¨ã€\f2apt\fP を使用ã—ãŸé–‹ç™ºæ–¹æ³•ã«ã¤ã„ã¦ã¯ã€ +¥Ä¡¼¥ë¤Îµ¡Ç½¤Ë´Ø¤¹¤ë¾ÜºÙ¤È¡¢\f2apt\fP ¤ò»ÈÍѤ·¤¿³«È¯ÊýË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢ .na -\f4「\fP\f4apt\fP\f3 入門ã€\fP @ +\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/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 From c82deda455b3dd60f35a3eace55357fdcc81e1a0 Mon Sep 17 00:00:00 2001 From: Abhijit Saha <asaha@openjdk.org> Date: Wed, 20 Apr 2011 14:22:08 -0700 Subject: [PATCH 126/144] 7018125: Reverting the JFB version string for JDK releases Reviewed-by: katleman --- jdk/make/common/shared/Defs.gmk | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index cc723658203..44767648b88 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 From 43b343694ff97dfb6bdf67ec43f59f1c779ddda3 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 20 Apr 2011 20:15:27 -0700 Subject: [PATCH 127/144] 7035843: [zh_CN, ja] JConsole mnemonic keys don't work Reviewed-by: ogino --- .../resources/JConsoleResources_ja.java | 58 ++++++++--------- .../resources/JConsoleResources_zh_CN.java | 64 +++++++++---------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java index 8d9e61d27ba..b0709d06e15 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java @@ -103,9 +103,9 @@ public class JConsoleResources_ja extends JConsoleResources { {"CPUUsageFormat","CPU\u4F7F\u7528\u7387: {0}%"}, {"Cancel","\u53D6\u6D88"}, {"Cascade", "\u91CD\u306D\u3066\u8868\u793A(C)"}, - {"Cascade.mnemonic", "C"}, + {"Cascade.mnemonic", 'C'}, {"Chart:", "\u30C1\u30E3\u30FC\u30C8(C):"}, - {"Chart:.mnemonic", "C"}, + {"Chart:.mnemonic", 'C'}, {"Class path","\u30AF\u30E9\u30B9\u30D1\u30B9"}, {"Class","\u30AF\u30E9\u30B9"}, {"ClassName","ClassName"}, @@ -122,7 +122,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"CompositeData","CompositeData"}, {"Config","\u69CB\u6210"}, {"Connect", "\u63A5\u7D9A(C)"}, - {"Connect.mnemonic", "C"}, + {"Connect.mnemonic", 'C'}, {"Connect...","\u63A5\u7D9A..."}, {"ConnectDialog.connectButton.toolTip", "Java\u4EEE\u60F3\u30DE\u30B7\u30F3\u306B\u63A5\u7D9A"}, {"ConnectDialog.accessibleDescription", "\u30ED\u30FC\u30AB\u30EB\u307E\u305F\u306F\u30EA\u30E2\u30FC\u30C8\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\u65B0\u898F\u63A5\u7D9A\u3092\u884C\u3046\u30C0\u30A4\u30A2\u30ED\u30B0"}, @@ -133,7 +133,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Connected. Click to disconnect.","\u63A5\u7D9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u5207\u65AD\u3057\u307E\u3059\u3002"}, {"Connection failed","\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}, {"Connection", "\u63A5\u7D9A(C)"}, - {"Connection.mnemonic", "C"}, + {"Connection.mnemonic", 'C'}, {"Connection name", "\u63A5\u7D9A\u540D"}, {"ConnectionName (disconnected)","{0} (\u5207\u65AD\u6E08)"}, {"Constructor","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF"}, @@ -150,7 +150,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Descriptor", "\u8A18\u8FF0\u5B50"}, {"Details", "\u8A73\u7D30"}, {"Detect Deadlock", "\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u306E\u691C\u51FA(D)"}, - {"Detect Deadlock.mnemonic", "D"}, + {"Detect Deadlock.mnemonic", 'D'}, {"Detect Deadlock.toolTip", "\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u6E08\u30B9\u30EC\u30C3\u30C9\u306E\u691C\u51FA"}, {"Dimension is not supported:","\u6B21\u5143\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093:"}, {"Discard chart", "\u30C1\u30E3\u30FC\u30C8\u306E\u7834\u68C4"}, @@ -168,7 +168,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Error:","\u30A8\u30E9\u30FC:"}, {"Event","\u30A4\u30D9\u30F3\u30C8"}, {"Exit", "\u7D42\u4E86(X)"}, - {"Exit.mnemonic", "X"}, + {"Exit.mnemonic", 'X'}, {"Fail to load plugin", "\u8B66\u544A: \u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {0}"}, {"FileChooser.fileExists.cancelOption", "\u53D6\u6D88"}, {"FileChooser.fileExists.message", "<html><center>\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059:<br>{0}<br>\u7F6E\u63DB\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\u3002"}, @@ -193,16 +193,16 @@ public class JConsoleResources_ja extends JConsoleResources { {"Help.AboutDialog.masthead.title", "JConsole\u306B\u3064\u3044\u3066"}, {"Help.AboutDialog.title", "JConsole: \u8A73\u7D30"}, {"Help.AboutDialog.userGuideLink", "JConsole\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9(U):<br>{0}"}, - {"Help.AboutDialog.userGuideLink.mnemonic", "U"}, + {"Help.AboutDialog.userGuideLink.mnemonic", 'U'}, {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "JConsole\u306B\u3064\u3044\u3066(A)"}, - {"HelpMenu.About.title.mnemonic", "A"}, + {"HelpMenu.About.title.mnemonic", 'A'}, {"HelpMenu.UserGuide.title", "\u30AA\u30F3\u30E9\u30A4\u30F3\u30FB\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9(U)"}, - {"HelpMenu.UserGuide.title.mnemonic", "U"}, + {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u30D8\u30EB\u30D7(H)"}, - {"HelpMenu.title.mnemonic", "H"}, + {"HelpMenu.title.mnemonic", 'H'}, {"Hotspot MBeans...", "Hotspot MBeans(H)..."}, - {"Hotspot MBeans....mnemonic", "H"}, + {"Hotspot MBeans....mnemonic", 'H'}, {"Hotspot MBeans.dialog.accessibleDescription", "Hotspot MBeans\u306E\u7BA1\u7406\u7528\u30C0\u30A4\u30A2\u30ED\u30B0"}, {"Impact","\u5F71\u97FF"}, {"Info","\u60C5\u5831"}, @@ -222,7 +222,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Live Threads","\u5B9F\u884C\u4E2D\u306E\u30B9\u30EC\u30C3\u30C9"}, {"Loaded", "\u30ED\u30FC\u30C9\u6E08"}, {"Local Process:", "\u30ED\u30FC\u30AB\u30EB\u30FB\u30D7\u30ED\u30BB\u30B9(L):"}, - {"Local Process:.mnemonic", "L"}, + {"Local Process:.mnemonic", 'L'}, {"Look and Feel","Look&Feel"}, {"Masthead.font", "Dialog-PLAIN-25"}, {"Management Not Enabled","<b>\u6CE8\u610F</b>: \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u3053\u306E\u30D7\u30ED\u30BB\u30B9\u3067\u306F\u6709\u52B9\u5316\u3055\u308C\u307E\u305B\u3093\u3002"}, @@ -233,20 +233,20 @@ public class JConsoleResources_ja extends JConsoleResources { {"MBeanOperationInfo","MBeanOperationInfo"}, {"MBeans","MBeans"}, {"MBeansTab.clearNotificationsButton", "\u30AF\u30EA\u30A2(C)"}, - {"MBeansTab.clearNotificationsButton.mnemonic", "C"}, + {"MBeansTab.clearNotificationsButton.mnemonic", 'C'}, {"MBeansTab.clearNotificationsButton.toolTip", "\u901A\u77E5\u306E\u30AF\u30EA\u30A2"}, {"MBeansTab.compositeNavigationMultiple", "\u30B3\u30F3\u30DD\u30B8\u30C3\u30C8\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3{0}/{1}"}, {"MBeansTab.compositeNavigationSingle", "\u30B3\u30F3\u30DD\u30B8\u30C3\u30C8\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"}, {"MBeansTab.refreshAttributesButton", "\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5(R)"}, - {"MBeansTab.refreshAttributesButton.mnemonic", "R"}, + {"MBeansTab.refreshAttributesButton.mnemonic", 'R'}, {"MBeansTab.refreshAttributesButton.toolTip", "\u5C5E\u6027\u306E\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5"}, {"MBeansTab.subscribeNotificationsButton", "\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6(S)"}, - {"MBeansTab.subscribeNotificationsButton.mnemonic", "S"}, + {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'}, {"MBeansTab.subscribeNotificationsButton.toolTip", "\u901A\u77E5\u30EA\u30B9\u30CB\u30F3\u30B0\u306E\u958B\u59CB"}, {"MBeansTab.tabularNavigationMultiple", "\u30BF\u30D6\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3{0}/{1}"}, {"MBeansTab.tabularNavigationSingle", "\u30BF\u30D6\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"}, {"MBeansTab.unsubscribeNotificationsButton", "\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6\u89E3\u9664(U)"}, - {"MBeansTab.unsubscribeNotificationsButton.mnemonic", "U"}, + {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'}, {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u901A\u77E5\u30EA\u30B9\u30CB\u30F3\u30B0\u306E\u505C\u6B62"}, {"Manage Hotspot MBeans in: ", "Hotspot MBeans\u306E\u7BA1\u7406: "}, {"Max","\u6700\u5927"}, @@ -263,7 +263,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Message","\u30E1\u30C3\u30BB\u30FC\u30B8"}, {"Method successfully invoked", "\u30E1\u30BD\u30C3\u30C9\u304C\u6B63\u5E38\u306B\u8D77\u52D5\u3055\u308C\u307E\u3057\u305F"}, {"Minimize All", "\u3059\u3079\u3066\u6700\u5C0F\u5316(M)"}, - {"Minimize All.mnemonic", "M"}, + {"Minimize All.mnemonic", 'M'}, {"Minus Version", "\u3053\u308C\u306F{0}\u306E\u30D0\u30FC\u30B8\u30E7\u30F3{1}\u3067\u3059"}, {"Monitor locked", " - \u30ED\u30C3\u30AF\u6E08{0}\n"}, @@ -279,7 +279,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Name State LockName LockOwner", "\u540D\u524D: {0}\n\u72B6\u614B: {2}\u306E{1}\u3001\u6240\u6709\u8005: {3}\n"}, {"New Connection...", "\u65B0\u898F\u63A5\u7D9A(N)..."}, - {"New Connection....mnemonic", "N"}, + {"New Connection....mnemonic", 'N'}, {"New value applied","\u9069\u7528\u3055\u308C\u305F\u65B0\u898F\u5024"}, {"No attribute selected","\u5C5E\u6027\u304C\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"}, {"No deadlock detected","\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"}, @@ -305,19 +305,19 @@ public class JConsoleResources_ja extends JConsoleResources { {"OverviewPanel.plotter.accessibleName", "{0}\u306E\u30C1\u30E3\u30FC\u30C8\u3002"}, {"Parameter", "\u30D1\u30E9\u30E1\u30FC\u30BF"}, {"Password: ", "\u30D1\u30B9\u30EF\u30FC\u30C9(P): "}, - {"Password: .mnemonic", "P"}, + {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u30D1\u30B9\u30EF\u30FC\u30C9"}, {"Peak","\u30D4\u30FC\u30AF"}, {"Perform GC", "GC\u306E\u5B9F\u884C(G)"}, - {"Perform GC.mnemonic", "G"}, + {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"}, {"Plotter.accessibleName", "\u30C1\u30E3\u30FC\u30C8"}, {"Plotter.accessibleName.keyAndValue", "{0}={1}\n"}, {"Plotter.accessibleName.noData", "\u30C7\u30FC\u30BF\u304C\u30D7\u30ED\u30C3\u30C8\u3055\u308C\u307E\u305B\u3093\u3002"}, {"Plotter.saveAsMenuItem", "\u540D\u524D\u3092\u4ED8\u3051\u3066\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58(A)..."}, - {"Plotter.saveAsMenuItem.mnemonic", "A"}, + {"Plotter.saveAsMenuItem.mnemonic", 'A'}, {"Plotter.timeRangeMenu", "\u6642\u9593\u7BC4\u56F2(T)"}, - {"Plotter.timeRangeMenu.mnemonic", "T"}, + {"Plotter.timeRangeMenu.mnemonic", 'T'}, {"Problem adding listener","\u30EA\u30B9\u30CA\u30FC\u8FFD\u52A0\u4E2D\u306E\u554F\u984C"}, {"Problem displaying MBean", "MBean\u8868\u793A\u4E2D\u306E\u554F\u984C"}, {"Problem invoking", "\u547C\u51FA\u3057\u4E2D\u306E\u554F\u984C"}, @@ -329,11 +329,11 @@ public class JConsoleResources_ja extends JConsoleResources { {"Received","\u53D7\u4FE1\u6E08"}, {"Reconnect","\u518D\u63A5\u7D9A"}, {"Remote Process:", "\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9(R):"}, - {"Remote Process:.mnemonic", "R"}, + {"Remote Process:.mnemonic", 'R'}, {"Remote Process.textField.accessibleName", "\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9"}, {"Remove","\u524A\u9664"}, {"Restore All", "\u3059\u3079\u3066\u5FA9\u5143(R)"}, - {"Restore All.mnemonic", "R"}, + {"Restore All.mnemonic", 'R'}, {"Return value", "\u623B\u308A\u5024"}, {"ReturnType", "ReturnType"}, {"SeqNum","SeqNum"}, @@ -364,9 +364,9 @@ public class JConsoleResources_ja extends JConsoleResources { {"ThreadTab.threadPlotter.accessibleName", "\u30B9\u30EC\u30C3\u30C9\u6570\u306E\u30C1\u30E3\u30FC\u30C8\u3002"}, {"Threshold","\u3057\u304D\u3044\u5024"}, {"Tile", "\u4E26\u3079\u3066\u8868\u793A(T)"}, - {"Tile.mnemonic", "T"}, + {"Tile.mnemonic", 'T'}, {"Time Range:", "\u6642\u9593\u7BC4\u56F2(T):"}, - {"Time Range:.mnemonic", "T"}, + {"Time Range:.mnemonic", 'T'}, {"Time", "\u6642\u9593"}, {"TimeStamp","TimeStamp"}, {"Total Loaded", "\u30ED\u30FC\u30C9\u6E08\u5408\u8A08"}, @@ -387,7 +387,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"remoteTF.usage","<b>\u4F7F\u7528\u65B9\u6CD5</b>: <hostname>:<port>\u307E\u305F\u306Fservice:jmx:<protocol>:<sap>"}, {"Used","\u4F7F\u7528\u6E08"}, {"Username: ", "\u30E6\u30FC\u30B6\u30FC\u540D(U): "}, - {"Username: .mnemonic", "U"}, + {"Username: .mnemonic", 'U'}, {"Username.accessibleName", "\u30E6\u30FC\u30B6\u30FC\u540D"}, {"UserData","UserData"}, {"Virtual Machine","\u4EEE\u60F3\u30DE\u30B7\u30F3"}, @@ -400,8 +400,8 @@ public class JConsoleResources_ja extends JConsoleResources { {"Verbose Output.toolTip", "\u30AF\u30E9\u30B9\u8AAD\u8FBC\u307F\u30B7\u30B9\u30C6\u30E0\u3067\u8A73\u7D30\u51FA\u529B\u3092\u6709\u52B9\u306B\u3059\u308B"}, {"View value", "\u5024\u306E\u8868\u793A"}, {"View","\u8868\u793A"}, - {"Window", "\u30A6\u30A3\u30F3\u30C9\u30A6"}, - {"Window.mnemonic", "W"}, + {"Window", "\u30A6\u30A3\u30F3\u30C9\u30A6(W)"}, + {"Window.mnemonic", 'W'}, {"Windows","\u30A6\u30A3\u30F3\u30C9\u30A6"}, {"Writable","\u66F8\u8FBC\u307F\u53EF\u80FD"}, {"You cannot drop a class here", "\u30AF\u30E9\u30B9\u3092\u3053\u3053\u306B\u30C9\u30ED\u30C3\u30D7\u3067\u304D\u307E\u305B\u3093"}, diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java index 54d7793f9d7..07f132b4752 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java @@ -102,10 +102,10 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"CPU Usage","CPU \u5360\u7528\u7387"}, {"CPUUsageFormat","CPU \u5360\u7528\u7387: {0}%"}, {"Cancel","\u53D6\u6D88"}, - {"Cascade", "\u7EA7\u8054(C)"}, - {"Cascade.mnemonic", "C"}, + {"Cascade", "\u5C42\u53E0(C)"}, + {"Cascade.mnemonic", 'C'}, {"Chart:", "\u56FE\u8868(C):"}, - {"Chart:.mnemonic", "C"}, + {"Chart:.mnemonic", 'C'}, {"Class path","\u7C7B\u8DEF\u5F84"}, {"Class","\u7C7B"}, {"ClassName","ClassName"}, @@ -122,7 +122,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"CompositeData","CompositeData"}, {"Config","\u914D\u7F6E"}, {"Connect", "\u8FDE\u63A5(C)"}, - {"Connect.mnemonic", "C"}, + {"Connect.mnemonic", 'C'}, {"Connect...","\u8FDE\u63A5..."}, {"ConnectDialog.connectButton.toolTip", "\u8FDE\u63A5\u5230 Java \u865A\u62DF\u673A"}, {"ConnectDialog.accessibleDescription", "\u7528\u4E8E\u4E0E\u672C\u5730\u6216\u8FDC\u7A0B Java \u865A\u62DF\u673A\u5EFA\u7ACB\u65B0\u8FDE\u63A5\u7684\u5BF9\u8BDD\u6846"}, @@ -133,7 +133,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Connected. Click to disconnect.","\u5DF2\u8FDE\u63A5\u3002\u5355\u51FB\u53EF\u65AD\u5F00\u8FDE\u63A5\u3002"}, {"Connection failed","\u8FDE\u63A5\u5931\u8D25"}, {"Connection", "\u8FDE\u63A5(C)"}, - {"Connection.mnemonic", "C"}, + {"Connection.mnemonic", 'C'}, {"Connection name", "\u8FDE\u63A5\u540D\u79F0"}, {"ConnectionName (disconnected)","{0} (\u5DF2\u65AD\u5F00\u8FDE\u63A5)"}, {"Constructor","\u6784\u9020\u5668"}, @@ -150,7 +150,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Descriptor", "\u63CF\u8FF0\u7B26"}, {"Details", "\u8BE6\u7EC6\u8D44\u6599"}, {"Detect Deadlock", "\u68C0\u6D4B\u6B7B\u9501(D)"}, - {"Detect Deadlock.mnemonic", "D"}, + {"Detect Deadlock.mnemonic", 'D'}, {"Detect Deadlock.toolTip", "\u68C0\u6D4B\u5904\u4E8E\u6B7B\u9501\u72B6\u6001\u7684\u7EBF\u7A0B"}, {"Dimension is not supported:","\u4E0D\u652F\u6301\u7EF4:"}, {"Discard chart", "\u653E\u5F03\u56FE\u8868"}, @@ -168,7 +168,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Error:","\u9519\u8BEF:"}, {"Event","\u4E8B\u4EF6"}, {"Exit", "\u9000\u51FA(X)"}, - {"Exit.mnemonic", "X"}, + {"Exit.mnemonic", 'X'}, {"Fail to load plugin", "\u8B66\u544A: \u65E0\u6CD5\u52A0\u8F7D\u63D2\u4EF6: {0}"}, {"FileChooser.fileExists.cancelOption", "\u53D6\u6D88"}, {"FileChooser.fileExists.message", "<html><center>\u6587\u4EF6\u5DF2\u5B58\u5728:<br>{0}<br>\u662F\u5426\u8981\u66FF\u6362?"}, @@ -193,17 +193,17 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Help.AboutDialog.masthead.title", "\u5173\u4E8E JConsole"}, {"Help.AboutDialog.title", "JConsole: \u5173\u4E8E"}, {"Help.AboutDialog.userGuideLink", "JConsole \u7528\u6237\u6307\u5357(U):<br>{0}"}, - {"Help.AboutDialog.userGuideLink.mnemonic", "U"}, + {"Help.AboutDialog.userGuideLink.mnemonic", 'U'}, {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "\u5173\u4E8E JConsole(A)"}, - {"HelpMenu.About.title.mnemonic", "A"}, + {"HelpMenu.About.title.mnemonic", 'A'}, {"HelpMenu.UserGuide.title", "\u8054\u673A\u7528\u6237\u6307\u5357(U)"}, - {"HelpMenu.UserGuide.title.mnemonic", "U"}, + {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u5E2E\u52A9(H)"}, - {"HelpMenu.title.mnemonic", "H"}, - {"Hotspot MBeans...", "\u70ED\u70B9 MBean(H)..."}, - {"Hotspot MBeans....mnemonic", "H"}, - {"Hotspot MBeans.dialog.accessibleDescription", "\u7528\u4E8E\u7BA1\u7406\u70ED\u70B9 MBean \u7684\u5BF9\u8BDD\u6846"}, + {"HelpMenu.title.mnemonic", 'H'}, + {"Hotspot MBeans...", "HotSpot MBean(H)..."}, + {"Hotspot MBeans....mnemonic", 'H'}, + {"Hotspot MBeans.dialog.accessibleDescription", "\u7528\u4E8E\u7BA1\u7406 HotSpot MBean \u7684\u5BF9\u8BDD\u6846"}, {"Impact","\u5F71\u54CD"}, {"Info","\u4FE1\u606F"}, {"INFO","INFO"}, @@ -222,7 +222,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Live Threads","\u6D3B\u52A8\u7EBF\u7A0B"}, {"Loaded", "\u5DF2\u52A0\u8F7D"}, {"Local Process:", "\u672C\u5730\u8FDB\u7A0B(L):"}, - {"Local Process:.mnemonic", "L"}, + {"Local Process:.mnemonic", 'L'}, {"Look and Feel","\u5916\u89C2"}, {"Masthead.font", "Dialog-PLAIN-25"}, {"Management Not Enabled","<b>\u6CE8</b>: \u672A\u5BF9\u6B64\u8FDB\u7A0B\u542F\u7528\u7BA1\u7406\u4EE3\u7406\u3002"}, @@ -233,22 +233,22 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"MBeanOperationInfo","MBeanOperationInfo"}, {"MBeans","MBean"}, {"MBeansTab.clearNotificationsButton", "\u6E05\u9664(C)"}, - {"MBeansTab.clearNotificationsButton.mnemonic", "C"}, + {"MBeansTab.clearNotificationsButton.mnemonic", 'C'}, {"MBeansTab.clearNotificationsButton.toolTip", "\u6E05\u9664\u901A\u77E5"}, {"MBeansTab.compositeNavigationMultiple", "\u7EC4\u5408\u5BFC\u822A{0}/{1}"}, {"MBeansTab.compositeNavigationSingle", "\u7EC4\u5408\u5BFC\u822A"}, {"MBeansTab.refreshAttributesButton", "\u5237\u65B0(R)"}, - {"MBeansTab.refreshAttributesButton.mnemonic", "R"}, + {"MBeansTab.refreshAttributesButton.mnemonic", 'R'}, {"MBeansTab.refreshAttributesButton.toolTip", "\u5237\u65B0\u5C5E\u6027"}, {"MBeansTab.subscribeNotificationsButton", "\u8BA2\u9605(S)"}, - {"MBeansTab.subscribeNotificationsButton.mnemonic", "S"}, + {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'}, {"MBeansTab.subscribeNotificationsButton.toolTip", "\u5F00\u59CB\u76D1\u542C\u901A\u77E5"}, {"MBeansTab.tabularNavigationMultiple", "\u8868\u683C\u5F0F\u5BFC\u822A{0}/{1}"}, {"MBeansTab.tabularNavigationSingle", "\u8868\u683C\u5F0F\u5BFC\u822A"}, {"MBeansTab.unsubscribeNotificationsButton", "\u53D6\u6D88\u8BA2\u9605(U)"}, - {"MBeansTab.unsubscribeNotificationsButton.mnemonic", "U"}, + {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'}, {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u505C\u6B62\u76D1\u542C\u901A\u77E5"}, - {"Manage Hotspot MBeans in: ", "\u7BA1\u7406\u4EE5\u4E0B\u4F4D\u7F6E\u7684\u70ED\u70B9 MBean: "}, + {"Manage Hotspot MBeans in: ", "\u7BA1\u7406\u4EE5\u4E0B\u4F4D\u7F6E\u7684 HotSpot MBean: "}, {"Max","\u6700\u5927\u503C"}, {"Maximum heap size","\u6700\u5927\u5806\u5927\u5C0F"}, {"Memory","\u5185\u5B58"}, @@ -263,7 +263,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Message","\u6D88\u606F"}, {"Method successfully invoked", "\u5DF2\u6210\u529F\u8C03\u7528\u65B9\u6CD5"}, {"Minimize All", "\u5168\u90E8\u6700\u5C0F\u5316(M)"}, - {"Minimize All.mnemonic", "M"}, + {"Minimize All.mnemonic", 'M'}, {"Minus Version", "\u8FD9\u662F{0}\u7248\u672C {1}"}, {"Monitor locked", " - \u5DF2\u9501\u5B9A{0}\n"}, @@ -279,7 +279,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Name State LockName LockOwner", "\u540D\u79F0: {0}\n\u72B6\u6001: {2}\u4E0A\u7684{1}, \u62E5\u6709\u8005: {3}\n"}, {"New Connection...", "\u65B0\u5EFA\u8FDE\u63A5(N)..."}, - {"New Connection....mnemonic", "N"}, + {"New Connection....mnemonic", 'N'}, {"New value applied","\u5DF2\u5E94\u7528\u65B0\u503C"}, {"No attribute selected","\u672A\u9009\u62E9\u5C5E\u6027"}, {"No deadlock detected","\u672A\u68C0\u6D4B\u5230\u6B7B\u9501"}, @@ -305,19 +305,19 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"OverviewPanel.plotter.accessibleName", "{0}\u7684\u56FE\u8868\u3002"}, {"Parameter", "\u53C2\u6570"}, {"Password: ", "\u53E3\u4EE4(P): "}, - {"Password: .mnemonic", "P"}, + {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u53E3\u4EE4"}, {"Peak","\u5CF0\u503C"}, {"Perform GC", "\u6267\u884C GC(G)"}, - {"Perform GC.mnemonic", "G"}, + {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u8BF7\u6C42\u5783\u573E\u6536\u96C6"}, {"Plotter.accessibleName", "\u56FE\u8868"}, {"Plotter.accessibleName.keyAndValue", "{0}={1}\n"}, {"Plotter.accessibleName.noData", "\u672A\u7ED8\u5236\u6570\u636E\u3002"}, {"Plotter.saveAsMenuItem", "\u5C06\u6570\u636E\u53E6\u5B58\u4E3A(A)..."}, - {"Plotter.saveAsMenuItem.mnemonic", "A"}, + {"Plotter.saveAsMenuItem.mnemonic", 'A'}, {"Plotter.timeRangeMenu", "\u65F6\u95F4\u8303\u56F4(T)"}, - {"Plotter.timeRangeMenu.mnemonic", "T"}, + {"Plotter.timeRangeMenu.mnemonic", 'T'}, {"Problem adding listener","\u6DFB\u52A0\u76D1\u542C\u7A0B\u5E8F\u65F6\u51FA\u73B0\u95EE\u9898"}, {"Problem displaying MBean", "\u663E\u793A MBean \u65F6\u51FA\u73B0\u95EE\u9898"}, {"Problem invoking", "\u8C03\u7528\u65F6\u51FA\u73B0\u95EE\u9898"}, @@ -329,11 +329,11 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Received","\u6536\u5230"}, {"Reconnect","\u91CD\u65B0\u8FDE\u63A5"}, {"Remote Process:", "\u8FDC\u7A0B\u8FDB\u7A0B(R):"}, - {"Remote Process:.mnemonic", "R"}, + {"Remote Process:.mnemonic", 'R'}, {"Remote Process.textField.accessibleName", "\u8FDC\u7A0B\u8FDB\u7A0B"}, {"Remove","\u5220\u9664"}, {"Restore All", "\u5168\u90E8\u8FD8\u539F(R)"}, - {"Restore All.mnemonic", "R"}, + {"Restore All.mnemonic", 'R'}, {"Return value", "\u8FD4\u56DE\u503C"}, {"ReturnType", "ReturnType"}, {"SeqNum","SeqNum"}, @@ -364,9 +364,9 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"ThreadTab.threadPlotter.accessibleName", "\u8868\u793A\u7EBF\u7A0B\u6570\u7684\u56FE\u8868\u3002"}, {"Threshold","\u9608\u503C"}, {"Tile", "\u5E73\u94FA(T)"}, - {"Tile.mnemonic", "T"}, + {"Tile.mnemonic", 'T'}, {"Time Range:", "\u65F6\u95F4\u8303\u56F4(T):"}, - {"Time Range:.mnemonic", "T"}, + {"Time Range:.mnemonic", 'T'}, {"Time", "\u65F6\u95F4"}, {"TimeStamp","TimeStamp"}, {"Total Loaded", "\u52A0\u8F7D\u603B\u6570"}, @@ -387,7 +387,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"remoteTF.usage","<b>\u7528\u6CD5</b>: <hostname>:<port> \u6216 service:jmx:<protocol>:<sap>"}, {"Used","\u5DF2\u7528"}, {"Username: ", "\u7528\u6237\u540D(U): "}, - {"Username: .mnemonic", "U"}, + {"Username: .mnemonic", 'U'}, {"Username.accessibleName", "\u7528\u6237\u540D"}, {"UserData","UserData"}, {"Virtual Machine","\u865A\u62DF\u673A"}, @@ -401,7 +401,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"View value", "\u89C6\u56FE\u503C"}, {"View","\u89C6\u56FE"}, {"Window", "\u7A97\u53E3(W)"}, - {"Window.mnemonic", "W"}, + {"Window.mnemonic", 'W'}, {"Windows","Windows"}, {"Writable","\u53EF\u5199"}, {"You cannot drop a class here", "\u65E0\u6CD5\u5220\u9664\u6B64\u5904\u7684\u7C7B"}, From 82d9a199f22ed47f490e4bb9899268ca4fb14f0a Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:32:42 -0700 Subject: [PATCH 128/144] Added tag jdk7-b139 for changeset f8890645b255 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 1bf6ba3b7d6..0c499488b3e 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -113,3 +113,4 @@ ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134 2fe76e73adaa5133ac559f0b3c2c0707eca04580 jdk7-b136 7654afc6a29e43cb0a1343ce7f1287bf690d5e5f jdk7-b137 fc47c97bbbd91b1f774d855c48a7e285eb1a351a jdk7-b138 +7ed6d0b9aaa12320832a7ddadb88d6d8d0dda4c1 jdk7-b139 From 78d091c31e53b2642d5c2153a7127d99acf4675b Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:32:48 -0700 Subject: [PATCH 129/144] Added tag jdk7-b139 for changeset 01cb01fa8690 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index f5b10590ec6..4e2aad7b7fe 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -113,3 +113,4 @@ e0b72ae5dc5e824b342801c8d1d336a55eb54e2c jdk7-b135 48ef0c712e7cbf272f47f9224db92a3c6a9e2612 jdk7-b136 a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137 78d8cf04697e9df54f7f11e195b7da29b8e345a2 jdk7-b138 +60b074ec6fcf5cdf9efce22fdfb02326ed8fa2d3 jdk7-b139 From f86b47af7c02f3f15d72f2e63bedea76432da372 Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:32:54 -0700 Subject: [PATCH 130/144] Added tag jdk7-b139 for changeset 3d6edd0ae4e9 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 10932c75088..78f25cf1edd 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -164,3 +164,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 2dbcb4a4d8dace5fe78ceb563b134f1fb296cd8f hs21-b07 0930dc920c185afbf40fed9a655290b8e5b16783 jdk7-b138 0930dc920c185afbf40fed9a655290b8e5b16783 hs21-b08 +611e19a16519d6fb5deea9ab565336e6e6ee475d jdk7-b139 From 9501c6fe3c7ba81a04d0bc34498aa5bb119bd002 Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:33:03 -0700 Subject: [PATCH 131/144] Added tag jdk7-b139 for changeset 190a0cc8ef93 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 3a3752b1430..b8136de0b51 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -113,3 +113,4 @@ d56b326ae0544fc16c3e0d0285876f3c82054db2 jdk7-b134 1759daa85d33800bd578853f9531f9de73f70fc7 jdk7-b136 1d87f7460cde7f8f30af668490f82b52b879bfd8 jdk7-b137 be3758943770a0a3dd4be6a1cb4063507c4d7062 jdk7-b138 +28c7c0ed2444607829ba11ad827f8d52197a2830 jdk7-b139 From 65211ff93d361aa3da480629875e92573737d757 Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:33:04 -0700 Subject: [PATCH 132/144] Added tag jdk7-b139 for changeset abe0fef42da3 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 2c63e42ab57..0ef77285c96 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -113,3 +113,4 @@ d5fc61f18043765705ef22b57a68c924ab2f1a5b jdk7-b135 c81d289c9a532d6e94af3c09d856a2a20529040f jdk7-b136 ccea3282991ce8b678e188cf32a8239f76ff3bfa jdk7-b137 cc956c8a8255583535597e9a63db23c510e9a063 jdk7-b138 +c025078c8362076503bb83b8e4da14ba7b347940 jdk7-b139 From 815e5d03021a3a8c037988d7f3be9be515b06cfb Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:33:10 -0700 Subject: [PATCH 133/144] Added tag jdk7-b139 for changeset 9d9c9b8d0e5c --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) 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 From 47d82e1ad5ba45868057adb6adaae0837fe86511 Mon Sep 17 00:00:00 2001 From: David Katleman <katleman@openjdk.org> Date: Thu, 21 Apr 2011 15:33:25 -0700 Subject: [PATCH 134/144] Added tag jdk7-b139 for changeset af2ac0dd2fa6 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 74abba91e7f..8ea0912e659 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -113,3 +113,4 @@ e77e98f936e83d94c9b56cc7af218dc822a06122 jdk7-b133 ed0f7f1f9511db4f9615b1426d22f8b961629275 jdk7-b136 a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137 53f212bed4f4304dce7f0bf0fa01c998c65bacd6 jdk7-b138 +853b6bb99f9b58eb7cf8211c67d3b6e4f1228a3e jdk7-b139 From 4e01afab2d1b609c02a497557b5e4af4f5436d05 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Thu, 21 Apr 2011 18:26:04 -0700 Subject: [PATCH 135/144] 7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber Reviewed-by: igor --- jdk/make/common/Defs-linux.gmk | 5 ++-- jdk/make/common/Defs-solaris.gmk | 40 ++++++++++++++----------- jdk/make/common/shared/Compiler-gcc.gmk | 2 ++ jdk/make/common/shared/Compiler-sun.gmk | 5 +++- jdk/make/sun/jpeg/Makefile | 11 +++++-- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index fcaad70af32..515691dd293 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -251,9 +251,8 @@ LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX) # statically link libgcc but will print a warning with the flag. We don't # want the warning, so check gcc version first. # -CC_VER_MAJOR := $(shell $(CC) -dumpversion | $(SED) 's/egcs-//' | $(CUT) -d'.' -f1) -ifeq ("$(CC_VER_MAJOR)", "3") -OTHER_LDFLAGS += -static-libgcc +ifeq ($(CC_MAJORVER),3) + OTHER_LDFLAGS += -static-libgcc endif # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk index 1442959756f..c062f275c25 100644 --- a/jdk/make/common/Defs-solaris.gmk +++ b/jdk/make/common/Defs-solaris.gmk @@ -457,14 +457,15 @@ else # On X86, make sure tail call optimization is off # The z and y are the tail call optimizations. ifeq ($(ARCH_FAMILY), i586) - ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) - ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 8), 1) - # Somehow, tail call optimization is creeping in. - # Make sure it is off. - # WARNING: These may cause compiler warnings about duplicate -O options - CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz - CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz - endif + CC_NEWER_THAN_58 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) ) + ifeq ($(CC_NEWER_THAN_58),1) + # Somehow, tail call optimization is creeping in. + # Make sure it is off. + # WARNING: These may cause compiler warnings about duplicate -O options + CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz + CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz endif endif @@ -481,14 +482,15 @@ else CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B endif - ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) - ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 6), 1) - # Do NOT use frame pointer register as a general purpose opt register - CC_OPT/NONE += -xregs=no%frameptr - CXX_OPT/NONE += -xregs=no%frameptr - CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr - CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr - endif + CC_NEWER_THAN_56 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) + ifeq ($(CC_NEWER_THAN_56),1) + # Do NOT use frame pointer register as a general purpose opt register + CC_OPT/NONE += -xregs=no%frameptr + CXX_OPT/NONE += -xregs=no%frameptr + CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr + CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr endif endif @@ -566,8 +568,10 @@ else CFLAGS_REQUIRED_sparc += -xregs=no%appl CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl endif - ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) - # We MUST allow data alignment of 4 for sparc V8 (32bit) + CC_NEWER_THAN_56 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) + ifeq ($(CC_NEWER_THAN_56),1) # Presents an ABI issue with customer JNI libs? We must be able to # to handle 4byte aligned objects? (rare occurance, but possible?) CFLAGS_REQUIRED_sparc += -xmemalign=4s diff --git a/jdk/make/common/shared/Compiler-gcc.gmk b/jdk/make/common/shared/Compiler-gcc.gmk index 570ea1c85db..092ec168346 100644 --- a/jdk/make/common/shared/Compiler-gcc.gmk +++ b/jdk/make/common/shared/Compiler-gcc.gmk @@ -87,6 +87,8 @@ endif # Get gcc version _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) CC_VER :=$(call GetVersion,"$(_CC_VER)") +CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) +CC_MINORVER :=$(call MinorVersion,$(CC_VER)) # Name of compiler COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER)) diff --git a/jdk/make/common/shared/Compiler-sun.gmk b/jdk/make/common/shared/Compiler-sun.gmk index 3881d393dc9..fc0e9df6e3a 100644 --- a/jdk/make/common/shared/Compiler-sun.gmk +++ b/jdk/make/common/shared/Compiler-sun.gmk @@ -117,7 +117,10 @@ ifeq ($(ARCH_FAMILY), i586) LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64 endif # Pick the options we want based on the compiler being used. (5.9 or newer) -ifeq ($(shell expr $(CC_MINORVER) \>= 9), 1) +CC_59_OR_NEWER := \ + $(shell expr $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) ) +ifeq ($(CC_59_OR_NEWER), 1) XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32) XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64) LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32) diff --git a/jdk/make/sun/jpeg/Makefile b/jdk/make/sun/jpeg/Makefile index da2aff171f3..f73acf3a2e1 100644 --- a/jdk/make/sun/jpeg/Makefile +++ b/jdk/make/sun/jpeg/Makefile @@ -73,9 +73,14 @@ ifeq ($(PLATFORM), linux) # Recommended way to avoid such warning is to declare the variable as # volatile to prevent the optimization. However, this approach does not # work because we have to declare all variables as volatile in result. -ifndef CROSS_COMPILE_ARCH - OTHER_CFLAGS += -Wno-clobbered -endif + ifndef CROSS_COMPILE_ARCH + CC_43_OR_NEWER := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ + \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) + ifeq ($(CC_43_OR_NEWER),1) + OTHER_CFLAGS += -Wno-clobbered + endif + endif endif include $(BUILDDIR)/common/Mapfile-vers.gmk From fc92df058ddae0187b8cbf95d00189a59fc6c033 Mon Sep 17 00:00:00 2001 From: Erik Trimble <trims@openjdk.org> Date: Thu, 21 Apr 2011 19:49:49 -0700 Subject: [PATCH 136/144] Added tag hs21-b09 for changeset 3d6edd0ae4e9 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 78f25cf1edd..145ab668bff 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -165,3 +165,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 0930dc920c185afbf40fed9a655290b8e5b16783 jdk7-b138 0930dc920c185afbf40fed9a655290b8e5b16783 hs21-b08 611e19a16519d6fb5deea9ab565336e6e6ee475d jdk7-b139 +611e19a16519d6fb5deea9ab565336e6e6ee475d hs21-b09 From 218457a8457e8a65f55f6a4639906215009bb673 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Fri, 22 Apr 2011 10:21:37 -0700 Subject: [PATCH 137/144] 6595663: Manifest on jars contain JavaBeans entries Reviewed-by: alanb, mchung --- jdk/make/common/Demo.gmk | 8 ++++++-- jdk/make/common/Release-embedded.gmk | 4 ++-- jdk/make/common/Release.gmk | 23 +++++++++++++++-------- jdk/make/javax/crypto/Defs-jce.gmk | 8 +++++--- jdk/make/tools/manifest.mf | 2 +- 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/jdk/make/common/Demo.gmk b/jdk/make/common/Demo.gmk index c804e94d180..a3788aea7d5 100644 --- a/jdk/make/common/Demo.gmk +++ b/jdk/make/common/Demo.gmk @@ -211,9 +211,13 @@ $(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../java_crw_demo/% endif # Jar manifest file -$(DEMO_MANIFEST): +MAINMANIFEST = $(JDK_TOPDIR)/make/tools/manifest.mf +$(DEMO_MANIFEST): $(MAINMANIFEST) @$(prep-target) - $(ECHO) "Main-Class: $(DEMO_MAINCLASS)" > $@ + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + $(ECHO) "Main-Class: $(DEMO_MAINCLASS)" >> $@ ifdef DEMO_MANIFEST_ATTR $(ECHO) "$(DEMO_MANIFEST_ATTR)" >> $@ endif diff --git a/jdk/make/common/Release-embedded.gmk b/jdk/make/common/Release-embedded.gmk index f7a87f28421..06e2127ecf3 100644 --- a/jdk/make/common/Release-embedded.gmk +++ b/jdk/make/common/Release-embedded.gmk @@ -84,10 +84,10 @@ MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE) # Create headless rt.jar HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar -$(HL_RT_JAR): MakeHeadlessJarFileList $(JAR_MANIFEST_FILE) +$(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) ; \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \ $(JAR_JFLAGS) @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index 17297d573b0..ccf566562ec 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -609,8 +609,8 @@ $(RT_JAR_FILELIST) + $(RES_JAR_FILELIST): \ @$(java-vm-cleanup) # Create the manifest file. -JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp -$(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) +RT_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/rt_manifest.tmp +$(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) $(prep-target) $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ @@ -618,21 +618,28 @@ $(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) $(ECHO) >> $@ $(CAT) $(BEANMANIFEST) >> $@ +OTHER_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/other_manifest.tmp +$(OTHER_JAR_MANIFEST_FILE): $(MAINMANIFEST) + $(prep-target) + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + # Create resources.jar containing non-class files RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar -$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(JAR_MANIFEST_FILE) +$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) # Create jsse.jar containing SunJSSE implementation classes JSSE_JAR=$(ABS_TEMPDIR)/jsse-orig.jar -$(JSSE_JAR): $(JAR_MANIFEST_FILE) +$(JSSE_JAR): $(OTHER_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ $(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) @@ -676,10 +683,10 @@ endif # Create rt.jar RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar -$(RT_JAR): $(RT_JAR_FILELIST) $(JAR_MANIFEST_FILE) +$(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \ @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) diff --git a/jdk/make/javax/crypto/Defs-jce.gmk b/jdk/make/javax/crypto/Defs-jce.gmk index bd5cec9d4eb..f4e2d0bb05f 100644 --- a/jdk/make/javax/crypto/Defs-jce.gmk +++ b/jdk/make/javax/crypto/Defs-jce.gmk @@ -31,9 +31,11 @@ include $(BUILDDIR)/common/Release.gmk JCE_MANIFEST_FILE = $(TEMPDIR)/manifest.mf $(JCE_MANIFEST_FILE): $(MAINMANIFEST) $(prep-target) - ( $(SED) "s/@@RELEASE@@/$(RELEASE)/" $<; \ - $(ECHO) "Extension-Name: javax.crypto"; \ - $(ECHO) "Implementation-Vendor-Id: com.sun"; ) > $@ + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + $(ECHO) "Extension-Name: javax.crypto" >> $@ + $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@ README-MAKEFILE_WARNING = \ "\nPlease read make/javax/crypto/Makefile for further build instructions." diff --git a/jdk/make/tools/manifest.mf b/jdk/make/tools/manifest.mf index 5e631b7bb41..bbfd1c3cfb6 100644 --- a/jdk/make/tools/manifest.mf +++ b/jdk/make/tools/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Specification-Title: Java Platform API Specification Specification-Version: 1.7 -Specification-Vendor: Oracle +Specification-Vendor: Oracle Corporation Implementation-Title: Java Runtime Environment Implementation-Version: @@RELEASE@@ Implementation-Vendor: @@COMPANY_NAME@@ From 1b20e61722ce7bff61e43c5dee59f7004b0d5031 Mon Sep 17 00:00:00 2001 From: Erik Trimble <trims@openjdk.org> Date: Fri, 22 Apr 2011 18:52:28 -0700 Subject: [PATCH 138/144] 7039044: Bump the HS21 build number to 10 Update the HS21 build number to 10 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 29e472d73f0..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=09 +HS_BUILD_NUMBER=10 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 From f23eb2096ff33fc2d718cbe70bbae04720391449 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Mon, 25 Apr 2011 16:39:49 -0700 Subject: [PATCH 139/144] 7034259: [all] incorrect mnemonic keys in JCP automatic update advanced settings dialog Reviewed-by: yhuang --- .../swing/plaf/gtk/resources/gtk.properties | 4 ++++ .../plaf/gtk/resources/gtk_de.properties | 4 ++++ .../plaf/gtk/resources/gtk_es.properties | 4 ++++ .../plaf/gtk/resources/gtk_fr.properties | 4 ++++ .../plaf/gtk/resources/gtk_it.properties | 4 ++++ .../plaf/gtk/resources/gtk_ja.properties | 4 ++++ .../plaf/gtk/resources/gtk_ko.properties | 4 ++++ .../plaf/gtk/resources/gtk_pt_BR.properties | 4 ++++ .../plaf/gtk/resources/gtk_sv.properties | 4 ++++ .../plaf/gtk/resources/gtk_zh_CN.properties | 4 ++++ .../plaf/gtk/resources/gtk_zh_TW.properties | 4 ++++ .../plaf/basic/resources/basic.properties | 10 +++++----- .../plaf/basic/resources/basic_de.properties | 8 ++++---- .../plaf/basic/resources/basic_es.properties | 8 ++++---- .../plaf/basic/resources/basic_fr.properties | 8 ++++---- .../plaf/basic/resources/basic_ja.properties | 20 +++++++++---------- .../plaf/basic/resources/basic_ko.properties | 20 +++++++++---------- .../basic/resources/basic_pt_BR.properties | 8 ++++---- .../basic/resources/basic_zh_CN.properties | 20 +++++++++---------- .../basic/resources/basic_zh_TW.properties | 20 +++++++++---------- .../applet/resources/MsgAppletViewer_sv.java | 4 ++-- 21 files changed, 107 insertions(+), 63 deletions(-) diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties index 3696c0e6b10..904a49352eb 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties @@ -79,5 +79,9 @@ FileChooser.renameFileDialogText=Rename file "{0}" to FileChooser.renameFileErrorTitle=Error FileChooser.renameFileErrorText=Error renaming file "{0}" to "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancel OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties index 3abf19588f3..571bc0afae3 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Datei "{0}" umbenennen in FileChooser.renameFileErrorTitle=Fehler FileChooser.renameFileErrorText=Fehler beim Umbenennen der Datei "{0}" in "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Abbrechen OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties index c9340d0bf5e..6daa4d9b441 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Cambiar el nombre del archivo "{0}" por FileChooser.renameFileErrorTitle=Error FileChooser.renameFileErrorText=Error al cambiar el nombre del archivo "{0}" a "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=Aceptar OptionPane.okButtonMnemonic=65 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancelar OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties index a6a17749c3e..9f4e0e559f7 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Renomme le fichier "{0}" en FileChooser.renameFileErrorTitle=Erreur FileChooser.renameFileErrorText=Erreur lors du changement de nom du fichier "{0}" en "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Annuler OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties index 0bdb3413c3c..21cd8f77826 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Rinomina file "{0}" in FileChooser.renameFileErrorTitle=Errore FileChooser.renameFileErrorText=Errore durante la ridenominazione del file "{0}" in "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Annulla OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties index 30f7bf8d344..c7ff0bb97a2 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u30D5\u30A1\u30A4\u30EB"{0}"\u3092\u6B21\u306E FileChooser.renameFileErrorTitle=\u30A8\u30E9\u30FC FileChooser.renameFileErrorText=\u30D5\u30A1\u30A4\u30EB"{0}"\u306E"{1}"\u3078\u306E\u5909\u66F4\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +# dummy resource added for translation automation +OptionPane.okButtonText=OK(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties index eeb35411d9d..cb029e7b025 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText="{0}" \uD30C\uC77C\uC758 \uC774\uB984 \uBC14\uA FileChooser.renameFileErrorTitle=\uC624\uB958 FileChooser.renameFileErrorText="{0}" \uD30C\uC77C\uC758 \uC774\uB984\uC744 "{1}"(\uC73C)\uB85C \uBC14\uAFB8\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. +# dummy resource added for translation automation +OptionPane.okButtonText=\uD655\uC778(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\uCDE8\uC18C(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties index 89d49e039c5..6fb63b6764f 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Renomear arquivo "{0}" por FileChooser.renameFileErrorTitle=Erro FileChooser.renameFileErrorText=Erro ao renomear o arquivo "{0}" por "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancelar OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties index 852f05330d0..cfde4686b9b 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Namn\u00E4ndra fil "{0}" till FileChooser.renameFileErrorTitle=Fel FileChooser.renameFileErrorText=Fel vid namn\u00E4ndring av fil "{0}" till "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Avbryt OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties index 8024e043b4f..58506b0107d 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E FileChooser.renameFileErrorTitle=\u9519\u8BEF FileChooser.renameFileErrorText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A "{1}" \u65F6\u51FA\u9519 +# dummy resource added for translation automation +OptionPane.okButtonText=\u786E\u5B9A(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties index d8952c40d33..ac8c732dc6d 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u54 FileChooser.renameFileErrorTitle=\u932F\u8AA4 FileChooser.renameFileErrorText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA "{1}" \u6642\u51FA\u73FE\u932F\u8AA4 +# dummy resource added for translation automation +OptionPane.okButtonText=\u78BA\u5B9A(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties index 4dac249bfa0..87e3bde708e 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties @@ -59,9 +59,9 @@ FileChooser.acceptAllFileFilterText=All Files FileChooser.cancelButtonText=Cancel FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=Save -FileChooser.saveButtonMnemonic=83 +FileChooser.saveButtonMnemonic=83 // not needed? FileChooser.openButtonText=Open -FileChooser.openButtonMnemonic=79 +FileChooser.openButtonMnemonic=79 //not needed? FileChooser.saveDialogTitleText=Save FileChooser.openDialogTitleText=Open FileChooser.updateButtonText=Update @@ -121,11 +121,11 @@ ColorChooser.hslTransparencyText=Transparency ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 ColorChooser.rgbRedText=Red -ColorChooser.rgbRedMnemonic=68 +ColorChooser.rgbRedMnemonic=68 // not needed? ColorChooser.rgbGreenText=Green -ColorChooser.rgbGreenMnemonic=78 +ColorChooser.rgbGreenMnemonic=78 // not needed? ColorChooser.rgbBlueText=Blue -ColorChooser.rgbBlueMnemonic=66 +ColorChooser.rgbBlueMnemonic=66 // not needed? ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=Color Code ColorChooser.rgbHexCodeMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties index 54783a8a872..2306682b067 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Ja OptionPane.yesButtonMnemonic=74 OptionPane.noButtonText=Nein OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Abbrechen(0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Abbrechen +OptionPane.cancelButtonMnemonic=A OptionPane.titleText=Option ausw\u00E4hlen # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties index 0d4f49e69c5..87ce61c7f77 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=S\u00ED OptionPane.yesButtonMnemonic=83 OptionPane.noButtonText=No OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Cancelar (0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Cancelar +OptionPane.cancelButtonMnemonic=C OptionPane.titleText=Seleccionar una Opci\u00F3n # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties index 3c88b67b475..8b3ba8f2d58 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Oui OptionPane.yesButtonMnemonic=79 OptionPane.noButtonText=Non OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Annuler (0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Annuler +OptionPane.cancelButtonMnemonic=A OptionPane.titleText=S\u00E9lectionner une option # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties index 6ea5b12e9b9..9382e0abc04 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3 FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u4FDD\u5B58(S) +FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u958B\u304F(O) +FileChooser.openButtonText=\u958B\u304F FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u958B\u304F @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u65B0: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u76F8 ColorChooser.hsvSaturationText=\u5F69\u5EA6 ColorChooser.hsvValueText=\u5024 ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u76F8 ColorChooser.hslSaturationText=\u5F69\u5EA6 ColorChooser.hslLightnessText=\u660E\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u8D64(D) +ColorChooser.rgbRedText=\u8D64 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7DD1(N) +ColorChooser.rgbGreenText=\u7DD1 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u9752(B) +ColorChooser.rgbBlueText=\u9752 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=\u30A2\u30EB\u30D5\u30A1 ColorChooser.rgbHexCodeText=\u8272\u30B3\u30FC\u30C9(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u306F\u3044(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u3044\u3044\u3048(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u9078\u629E diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties index 432a0c13429..b8f70de37ff 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 FileChooser.acceptAllFileFilterText=\uBAA8\uB4E0 \uD30C\uC77C FileChooser.cancelButtonText=\uCDE8\uC18C(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\uC800\uC7A5(S) +FileChooser.saveButtonText=\uC800\uC7A5 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\uC5F4\uAE30(O) +FileChooser.openButtonText=\uC5F4\uAE30 FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\uC800\uC7A5 FileChooser.openDialogTitleText=\uC5F4\uAE30 @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\uCD5C\uADFC \uBAA9\uB85D: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\uC0C9\uC870 ColorChooser.hsvSaturationText=\uCC44\uB3C4 ColorChooser.hsvValueText=\uAC12 ColorChooser.hsvTransparencyText=\uD22C\uBA85 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\uC0C9\uC870 ColorChooser.hslSaturationText=\uCC44\uB3C4 ColorChooser.hslLightnessText=\uBC1D\uAE30 ColorChooser.hslTransparencyText=\uD22C\uBA85 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\uBE68\uAC04\uC0C9(D) +ColorChooser.rgbRedText=\uBE68\uAC04\uC0C9 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\uB179\uC0C9(N) +ColorChooser.rgbGreenText=\uB179\uC0C9 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\uD30C\uB780\uC0C9(B) +ColorChooser.rgbBlueText=\uD30C\uB780\uC0C9 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=\uC54C\uD30C ColorChooser.rgbHexCodeText=\uC0C9\uC0C1 \uCF54\uB4DC(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\uC608(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\uC544\uB2C8\uC624(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\uCDE8\uC18C(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\uC635\uC158 \uC120\uD0DD diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties index 426dcfe8953..cbc3c99d669 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Sim OptionPane.yesButtonMnemonic=83 OptionPane.noButtonText=N\u00E3o OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Cancelar(0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Cancelar +OptionPane.cancelButtonMnemonic=C OptionPane.titleText=Selecionar uma Op\u00E7\u00E3o # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties index bf537e0d8dd..212b1753539 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText=\u65E0\u6CD5\u91CD\u547D\u540D{0}: \u5DF2\ FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4EF6 FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u4FDD\u5B58(S) +FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u6253\u5F00(O) +FileChooser.openButtonText=\u6253\u5F00 FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u6253\u5F00 @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u8FD1: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u8C03 ColorChooser.hsvSaturationText=\u9971\u548C\u5EA6 ColorChooser.hsvValueText=\u503C ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u8C03 ColorChooser.hslSaturationText=\u9971\u548C\u5EA6 ColorChooser.hslLightnessText=\u4EAE\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u7EA2\u8272(D) +ColorChooser.rgbRedText=\u7EA2\u8272 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7EFF\u8272(N) +ColorChooser.rgbGreenText=\u7EFF\u8272 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u84DD\u8272(B) +ColorChooser.rgbBlueText=\u84DD\u8272 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=\u989C\u8272\u4EE3\u7801(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9009\u62E9\u4E00\u4E2A\u9009\u9879 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties index 14489713a11..ef267aaf8c5 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}: FileChooser.acceptAllFileFilterText=\u6240\u6709\u6A94\u6848 FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u5132\u5B58(S) +FileChooser.saveButtonText=\u5132\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u958B\u555F(O) +FileChooser.openButtonText=\u958B\u555F FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u5132\u5B58 FileChooser.openDialogTitleText=\u958B\u555F @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u65B0\u9078\u64C7: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u8ABF ColorChooser.hsvSaturationText=\u5F69\u5EA6 ColorChooser.hsvValueText=\u6578\u503C ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u8ABF ColorChooser.hslSaturationText=\u5F69\u5EA6 ColorChooser.hslLightnessText=\u4EAE\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u7D05(D) +ColorChooser.rgbRedText=\u7D05 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7DA0(N) +ColorChooser.rgbGreenText=\u7DA0 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u85CD(B) +ColorChooser.rgbBlueText=\u85CD ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=\u984F\u8272\u4EE3\u78BC(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9078\u53D6\u4E00\u500B\u9078\u9805 diff --git a/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java b/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java index bc7991c668f..0426389e94d 100644 --- a/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java +++ b/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java @@ -73,7 +73,7 @@ public class MsgAppletViewer_sv extends ListResourceBundle { {"appletviewer.parse.warning.embed.requiresheight", "Varning: <embed>-taggen kr\u00E4ver ett h\u00F6jdattribut."}, {"appletviewer.parse.warning.embed.requireswidth", "Varning: <embed>-taggen kr\u00E4ver ett breddattribut."}, {"appletviewer.parse.warning.appnotLongersupported", "Varning: <app>-taggen st\u00F6ds inte l\u00E4ngre, anv\u00E4nd <applet> ist\u00E4llet:"}, - {"appletviewer.usage", "Syntax: appletviewer <alternativ> url:er \n\nd\u00E4r <alternativ> inkluderar:\n -debug Startar appletvisning i Java-fels\u00F6kningen\n -encoding <kodning> Anger teckenkodning som anv\u00E4nds i HTML-filer\n -J<k\u00F6rningsflagga> \u00D6verf\u00F6r argument till Java-tolkningen\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."}, + {"appletviewer.usage", "Syntax: appletviewer-<alternativ> url:er \n\nd\u00E4r <alternativ> inkluderar:\n -debug Startar appletvisning i Java-fels\u00F6kningen\n -encoding <kodning> Anger teckenkodning som anv\u00E4nds i HTML-filer\n -J<k\u00F6rningsflagga> \u00D6verf\u00F6r argument till Java-tolkningen\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."}, {"appletviewer.main.err.unsupportedopt", "Alternativ som inte st\u00F6ds: {0}"}, {"appletviewer.main.err.unrecognizedarg", "Ok\u00E4nt argument: {0}"}, {"appletviewer.main.err.dupoption", "Duplicerat alternativ: {0}"}, @@ -152,7 +152,7 @@ public class MsgAppletViewer_sv extends ListResourceBundle { {"appletprops.label.unsignedapplet", "Till\u00E5t osignerade appletar:"}, {"appletprops.choice.unsignedapplet.no", "Nej"}, {"appletprops.choice.unsignedapplet.yes", "Ja"}, - {"appletprops.button.apply", "Till\u00E4mpa"}, + {"appletprops.button.apply", "Anv\u00E4nd"}, {"appletprops.button.cancel", "Avbryt"}, {"appletprops.button.reset", "\u00C5terst\u00E4ll"}, {"appletprops.apply.exception", "Kunde inte spara egenskaper: {0}"}, From bb6082b053d501e89d8113bc8fa677c21e0fdd6a Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:27:40 -0700 Subject: [PATCH 140/144] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- jdk/.hgignore | 1 + jdk/make/common/Release.gmk | 6 +++++ jdk/make/common/shared/Defs-utils.gmk | 1 + jdk/make/common/shared/Defs.gmk | 38 +++++++++++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/jdk/.hgignore b/jdk/.hgignore index 52a5512a408..67c84657748 100644 --- a/jdk/.hgignore +++ b/jdk/.hgignore @@ -3,3 +3,4 @@ /nbproject/private/ ^make/netbeans/.*/build/ ^make/netbeans/.*/dist/ +^.hgtip diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index ccf566562ec..a97c6487869 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -1118,6 +1118,10 @@ endef MINIMUM_OS_NAME := $(REQUIRED_OS_NAME) MINIMUM_OS_VERSION := $(REQUIRED_OS_VERSION) MINIMUM_OS_ARCH := $(ARCH) +ALL_SOURCE_TIPS = $(shell \ + if [ -f $(SOURCE_TIPS) ] ; then \ + $(CAT) $(SOURCE_TIPS) ; \ + fi) $(JDK_INFO_FILE): FRC $(prep-target) @@ -1125,6 +1129,7 @@ $(JDK_INFO_FILE): FRC $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") + $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") # Create release file to identify this image identify-image-jdk:: $(JDK_INFO_FILE) @@ -1135,6 +1140,7 @@ $(JRE_INFO_FILE): FRC $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") + $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") # Create release file to identify this image identify-image-jre:: $(JRE_INFO_FILE) diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk index 674330146fb..a5b1802c46b 100644 --- a/jdk/make/common/shared/Defs-utils.gmk +++ b/jdk/make/common/shared/Defs-utils.gmk @@ -110,6 +110,7 @@ GDB = $(UTILS_USR_BIN_PATH)gdb GREP = $(UTILS_COMMAND_PATH)grep GUNZIP = $(UTILS_COMMAND_PATH)gunzip HEAD = $(UTILS_USR_BIN_PATH)head +HG = hg ID = $(UTILS_COMMAND_PATH)id ISAINFO = $(UTILS_COMMAND_PATH)isainfo KSH = $(UTILS_COMMAND_PATH)ksh diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index 44767648b88..600421732d0 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -612,6 +612,44 @@ else COPYRIGHT_YEAR = $(shell $(DATE) '+%Y') endif +# Create file with source information +SOURCE_TIPS=$(ABS_OUTPUTDIR)/source_tips + +# The source tips can come from the Mercurial repository, or in the files +# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same +# directory as the original $(HGDIR) directory. +# These should not be := assignments, only used from the root Makefile. +HG_VERSION = $(shell $(HG) version 2> $(DEV_NULL)) +HG_DIRECTORY=.hg +HGTIP_FILENAME=.hgtip +HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO +REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \ + $(shell ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \ + $(LS) $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \ + 2> $(DEV_NULL)))))) + +# Emit the repo:tip pairs to $@ +define GetSourceTips +for i in $(REPO_LIST) IGNORE ; do \ + if [ "$${i}" = "IGNORE" ] ; then \ + continue; \ + elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \ + $(PRINTF) " %s:%s" \ + "$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \ + elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \ + $(PRINTF) " %s:%s" \ + "$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \ + fi; \ +done >> $@ +$(PRINTF) "\n" >> $@ +endef + +# Create the HGTIP_FILENAME file +define CreateHgTip +$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME) +$(ECHO) $1/$(HGTIP_FILENAME) +endef + # Get the compiler specific settings (will run the compiler to find out) # NOTE: COMPILER_PATH must be set by this time. # Up until we include this file, we don't know what specific compiler From ca53ccfc326c884239cdcb9a610c1dd1f6b16286 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Wed, 27 Apr 2011 14:02:01 -0700 Subject: [PATCH 141/144] 7040096: Fix broken hg tip for 'make source' Reviewed-by: katleman --- jdk/make/common/shared/Defs.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index 600421732d0..87a3ec3b266 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -646,7 +646,7 @@ endef # Create the HGTIP_FILENAME file define CreateHgTip -$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME) +$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\ $(ECHO) $1/$(HGTIP_FILENAME) endef From 9fa46de47833a11a41fd739c70c6c0ca7fb50ad8 Mon Sep 17 00:00:00 2001 From: "J. Duke" <duke@openjdk.org> Date: Wed, 5 Jul 2017 17:40:55 +0200 Subject: [PATCH 142/144] Added tag jdk7-b138 for changeset 62b8e328f8c8 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 99a211cc2e5..fce20bea393 100644 --- a/.hgtags +++ b/.hgtags @@ -112,3 +112,4 @@ def8e16dd237a47fc067d66d4c616d7baaec6001 jdk7-b134 f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135 46acf76a533954cfd594bb88fdea79938abfbe20 jdk7-b136 d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137 +62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138 From 68eaf98b48b3158a814eab069b676e7932580890 Mon Sep 17 00:00:00 2001 From: "J. Duke" <duke@openjdk.org> Date: Wed, 5 Jul 2017 17:41:28 +0200 Subject: [PATCH 143/144] Added tag jdk7-b139 for changeset 955488f34ca4 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index fce20bea393..36c9e8850d1 100644 --- a/.hgtags +++ b/.hgtags @@ -113,3 +113,4 @@ f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135 46acf76a533954cfd594bb88fdea79938abfbe20 jdk7-b136 d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137 62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138 +955488f34ca418f6cdab843d61c20d2c615637d9 jdk7-b139 From f1c12a7da405fd0d06e56392d23cbe23ecbdb721 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Fri, 29 Apr 2011 11:52:58 -0700 Subject: [PATCH 144/144] 6903609: Max memory of 896 may be too large for typical windows developer environment Reviewed-by: ksrini, katleman --- jdk/make/common/shared/Platform.gmk | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/jdk/make/common/shared/Platform.gmk b/jdk/make/common/shared/Platform.gmk index 3998a2a24fc..97cbc6ee785 100644 --- a/jdk/make/common/shared/Platform.gmk +++ b/jdk/make/common/shared/Platform.gmk @@ -428,8 +428,6 @@ endif # Machines with 512Mb or less of real memory are considered low memory # build machines and adjustments will be made to prevent excessing # system swapping during the build. -# If we don't know, assume 512. Subtract 128 from MB for VM MAX. -# Don't set VM max over 1024-128=896. ifeq ($(JDK_HAS_MEM_INFO),) JDK_HAS_MEM_INFO=true export JDK_HAS_MEM_INFO @@ -440,18 +438,8 @@ ifeq ($(JDK_HAS_MEM_INFO),) else \ echo "false"; \ fi) - MAX_VM_MEMORY := $(shell \ - if [ $(MB_OF_MEMORY) -le 1024 ] ; then \ - expr $(MB_OF_MEMORY) '-' 128 2> $(DEV_NULL) ; \ - else \ - echo "896"; \ - fi) - MIN_VM_MEMORY := $(shell \ - if [ $(MAX_VM_MEMORY) -le 128 ] ; then \ - expr $(MAX_VM_MEMORY) '-' 8 2> $(DEV_NULL) ; \ - else \ - echo "128"; \ - fi) + MAX_VM_MEMORY := 512 + MIN_VM_MEMORY := $(MAX_VM_MEMORY) else MB_OF_MEMORY := unknown LOW_MEMORY_MACHINE := true