changeset 7073:fce4580b1310

Merge from main OpenJDK repository
author Greg Lewis <glewis@eyesbeyond.com>
date Sat, 19 Apr 2014 01:32:17 -0700
parents ffd99c597521 0c2d8466bc29
children 43b8a9ce4c53
files .hgtags make/java/java/Makefile src/share/classes/sun/font/SunFontManager.java src/solaris/classes/java/lang/UNIXProcess.java.bsd src/solaris/native/java/lang/ProcessEnvironment_md.c src/solaris/native/java/lang/UNIXProcess_md.c src/solaris/native/sun/awt/awt_LoadLibrary.c
diffstat 300 files changed, 30734 insertions(+), 3319 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Mar 27 11:23:12 2014 -0700
+++ b/.hgtags	Sat Apr 19 01:32:17 2014 -0700
@@ -123,6 +123,7 @@
 539e576793a8e64aaf160e0d6ab0b9723cd0bef0 jdk7-b146
 69e973991866c948cf1808b06884ef2d28b64fcb jdk7u1-b01
 f097ca2434b1412b12ab4a5c2397ce271bf681e7 jdk7-b147
+0870207843e2a74816dff1e33a717ffaf6f0a919 7u0
 2baf612764d215e6f3a5b48533f74c6924ac98d7 jdk7u1-b02
 a4781b6d9cfb6901452579adee17c9a17c1b584c jdk7u1-b03
 b223ed9a5fdf8ce3af42adfa8815975811d70eae jdk7u1-b04
--- a/make/com/sun/nio/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/nio/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -31,11 +31,18 @@
 include $(BUILDDIR)/common/Defs.gmk
 
 # MMM: disable for now
-ifneq ($(PLATFORM), macosx)
+ifeq (,$(findstring $(PLATFORM), bsd macosx))
 include $(BUILDDIR)/common/Subdirs.gmk
 SUBDIRS = sctp
 endif
 
+ifeq ($(OS_VENDOR), FreeBSD)
+# FreeBSD 5.x and lower are unsupported, 6.x has no sctp support.
+ifneq ($(call MajorVersion,$(shell uname -r)), 6)
+include $(BUILDDIR)/common/Subdirs.gmk
+SUBDIRS = sctp
+endif
+endif
 
 all build clean clobber::
 	$(SUBDIRS-loop)
--- a/make/com/sun/nio/sctp/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/nio/sctp/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -59,15 +59,11 @@
   -I$(PLATFORM_SRC)/native/java/net \
   -I$(CLASSHDRDIR)/../../../../java/java.nio/nio/CClassHeaders
 
+OTHER_LDLIBS += $(LIBSOCKET) -L$(LIBDIR)/$(LIBARCH) -lnet -lnio
 ifeq ($(PLATFORM), linux)
 COMPILER_WARNINGS_FATAL=true
-#OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -ljava -lnet -lpthread -ldl
-OTHER_LDLIBS += -L$(LIBDIR)/$(LIBARCH) -lnio -lnet -lpthread -ldl
+OTHER_LDLIBS += -lpthread $(LIBDL)
 endif
-ifeq ($(PLATFORM), solaris)
-#LIBSCTP = -lsctp
-OTHER_LDLIBS += $(LIBSOCKET) -L$(LIBDIR)/$(LIBARCH) -lnet -lnio
-endif # PLATFORM
 
 else # windows
 include $(BUILDDIR)/common/Classes.gmk
--- a/make/com/sun/security/auth/module/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/security/auth/module/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -67,7 +67,7 @@
   include FILES_c_solaris.gmk
 endif # solaris
 
-ifneq (,$(findstring $(PLATFORM), linux macosx))
+ifneq (,$(findstring $(PLATFORM), linux bsd macosx))
   LIBRARY = jaas_unix
   include FILES_export_unix.gmk
   include FILES_c_unix.gmk
--- a/make/com/sun/tools/attach/Exportedfiles.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/tools/attach/Exportedfiles.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -43,7 +43,7 @@
 	sun/tools/attach/LinuxVirtualMachine.java
 endif
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 FILES_export = \
 	sun/tools/attach/BsdVirtualMachine.java
 endif
--- a/make/com/sun/tools/attach/FILES_c.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/tools/attach/FILES_c.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -39,7 +39,7 @@
 	LinuxVirtualMachine.c
 endif
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 FILES_c = \
 	BsdVirtualMachine.c
 endif
--- a/make/com/sun/tools/attach/FILES_java.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/tools/attach/FILES_java.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -43,7 +43,7 @@
 	sun/tools/attach/LinuxAttachProvider.java
 endif
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 FILES_java += \
 	sun/tools/attach/BsdAttachProvider.java
 endif
--- a/make/com/sun/tools/attach/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/tools/attach/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -38,7 +38,7 @@
 ifeq ($(PLATFORM), linux)
 FILES_m = mapfile-linux
 endif
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 FILES_m = mapfile-bsd 
 endif
 include $(BUILDDIR)/common/Mapfile-vers.gmk
@@ -57,7 +57,7 @@
 EXTRA_LIBS += psapi.lib
 endif
 
-ifeq ($PLATFORM), macosx)
+ifeq ($(PLATFORM), macosx)
   vpath %.c $(call NativeSrcDirList,,native/sun/tools/attach)
 else
   vpath %.c $(PLATFORM_SRC)/native/sun/tools/attach
--- a/make/com/sun/tools/attach/mapfile-bsd	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/com/sun/tools/attach/mapfile-bsd	Sat Apr 19 01:32:17 2014 -0700
@@ -30,6 +30,7 @@
 	    Java_sun_tools_attach_BsdVirtualMachine_checkPermissions;
 	    Java_sun_tools_attach_BsdVirtualMachine_close;
 	    Java_sun_tools_attach_BsdVirtualMachine_connect;
+	    Java_sun_tools_attach_BsdVirtualMachine_getTempDir;
 	    Java_sun_tools_attach_BsdVirtualMachine_open;
 	    Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo;
 	    Java_sun_tools_attach_BsdVirtualMachine_socket;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/common/Defs-bsd.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -0,0 +1,490 @@
+#
+# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+# 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 to specify compiler flags for programs and libraries
+# targeted to BSD.  Should not contain any rules.
+#
+# WARNING: This file is shared with other workspaces. 
+#          So when it includes other files, it must use JDK_TOPDIR.
+#
+
+# Warning: the following variables are overriden by Defs.gmk. Set
+# values will be silently ignored:
+#   CFLAGS        (set $(OTHER_CFLAGS) instead)
+#   CPPFLAGS      (set $(OTHER_CPPFLAGS) instead)
+#   CXXFLAGS      (set $(OTHER_CXXFLAGS) instead)
+#   LDFLAGS       (set $(OTHER_LDFAGS) instead)
+#   LDLIBS        (set $(EXTRA_LIBS) instead)
+#   LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
+
+# Get shared JDK settings
+include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
+
+# Part of INCREMENTAL_BUILD mechanism.
+#   Compiler emits things like:  path/file.o: file.h
+#   We want something like: relative_path/file.o relative_path/file.d: file.h
+CC_DEPEND	 = -MM
+CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
+
+ifndef PLATFORM_SRC
+  PLATFORM_SRC = $(BUILDDIR)/../src/solaris
+endif # PLATFORM_SRC
+
+# Location of the various .properties files specific to BSD platform
+ifndef PLATFORM_PROPERTIES
+  PLATFORM_PROPERTIES  = $(BUILDDIR)/../src/solaris/lib
+endif # PLATFORM_SRC
+
+# BSD build pulls its platform sources from the solaris tree.
+JAVA_SRCDIR_LIST = src/macosx src/solaris src/share
+NATIVE_SRCDIR_LIST = src/macosx src/solaris src/share
+
+# Platform specific closed sources
+ifndef OPENJDK
+  ifndef CLOSED_PLATFORM_SRC
+    CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
+  endif
+endif
+
+# platform specific include files
+PLATFORM_INCLUDE_NAME = $(OS_NAME)
+PLATFORM_INCLUDE      = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
+
+# suffix used for make dependencies files.
+DEPEND_SUFFIX = d
+# The suffix applied to the library name for FDLIBM
+FDDLIBM_SUFFIX = a
+# The suffix applied to scripts (.bat for windows, nothing for unix)
+SCRIPT_SUFFIX =
+# CC compiler object code output directive flag value
+CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
+CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
+
+# The Full Debug Symbols (FDS) default for VARIANT == OPT builds is
+# enabled with debug info files ZIP'ed to save space. For VARIANT !=
+# OPT builds, FDS is always enabled, after all a debug build without
+# debug info isn't very useful. The ZIP_DEBUGINFO_FILES option only has
+# meaning when FDS is enabled.
+#
+# If you invoke a build with FULL_DEBUG_SYMBOLS=0, then FDS will be
+# disabled for a VARIANT == OPT build.
+#
+# Note: Use of a different variable name for the FDS override option
+# versus the FDS enabled check is intentional (FULL_DEBUG_SYMBOLS
+# versus ENABLE_FULL_DEBUG_SYMBOLS). For auto build systems that pass
+# in options via environment variables, use of distinct variables
+# prevents strange behaviours. For example, in a VARIANT != OPT build,
+# the FULL_DEBUG_SYMBOLS environment variable will be 0, but the
+# ENABLE_FULL_DEBUG_SYMBOLS make variable will be 1. If the same
+# variable name is used, then different values can be picked up by
+# different parts of the build. Just to be clear, we only need two
+# variable names because the incoming option value can be overridden
+# in some situations, e.g., a VARIANT != OPT build.
+
+ifeq ($(VARIANT), OPT)
+  FULL_DEBUG_SYMBOLS ?= 1
+  ENABLE_FULL_DEBUG_SYMBOLS = $(FULL_DEBUG_SYMBOLS)
+else
+  # debug variants always get Full Debug Symbols (if available)
+  ENABLE_FULL_DEBUG_SYMBOLS = 1
+endif
+_JUNK_ := $(shell \
+  echo >&2 "INFO: ENABLE_FULL_DEBUG_SYMBOLS=$(ENABLE_FULL_DEBUG_SYMBOLS)")
+# since objcopy is optional, we set ZIP_DEBUGINFO_FILES later
+
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  # Default OBJCOPY comes from GNU Binutils on BSD:
+  DEF_OBJCOPY=/usr/bin/objcopy
+  ifdef CROSS_COMPILE_ARCH
+    # don't try to generate .debuginfo files when cross compiling
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
+        "skipping .debuginfo generation.")
+    OBJCOPY=
+  else
+    OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
+    ifneq ($(ALT_OBJCOPY),)
+      _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
+      # disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
+      OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
+    endif
+  endif
+
+  # Setting ENABLE_FULL_DEBUG_SYMBOLS=1 (and OBJCOPY) above enables the
+  # JDK build to import .debuginfo or .diz files from the HotSpot build.
+  # However, adding FDS support to the JDK build will occur in phases
+  # so a different make variable (LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
+  # and PROGRAM_SUPPORTS_FULL_DEBUG_SYMBOLS) is used to indicate that a
+  # particular library or program supports FDS.
+
+  ifeq ($(OBJCOPY),)
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
+    ENABLE_FULL_DEBUG_SYMBOLS=0
+  else
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
+
+    # Library stripping policies for .debuginfo configs:
+    #   all_strip - strips everything from the library
+    #   min_strip - strips most stuff from the library; leaves minimum symbols
+    #   no_strip  - does not strip the library at all
+    #
+    # Oracle security policy requires "all_strip". A waiver was granted on
+    # 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
+    #
+    # Currently, STRIP_POLICY is only used when Full Debug Symbols is enabled.
+    STRIP_POLICY ?= min_strip
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
+
+    ZIP_DEBUGINFO_FILES ?= 1
+
+    _JUNK_ := $(shell \
+      echo >&2 "INFO: ZIP_DEBUGINFO_FILES=$(ZIP_DEBUGINFO_FILES)")
+  endif
+endif
+
+#
+# Default optimization
+#
+
+ifndef OPTIMIZATION_LEVEL
+  ifeq ($(PRODUCT), java)
+    OPTIMIZATION_LEVEL = HIGHER
+  else
+    OPTIMIZATION_LEVEL = LOWER
+  endif
+endif
+ifndef FASTDEBUG_OPTIMIZATION_LEVEL
+  FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
+endif
+
+CC_OPT/NONE     = 
+CC_OPT/LOWER    = -O2
+CC_OPT/HIGHER   = -O3
+CC_OPT/HIGHEST  = -O3
+
+CC_OPT          = $(CC_OPT/$(OPTIMIZATION_LEVEL))
+
+# For all platforms, do not omit the frame pointer register usage. 
+#    We need this frame pointer to make it easy to walk the stacks.
+#    This should be the default on X86, but ia64 and amd64 may not have this
+#    as the default.
+CFLAGS_REQUIRED_amd64   += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+LDFLAGS_COMMON_amd64    += -m64
+CFLAGS_REQUIRED_i586    += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+LDFLAGS_COMMON_i586     += -m32
+CFLAGS_REQUIRED_ia64    += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
+LDFLAGS_COMMON_sparcv9  += -m64 -mcpu=v9
+CFLAGS_REQUIRED_sparc   += -m32 -mcpu=v9
+LDFLAGS_COMMON_sparc    += -m32 -mcpu=v9
+CFLAGS_REQUIRED_arm     += -fsigned-char -D_LITTLE_ENDIAN
+CFLAGS_REQUIRED_ppc     += -fsigned-char -D_BIG_ENDIAN
+ifeq ($(ZERO_BUILD), true)
+  CFLAGS_REQUIRED       =  $(ZERO_ARCHFLAG)
+  ifeq ($(ZERO_ENDIANNESS), little)
+    CFLAGS_REQUIRED     += -D_LITTLE_ENDIAN
+  endif
+  LDFLAGS_COMMON        += $(ZERO_ARCHFLAG)
+else
+  CFLAGS_REQUIRED       =  $(CFLAGS_REQUIRED_$(ARCH))
+  LDFLAGS_COMMON        += $(LDFLAGS_COMMON_$(ARCH))
+endif
+
+# If this is a --hash-style=gnu system, use --hash-style=both
+#   The gnu .hash section won't work on some Linux systems like SuSE 10.
+_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu')
+ifneq ($(_HAS_HASH_STYLE_GNU),)
+  LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
+endif
+LDFLAGS_COMMON          += $(LDFLAGS_HASH_STYLE)
+
+#
+# Selection of warning messages
+#
+GCC_INHIBIT	= -Wno-unused -Wno-parentheses
+GCC_STYLE	= 
+GCC_WARNINGS	= -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
+
+#
+# Treat compiler warnings as errors, if warnings not allowed
+#
+ifeq ($(COMPILER_WARNINGS_FATAL),true)
+  GCC_WARNINGS += -Werror
+endif
+
+#
+# Misc compiler options
+#
+ifneq ($(ARCH),ppc)
+  CFLAGS_COMMON   = -fno-strict-aliasing
+endif 
+PIC_CODE_LARGE = -fPIC
+PIC_CODE_SMALL = -fpic
+GLOBAL_KPIC = $(PIC_CODE_LARGE)
+CFLAGS_COMMON   += $(GLOBAL_KPIC) $(GCC_WARNINGS)
+ifeq ($(ARCH), amd64)
+ CFLAGS_COMMON += -pipe
+endif
+
+# BSD 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
+DEBUG_FLAG = -g
+ifeq ($(FASTDEBUG), true)
+  ifeq ($(ARCH_DATA_MODEL), 64)
+    DEBUG_FLAG = -g1
+  endif
+endif
+
+# DEBUG_BINARIES overrides everything, use full -g debug information
+ifeq ($(DEBUG_BINARIES), true)
+  DEBUG_FLAG = -g
+  CFLAGS_REQUIRED += $(DEBUG_FLAG)
+endif
+
+# If Full Debug Symbols is enabled, then we want the same debug and
+# optimization flags as used by FASTDEBUG.
+#
+ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+  ifeq ($(LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS),1)
+    ifeq ($(VARIANT), OPT)
+      CC_OPT = $(DEBUG_FLAG) $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+    endif
+  endif
+endif
+
+CFLAGS_OPT      = $(CC_OPT)
+CFLAGS_DBG      = $(DEBUG_FLAG)
+CFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
+CXXFLAGS_OPT	= $(CC_OPT)
+CXXFLAGS_DBG	= $(DEBUG_FLAG)
+CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
+
+# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
+ifeq ($(FASTDEBUG), true)
+  CFLAGS_DBG    += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+  CXXFLAGS_DBG	+= $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
+endif
+
+CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
+
+# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
+ifneq ($(ARCH),alpha)
+  CPP_ARCH_FLAGS += -D$(ARCH)
+else
+  CPP_ARCH_FLAGS += -D_$(ARCH)_
+endif
+
+CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -D_ALLBSD_SOURCE $(VERSION_DEFINES) \
+		  -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
+
+ifeq ($(ARCH_DATA_MODEL), 64)
+CPPFLAGS_COMMON += -D_LP64=1
+endif
+
+CPPFLAGS_OPT    = -DNDEBUG
+CPPFLAGS_DBG    = -DDEBUG
+ifneq ($(PRODUCT), java)
+  CPPFLAGS_DBG    += -DLOGGING 
+endif
+
+# Libraries need to locate other libraries at runtime, and you can tell
+#   a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
+#   buried inside the .so. The $ORIGIN says to look relative to where
+#   the library itself is and it can be followed with relative paths from
+#   that. By default we always look in $ORIGIN, optionally we add relative
+#   paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
+#   On BSD we add a flag -z origin, not sure if this is necessary, but
+#   doesn't seem to hurt.
+#   The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
+#   Try: 'readelf -d lib*.so' to see these settings in a library.
+#
+Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin
+Z_ORIGIN_FLAG/i586  = -Xlinker -z -Xlinker origin
+Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin
+Z_ORIGIN_FLAG/ia64  = -Xlinker -z -Xlinker origin
+Z_ORIGIN_FLAG/arm   =
+Z_ORIGIN_FLAG/ppc   =
+Z_ORIGIN_FLAG/zero  = -Xlinker -z -Xlinker origin
+
+LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY))
+
+LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN
+LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%)
+
+#
+# -L paths for finding and -ljava
+#
+LDFLAGS_OPT     = -Xlinker -O1
+LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
+LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
+
+#
+# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
+# statically link libgcc but will print a warning with the flag. We don't 
+# want the warning, so check gcc version first.
+#
+ifeq ($(CC_MAJORVER),3)
+  OTHER_LDFLAGS  += -static-libgcc
+endif
+
+# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
+#   (See Rules.gmk) The gcc 5 compiler might have an option for this?
+AUTOMATIC_PCH_OPTION = 
+
+#
+# Post Processing of libraries/executables
+#
+ifeq ($(VARIANT), OPT)
+  ifneq ($(NO_STRIP), true)
+    ifneq ($(DEBUG_BINARIES), true)
+      # Debug 'strip -S' leaves local function Elf symbols (better stack
+      # traces)
+      POST_STRIP_PROCESS = $(STRIP) -S
+    endif
+  endif
+endif
+
+#
+# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
+#
+LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
+
+#
+# Support for Quantify.
+#
+ifdef QUANTIFY
+QUANTIFY_CMD = quantify
+QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
+LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
+endif
+
+# Using map files currently break compilation on FreeBSD during shared library
+# checks for some of the AWT native libraries.
+ifeq ($(OS_VENDOR), FreeBSD)
+LDNOMAP=true
+endif
+
+#
+# Path and option to link against the VM, if you have to.  Note that
+# there are libraries that link against only -ljava, but they do get
+# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
+# the library itself should not.
+#
+VM_NAME         = server
+JVMLIB          = -L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm
+JAVALIB         = -ljava $(JVMLIB)
+
+#
+# We want to privatize JVM symbols on Solaris. This is so the user can
+# write a function called FindClass and this should not override the 
+# FindClass that is inside the JVM. At this point in time we are not
+# concerned with other JNI libraries because we hope that there will
+# not be as many clashes there.
+#
+PRIVATIZE_JVM_SYMBOLS = false
+
+USE_PTHREADS = true
+override ALT_CODESET_KEY         = _NL_CTYPE_CODESET_NAME
+override AWT_RUNPATH             =
+override HAVE_ALTZONE            = false
+override HAVE_FILIOH             = false
+override HAVE_GETHRTIME          = false
+override HAVE_GETHRVTIME         = false
+override LEX_LIBRARY             = -lfl
+ifeq ($(STATIC_CXX),true)
+override LIBCXX                  = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
+else
+override LIBCXX                  = -lstdc++
+endif
+override LIBPOSIX4               =
+override LIBSOCKET               =
+override LIBNSL                  =
+override LIBSCF                  =
+override LIBTHREAD               =
+override LIBDL                   =
+override MOOT_PRIORITIES         = true
+override NO_INTERRUPTIBLE_IO     = true
+override OPENWIN_HOME            = $(X11_PATH)
+override OPENWIN_LIB             = $(OPENWIN_HOME)/lib
+override OTHER_M4FLAGS           = -D__GLIBC__ -DGNU_ASSEMBLER
+override SUN_CMM_SUBDIR          =
+override THREADS_FLAG            = native
+override USE_GNU_M4              = true
+override USING_GNU_TAR           = true
+override WRITE_LIBVERSION        = false
+
+# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
+# resulting resolved absolute name of the executable in the environment
+# variable EXECNAME.  That executable name is then used that to locate the
+# installation area.
+override USE_EXECNAME            = true
+
+# If your platform has DPS, it will have Type1 fonts too, in which case
+# it is best to enable DPS support until such time as 2D's rasteriser
+# can fully handle Type1 fonts in all cases. Default is "yes".
+# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
+# DPS (Displayable PostScript) is available on Solaris machines
+HAVE_DPS = no
+
+ifeq ($(OS_VENDOR), FreeBSD)
+  SYSTEM_ZLIB = true
+endif
+
+ifeq ($(OS_VENDOR), OpenBSD)
+  SYSTEM_ZLIB = true
+endif
+
+#
+# Japanese manpages
+#
+JA_SOURCE_ENCODING = eucJP
+JA_TARGET_ENCODINGS = UTF-8
+
+# Settings for the JDI - Serviceability Agent binding.
+HOTSPOT_SALIB_PATH   = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
+SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
+SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
+SA_DIZ_NAME = $(LIB_PREFIX)saproc.diz
+
+# The JDI - Serviceability Agent binding is not currently supported
+# on ia64.
+ifeq ($(ARCH), ia64)
+  INCLUDE_SA = false
+else
+  INCLUDE_SA = true
+endif
+
+ifdef CROSS_COMPILE_ARCH
+  # X11 headers are not under /usr/include
+  OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
+  OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
+endif
--- a/make/common/Defs-linux.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Defs-linux.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -426,6 +426,7 @@
 override LIBDL                   = -ldl
 override MOOT_PRIORITIES         = true
 override NO_INTERRUPTIBLE_IO     = true
+override OPENWIN_HOME            = $(X11_PATH)
 ifeq ($(ARCH), amd64)
 override OPENWIN_LIB             = $(OPENWIN_HOME)/lib64
 else
--- a/make/common/Defs-solaris.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Defs-solaris.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -753,6 +753,9 @@
 # Network Services library
 LIBNSL = -lnsl
 
+# Dynamic Loading library
+LIBDL = -ldl
+
 # service configuration facility library
 LIBSCF = -lscf
 
--- a/make/common/Defs.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Defs.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -179,15 +179,15 @@
 
   ifdef ALT_FREETYPE_LIB_PATH
     FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
-    ifeq ($(PLATFORM), macosx)
+    ifneq (,$(findstring $(PLATFORM), bsd macosx))
       USING_SYSTEM_FT_LIB=true
     endif
   else
     ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
       FREETYPE_LIB_PATH = $(DEVTOOLS_FT_DIR)/lib
     else
-      ifeq ($(PLATFORM), macosx)
-        FREETYPE_LIB_PATH = /usr/X11R6/lib
+      ifneq (,$(findstring $(PLATFORM), bsd macosx))
+        FREETYPE_LIB_PATH = $(X11_PATH)/lib
       else
         FREETYPE_LIB_PATH = /usr/lib
       endif
@@ -201,8 +201,8 @@
     ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
       FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
     else
-      ifeq ($(PLATFORM), macosx)
-        FREETYPE_HEADERS_PATH = /usr/X11R6/include
+      ifneq (,$(findstring $(PLATFORM), bsd macosx))
+        FREETYPE_HEADERS_PATH = $(X11_PATH)/include
       else
         FREETYPE_HEADERS_PATH = /usr/include
       endif
@@ -258,6 +258,10 @@
     LDLIBS_COMMON = -pthread
   endif
 
+  ifeq ($(PLATFORM), bsd)
+    LDLIBS_COMMON = -pthread
+  endif
+
 endif # PROGRAM
 
 LDLIBS_COMMON += $(EXTRA_LIBS)
@@ -400,7 +404,7 @@
 # We define an intermediate variable for Java files because
 # we use its value later to help define $SOURCEPATH
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
   VPATH0.java = $(subst $(ONESPACE),:,$(GENSRCDIR) $(call JavaSrcDirList,,classes))
 else
   VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
--- a/make/common/Library.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Library.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -299,8 +299,12 @@
             ifeq ($(PLATFORM), solaris)
 	      $(STRIP) -x $@
             else
-              # assume Linux
-	      $(STRIP) -g $@
+              ifeq ($(PLATFORM), linux)
+	        $(STRIP) -g $@
+              else
+                # assume BSD
+	        $(STRIP) -S $@
+              endif
             endif
           # implied else here is no stripping at all
           endif
--- a/make/common/Mapfile-vers.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Mapfile-vers.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -76,7 +76,7 @@
 
 endif # PLATFORM
 
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), linux bsd))
 
 ifeq ($(VARIANT), OPT)
   # OPT build MUST have a mapfile?
--- a/make/common/Program.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Program.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -95,6 +95,17 @@
   endif # SYSTEM_ZLIB
 endif # PLATFORM
 
+ifeq ($(PLATFORM), bsd)
+  LDFLAGS += -Wl,--whole-archive
+  LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+  LDFLAGS += -Wl,--no-whole-archive
+# Work-around an dlsym(RTLD_DEFAULT) bug in at least FreeBSD & OpenBSD
+  LDFLAGS += -Wl,--export-dynamic
+  ifeq ($(SYSTEM_ZLIB),true)
+      OTHER_LDLIBS += -lz
+  endif
+endif #PLATFORM
+
 ifneq (,$(findstring $(PLATFORM), linux solaris)) # UNIX systems
   LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
   OTHER_LDLIBS += -ljli
@@ -223,6 +234,11 @@
     INFO_PLIST_FILE=
   endif # MACOSX
 
+  ifeq ($(PLATFORM), bsd)
+    THREADLIBS = -pthread
+    OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
+  endif
+
   #
   # This rule only applies on unix.  It supports quantify and its ilk.
   #
@@ -277,8 +293,12 @@
             ifeq ($(PLATFORM), solaris)
 	      $(STRIP) -x $@
             else
-              # assume Linux
-	      $(STRIP) -g $@
+              ifeq ($(PLATFORM), linux)
+	        $(STRIP) -g $@
+              else
+                # assume BSD
+	        $(STRIP) -S $@
+              endif
             endif
           # implied else here is no stripping at all
           endif
@@ -346,7 +366,9 @@
 
 
 ifneq ($(PLATFORM), windows)
-  HAVE_GETHRTIME=true
+  ifneq ($(PLATFORM), bsd)
+    HAVE_GETHRTIME=true
+  endif
 endif #PLATFORM
 
 ifeq ($(HAVE_GETHRTIME),true)
@@ -356,12 +378,10 @@
 OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC)/bin -I$(LAUNCHER_PLATFORM_SRC)/bin
 ifeq ($(PLATFORM), macosx)
   OTHER_INCLUDES += -I$(LAUNCHER_SOLARIS_PLATFORM_SRC)/bin
-  ifneq ($(SYSTEM_ZLIB), true)
-    OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
-  endif # SYSTEM_ZLIB
-else # PLATFORM !MACOSX
+endif # PLATFORM
+ifneq ($(SYSTEM_ZLIB), true)
   OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
-endif
+endif # SYSTEM_ZLIB
 
 OTHER_CPPFLAGS  += -DPROGNAME='"$(PROGRAM)"'
 VERSION_DEFINES += -DFULL_VERSION='"$(FULL_VERSION)"'
--- a/make/common/Release.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Release.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -180,6 +180,12 @@
   JA_DIRNAME=ja_JP.UTF-8
 endif # linux
 
+ifeq ($(PLATFORM), bsd)
+  MANBASEDIRS=$(JDK_TOPDIR)/src/linux/doc $(IMPORTDOCDIR)
+  MAN1SUBDIR=man
+  JA_DIRNAME=ja_JP.UTF-8
+endif # linux
+
 define copy-man-pages
 $(MKDIR) -p $1/man/man1
 for manbase in $(MANBASEDIRS:%=%/$(MAN1SUBDIR)) ; do \
@@ -1026,6 +1032,12 @@
 FILES_launcher = $(wildcard $(SHARE_SRC)/bin/*) \
                  $(wildcard $(PLATFORM_SRC)/bin/java_md*)
 
+ifeq ($(OS_VENDOR), OpenBSD)
+  FILES_FROM_ARG=-I
+else
+  FILES_FROM_ARG=-T
+endif
+
 # Standard jdk image
 initial-image-jdk:: initial-image-jdk-setup \
 		    initial-image-jdk-db \
@@ -1113,7 +1125,7 @@
 	@# So for Linux, make use of the -T option (like Solaris' -I option) of
 	@# obtaining the list of files from a file. MKS tar has no such option.
 
-  ifneq (,$(findstring $(PLATFORM), linux macosx))
+  ifneq (,$(findstring $(PLATFORM), linux macosx bsd))
 	for d in $(SOURCE_DIRS); do \
 	  $(RM) $(ABS_TEMPDIR)/src-files.list; \
 	  ($(CD) $$d &&  \
@@ -1126,7 +1138,7 @@
 	    done ; \
 	  ) ; \
 	  if [ -f  $(ABS_TEMPDIR)/src-files.list ] ; then \
-	    ($(CD) $$d && $(TAR) cf - -T $(ABS_TEMPDIR)/src-files.list ) \
+	    ($(CD) $$d && $(TAR) cf - $(FILES_FROM_ARG) $(ABS_TEMPDIR)/src-files.list ) \
 	       | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \
 	  fi; \
 	done
--- a/make/common/Rules.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/Rules.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -51,7 +51,7 @@
 #
 # All source tree areas for java/properties files (a few may be closed)
 #
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
   ifdef OPENJDK
     ALL_CLASSES_SRC = $(call JavaSrcDirList,,classes)
   else
@@ -212,7 +212,7 @@
 $(CLASSDESTDIR)/%.class: $(GENSRCDIR)/%.java
 	@$(add-java-file)
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 # TODO(cpc): need to document why this is necessary...
 $(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
 	@$(add-java-file)
--- a/make/common/shared/Compiler-gcc.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/shared/Compiler-gcc.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -72,6 +72,21 @@
 
 endif
 
+ifeq ($(PLATFORM), bsd)
+
+  # Settings specific to BSD
+  CC             = $(COMPILER_PATH)gcc
+  CPP            = $(COMPILER_PATH)gcc -E
+  CXX            = $(COMPILER_PATH)g++
+
+  # Option used to create a shared library
+  ifeq ($(OS_VENDOR), Apple)
+    SHARED_LIBRARY_FLAG = -dynamiclib 
+  else
+    SHARED_LIBRARY_FLAG = -shared
+  endif
+endif
+
 ifeq ($(PLATFORM), solaris)
 
   # Settings specific to Solaris
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/common/shared/Defs-bsd.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -0,0 +1,267 @@
+#
+# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#
+# Definitions for BSD.
+#
+
+# Default for COMPILER_WARNINGS_FATAL on BSD (C & C++ compiler warnings)
+ifndef COMPILER_WARNINGS_FATAL
+  COMPILER_WARNINGS_FATAL=false
+endif
+
+# BSD should use parallel compilation for best build times
+ifndef COMPILE_APPROACH
+  COMPILE_APPROACH = parallel
+endif
+
+# Indication that we are doing an incremental build.
+#    This may trigger the creation of make depend files.
+ifndef INCREMENTAL_BUILD
+  INCREMENTAL_BUILD = false
+endif
+
+# FullPath just makes sure it never ends with a / and no duplicates
+define FullPath
+$(shell cd $1 2> $(DEV_NULL) && pwd)
+endef
+
+# OptFullPath: Absolute path name of a dir that might not initially exist.
+define OptFullPath
+$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
+endef
+
+ifdef ALT_X11_PATH
+  X11_PATH = $(ALT_X11_PATH)
+else
+  ifeq ($(OS_VENDOR), NetBSD)
+    X11_PATH = /usr/X11R7
+  else
+    ifeq ($(OS_VENDOR), FreeBSD)
+      X11_PATH = /usr/local
+    else
+      X11_PATH = /usr/X11R6
+    endif
+  endif
+endif
+
+ifdef ALT_PACKAGE_PATH
+  PACKAGE_PATH = $(ALT_PACKAGE_PATH)
+else
+  ifeq ($(OS_VENDOR), NetBSD)
+    PACKAGE_PATH = /usr/pkg
+  else
+    PACKAGE_PATH = /usr/local
+  endif
+endif
+
+# ALSA
+ifdef ALT_ALSA_LIB_PATH
+  ALSA_LIB_PATH = $(ALT_ALSA_LIB_PATH)
+else
+  ALSA_LIB_PATH = $(PACKAGE_PATH)/lib
+endif
+
+ifdef ALT_ALSA_HEADERS_PATH
+  ALSA_HEADERS_PATH = $(ALT_ALSA_HEADERS_PATH)
+else
+  ALSA_HEADERS_PATH = $(PACKAGE_PATH)/include
+endif
+
+# Location on system where jdk installs might be
+USRJDKINSTANCES_PATH = $(PACKAGE_PATH)
+
+# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
+  UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
+else
+  UNIXCOMMAND_PATH  = /bin/
+endif
+
+# USRBIN_PATH: path to where the most common Unix commands are.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
+  USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
+else
+  USRBIN_PATH  = /usr/bin/
+endif
+
+# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
+  UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
+else
+  UNIXCCS_PATH = /usr/ccs/bin/
+endif
+
+# SLASH_JAVA: location of all network accessable files
+ifdef ALT_SLASH_JAVA
+  SLASH_JAVA  :=$(ALT_SLASH_JAVA)
+else
+  SLASH_JAVA  := $(call DirExists,/java,/java,/NOT-SET)
+endif
+
+# JDK_DEVTOOLS_DIR: common path for all the java devtools
+ifdef ALT_JDK_DEVTOOLS_DIR
+  JDK_DEVTOOLS_DIR  =$(ALT_JDK_DEVTOOLS_DIR)
+else
+  JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
+endif
+
+# COMPILER_PATH: path to where the compiler and tools are installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
+  COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
+else
+  COMPILER_PATH  =/usr/bin/
+endif
+
+# OPENWIN_HOME: path to where the X11 environment is installed.
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq ($(ALT_OPENWIN_HOME),)
+  OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
+else
+  OPENWIN_HOME  =$(X11_PATH)
+endif
+
+# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
+#  NOTE: Must end with / so that it could be empty, allowing PATH usage.
+ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
+  DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
+else
+  DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
+endif
+
+# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
+# _BOOTDIR2: Second choice
+ifndef ALT_BOOTDIR
+  _BOOTDIR1  =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
+  _BOOTDIR2  =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
+endif
+
+# Always build headless on BSD
+BUILD_HEADLESS = true
+LIBM=-lm
+
+# Set ZLIB_LIBS if not already set
+ifeq ("$(ZLIB_LIBS)", "")
+  ZLIB_LIBS=-lz
+endif
+
+_CUPS_HEADERS_PATH=$(PACKAGE_PATH)/include
+
+# Import JDK images allow for partial builds, components not built are
+#    imported (or copied from) these import areas when needed.
+
+# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for 
+#   multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
+ifdef ALT_BUILD_JDK_IMPORT_PATH
+  BUILD_JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
+else
+  BUILD_JDK_IMPORT_PATH   = $(PROMOTED_BUILD_BINARIES)
+endif
+BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
+
+# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
+ifdef ALT_JDK_IMPORT_PATH
+  JDK_IMPORT_PATH  :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
+else
+  JDK_IMPORT_PATH   = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
+endif
+JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
+
+# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
+ifdef ALT_HOTSPOT_IMPORT_PATH
+  HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
+else
+  HOTSPOT_IMPORT_PATH =$(JDK_IMPORT_PATH)
+endif
+HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
+
+# HOTSPOT_CLIENT_PATH: location of client jvm library file.
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifdef ALT_HOTSPOT_CLIENT_PATH
+    HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
+  else
+    HOTSPOT_CLIENT_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
+  endif
+  HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
+endif
+
+# HOTSPOT_SERVER_PATH: location of server jvm library file.
+ifdef ALT_HOTSPOT_SERVER_PATH
+  HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
+else
+  HOTSPOT_SERVER_PATH   =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
+endif
+HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
+
+# Special define for checking the binaries
+
+# Debug builds should downgrade warnings to just info
+MAPFILE_WARNING-DBG=INFO
+MAPFILE_WARNING-OPT=WARNING
+MAPFILE_WARNING-=WARNING
+MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
+
+# Macro to check it's input file for banned dependencies and verify the
+#   binary built properly. Relies on process exit code.
+ifndef CROSS_COMPILE_ARCH
+ifeq ($(OS_VENDOR), OpenBSD)
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(OBJDUMP) -T $1 | $(EGREP) '[0-9a-f]* g *DF \.text.*SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+ fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+) || true
+endef
+else
+define binary_file_verification # binary_file
+( \
+  $(ECHO) "Checking for mapfile use in: $1" && \
+  if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
+    $(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
+  fi && \
+  $(ECHO) "Library loads for: $1" && \
+  $(LDD) $1 && \
+  $(ECHO) "RUNPATH for: $1" && \
+  ( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
+)
+endef
+endif
+else
+define binary_file_verification 
+( \
+  $(ECHO) "Skipping binary file verification for cross-compile build" \
+)
+endef
+endif
+
--- a/make/common/shared/Defs-utils.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/shared/Defs-utils.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -74,6 +74,13 @@
   UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
 endif
 
+ifeq ($(PLATFORM),bsd)
+  UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
+  UTILS_USR_BIN_PATH=$(USRBIN_PATH)
+  UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
+  UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
+endif
+
 # Utilities
 ifdef CROSS_COMPILE_ARCH
   AR             = $(COMPILER_PATH)ar
@@ -251,3 +258,35 @@
   # Builtin shell command, no -e option needed
   ECHO         = echo
 endif
+
+# BSD specific
+ifeq ($(PLATFORM),bsd)
+  BASENAME     = $(UTILS_USR_BIN_PATH)basename
+  EGREP        = $(UTILS_USR_BIN_PATH)egrep
+  EXPR         = $(UTILS_COMMAND_PATH)expr
+  FMT          = $(UTILS_USR_BIN_PATH)fmt
+  GREP         = $(UTILS_USR_BIN_PATH)grep
+  GUNZIP       = $(UTILS_USR_BIN_PATH)gunzip
+  ID           = $(UTILS_USR_BIN_PATH)id
+  MSGFMT       = $(UTILS_DEVTOOL_PATH)msgfmt
+  SED          = $(UTILS_USR_BIN_PATH)sed
+  SORT         = $(UTILS_USR_BIN_PATH)sort
+  TEST         = $(UTILS_COMMAND_PATH)test
+  TOUCH        = $(UTILS_USR_BIN_PATH)touch
+  TRUE         = $(UTILS_USR_BIN_PATH)true
+  UNAME        = $(UTILS_USR_BIN_PATH)uname
+  UNZIP      = $(UTILS_DEVTOOL_PATH)unzip
+  # BSD OS_VENDOR specific
+  ifeq ($(OS_VENDOR), OpenBSD)
+    NAWK       = $(UTILS_USR_BIN_PATH)awk
+    OBJDUMP    = $(UTILS_USR_BIN_PATH)objdump
+  else
+    CPIO       = $(UTILS_USR_BIN_PATH)cpio
+    TAR        = $(UTILS_USR_BIN_PATH)tar
+  endif
+  ifeq ($(OS_VENDOR), NetBSD)
+    NAWK       = $(UTILS_USR_BIN_PATH)awk
+    ZIPEXE     = $(UTILS_DEVTOOL_PATH)zip
+    UNZIP      = $(UTILS_DEVTOOL_PATH)unzip
+  endif
+endif
--- a/make/common/shared/Defs-versions.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/shared/Defs-versions.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -44,6 +44,11 @@
   override CC_VERSION = gcc
 endif
 
+# BSD uses GNU compilers by default
+ifeq ($(PLATFORM), bsd)
+  override CC_VERSION = gcc
+endif
+
 # Mac OS X uses LLVM by default
 ifeq ($(PLATFORM), macosx)
   override CC_VERSION = llvm
@@ -169,6 +174,13 @@
   endif
 endif
 
+# BSD specific
+ifeq ($(PLATFORM), macosx)
+  REQUIRED_COMPILER_NAME      = GCC4
+  REQUIRED_COMPILER_VERSION   = GCC4
+  REQUIRED_CC_VER             = 4.2.1
+endif
+
 # Mac specific
 ifeq ($(PLATFORM), macosx)
   REQUIRED_OS_NAME            = Darwin
--- a/make/common/shared/Defs.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/shared/Defs.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -181,7 +181,7 @@
 # platform and shared sources/headers.  This is mainly useful for the
 # Mac OS X build, which pulls its platform sources from the solaris and/or
 # macosx trees, depending on the component.
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
   define JavaSrcDirList
   $(JAVA_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
   endef
--- a/make/common/shared/Platform.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/common/shared/Platform.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -298,6 +298,85 @@
   # How much RAM does this machine have:
 endif
 
+ifeq ($(SYSTEM_UNAME), FreeBSD)
+  PLATFORM = bsd
+  OS_NAME = freebsd
+  OS_VENDOR = FreeBSD
+  REQUIRED_OS_VERSION = 6.0
+endif
+
+ifeq ($(SYSTEM_UNAME), NetBSD)
+  PLATFORM = bsd
+  OS_NAME = netbsd
+  OS_VENDOR = NetBSD
+  REQUIRED_OS_VERSION = 3.0
+endif
+
+ifeq ($(SYSTEM_UNAME), OpenBSD)
+  PLATFORM = bsd
+  OS_NAME = openbsd
+  OS_VENDOR = OpenBSD
+  REQUIRED_OS_VERSION = 4.9
+endif
+
+# Platform settings specific to BSD
+ifeq ($(PLATFORM), bsd)
+  OS_VERSION := $(shell uname -r)
+  # Arch and OS name/version
+  mach := $(shell uname -m)
+  archExpr = case "$(mach)" in \
+                i[3-9]86) \
+                    echo i586 \
+                    ;; \
+                sparc64) \
+                    echo sparcv9 \
+                    ;; \
+                sparc*) \
+                    echo sparc \
+                    ;; \
+                x86_64) \
+                    echo amd64 \
+                    ;; \
+                "Power Macintosh") \
+                    echo ppc \
+                    ;; \
+                *) \
+                    echo $(mach) \
+                    ;; \
+      esac
+  ARCH        := $(shell $(archExpr) )
+  ARCH_FAMILY := $(ARCH)
+
+  # i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
+  ifneq (,$(findstring $(ARCH), i586 sparc ppc))
+    ARCH_DATA_MODEL=32
+  else
+    ARCH_DATA_MODEL=64
+  endif
+
+  # Need to maintain the jre/lib/i386 location for 32-bit Intel
+  ifeq ($(ARCH), i586)
+    LIBARCH = i386
+  else
+    LIBARCH = $(ARCH)
+  endif
+
+  # Value of Java os.arch property
+  ARCHPROP  = $(LIBARCH)
+
+  # Suffix for file bundles used in previous release
+  BUNDLE_FILE_SUFFIX=.tar.gz
+  # Minimum disk space needed as determined by running 'du -sk' on
+  #    a fully built workspace.
+  REQUIRED_FREE_SPACE=1500000
+  # How much RAM does this machine have:
+  ifeq ($(OS_VENDOR), OpenBSD)
+    MB_OF_MEMORY=$(shell sysctl -n hw.physmem | awk '{print int($$NF / 1048576); }' )
+  else
+    MB_OF_MEMORY=$(shell (sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }' )
+  endif
+endif
+
 # Windows with and without CYGWIN will be slightly different
 ifeq ($(SYSTEM_UNAME), Windows_NT)
   PLATFORM = windows
--- a/make/java/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -53,7 +53,7 @@
   endif
 endif # PLATFORM
 
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), linux bsd))
   SUBDIRS += jexec
 endif # PLATFORM
 
--- a/make/java/instrument/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/instrument/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -104,12 +104,24 @@
   # equivalent of strcasecmp is stricmp on Windows
   CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
 else
-ifneq (,$(findstring $(PLATFORM), macosx))
-  ifneq ($(ARCH), universal)
-    LDFLAGS += -Wl,-all_load
+ifneq (,$(findstring $(PLATFORM), macosx bsd))
+  ifeq ($(OS_VENDOR), Apple)
+    ifneq ($(ARCH), universal)
+      LDFLAGS += -Wl,-all_load
+    endif
+    LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+    OTHER_LDLIBS += -liconv
+  else
+    LDFLAGS += -Wl,--whole-archive
+    LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
+    LDFLAGS += -Wl,--no-whole-archive
+    ifneq ($(OS_NAME), netbsd)
+# Use CPPFLAGS instead of OTHER_INCLUDES to force this last
+      CPPFLAGS += -I$(PACKAGE_PATH)/include
+      OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
+    endif
   endif
-  LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
-  OTHER_LDLIBS += -liconv
+
   ifeq ($(SYSTEM_ZLIB), true)
     OTHER_LDLIBS += -lz
   endif
--- a/make/java/java/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/java/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -176,9 +176,11 @@
 #
 ifneq ($(PLATFORM), windows)
 ifneq ($(PLATFORM), macosx)
+ifneq ($(PLATFORM), bsd)
 HAVE_ALTZONE=true
 endif
 endif
+endif
 
 ifeq ($(HAVE_ALTZONE),true)
 OTHER_CPPFLAGS += -DHAVE_ALTZONE
--- a/make/java/java/genlocales.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/java/genlocales.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -93,17 +93,65 @@
 
 else
 
+ifeq ($(PLATFORM), bsd)
+
 $(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
 	@$(RM) $@.tmp.euro $@.tmp.noneuro;
 	@$(prep-target) 
-	@$(ECHO) $(subst .properties,'\n',$(Euro_Resources_properties)) > $@.tmp.euro;
-	@$(ECHO) $(subst .java,'\n',$(Euro_Resources_java)) >> $@.tmp.euro;	
-	@$(ECHO) $(subst .properties,'\n',$(NonEuro_Resources_properties)) > $@.tmp.noneuro;
-	@$(ECHO) $(subst .java,'\n',$(NonEuro_Resources_java)) >> $@.tmp.noneuro;
+	@$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.euro;
+	@$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.euro;
+	@$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.noneuro;
+	@$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.noneuro;
 	NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
 	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
 		$@.tmp.noneuro $< $@
 	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+
+else
+
+ifeq ($(PLATFORM), bsd)
+
+$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
+	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	@$(prep-target) 
+	@$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.euro;
+	@$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.euro;
+	@$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.noneuro;
+	@$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.noneuro;
+	NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
+	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
+		$@.tmp.noneuro $< $@
+	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+
+else
+
+$(LocaleDataMetaInfo_Dest):$(LocaleDataMetaInfo_Src) $(LOCALEGEN_SH)
+	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+	@$(prep-target) 
+	@$(ECHO) $(Euro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.euro;
+	@$(ECHO) $(Euro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.euro;
+	@$(ECHO) $(NonEuro_Resources_properties) | $(SED) -e s@.properties@'\
+'@g > $@.tmp.noneuro;
+	@$(ECHO) $(NonEuro_Resources_java) | $(SED) -e s@.java@'\
+'@g >> $@.tmp.noneuro;
+	NAWK="$(NAWK)" SED="$(SED)" SORT="$(SORT)" \
+	     $(SH) $(LOCALEGEN_SH) $(RESOURCE_NAMES) $@.tmp.euro \
+		$@.tmp.noneuro $< $@
+	@$(RM) $@.tmp.euro $@.tmp.noneuro;
+endif
+
+endif
+
 endif
 	
 genlocales : $(LocaleDataMetaInfo_Dest)  
--- a/make/java/jli/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/jli/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -119,9 +119,9 @@
   LIBARCH_DEFINES += -DLIBARCH64NAME='"$(LIBARCH64)"'
 endif # PLATFORM
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), macosx bsd))
   OTHER_CPPFLAGS += $(LIBARCH_DEFINES) -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
-else # ! MACOSX
+else # ! MACOSX || BSD
   OTHER_CPPFLAGS += $(LIBARCH_DEFINES)
 endif #PLATFORM
 
@@ -134,7 +134,7 @@
     # Note: it is important to keep this order, meaning -lc as the
     # last library, otherwise it could cause compatibility issues
     # by pulling in SUNW_private symbols from libc
-    LDLIBS = -ldl -lc
+    LDLIBS = $(LIBDL) -lc
     ifeq ($(USE_PTHREADS),true)
       LDLIBS += -lpthread
     endif # USE_PTHREADS 
--- a/make/java/net/FILES_c.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/net/FILES_c.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -48,6 +48,10 @@
     FILES_c += bsd_close.c
 endif
 
+ifeq ($(OS_VENDOR), FreeBSD)
+    FILES_c += bsd_close.c
+endif
+
 ifeq ($(PLATFORM), windows)
     FILES_c += TwoStacksPlainSocketImpl.c
     FILES_c += DualStackPlainSocketImpl.c
--- a/make/java/net/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/net/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -93,7 +93,7 @@
 
 include $(BUILDDIR)/common/Library.gmk
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), macosx bsd))
 ifdef DONT_ENABLE_IPV6
   OTHER_CFLAGS += -DDONT_ENABLE_IPV6
 endif
--- a/make/java/nio/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/nio/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -263,13 +263,89 @@
 	sun/nio/fs/UnixConstants.java
 endif # PLATFORM = linux
 
+ifeq ($(PLATFORM), bsd)
+FILES_java += \
+        sun/nio/ch/AbstractPollSelectorImpl.java \
+	sun/nio/ch/BsdAsynchronousChannelProvider.java \
+	sun/nio/ch/InheritedChannel.java \
+	sun/nio/ch/KQueue.java \
+	sun/nio/ch/KQueueArrayWrapper.java \
+	sun/nio/ch/KQueuePort.java \
+	sun/nio/ch/KQueueSelectorProvider.java \
+	sun/nio/ch/KQueueSelectorImpl.java \
+        sun/nio/ch/PollSelectorProvider.java \
+        sun/nio/ch/PollSelectorImpl.java \
+	sun/nio/ch/Port.java \
+	sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
+	sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
+	sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
+	\
+	sun/nio/fs/BsdFileStore.java \
+	sun/nio/fs/BsdFileSystem.java \
+	sun/nio/fs/BsdFileSystemProvider.java \
+	sun/nio/fs/BsdNativeDispatcher.java \
+	sun/nio/fs/PollingWatchService.java \
+	sun/nio/fs/UnixChannelFactory.java \
+	sun/nio/fs/UnixCopyFile.java \
+	sun/nio/fs/UnixDirectoryStream.java \
+	sun/nio/fs/UnixException.java \
+	sun/nio/fs/UnixFileAttributeViews.java \
+	sun/nio/fs/UnixFileAttributes.java \
+	sun/nio/fs/UnixFileKey.java \
+	sun/nio/fs/UnixFileModeAttribute.java \
+	sun/nio/fs/UnixFileStore.java \
+	sun/nio/fs/UnixFileStoreAttributes.java \
+	sun/nio/fs/UnixFileSystem.java \
+	sun/nio/fs/UnixFileSystemProvider.java \
+	sun/nio/fs/UnixMountEntry.java \
+	sun/nio/fs/UnixNativeDispatcher.java \
+	sun/nio/fs/UnixPath.java \
+	sun/nio/fs/UnixSecureDirectoryStream.java \
+	sun/nio/fs/UnixUriUtils.java \
+	sun/nio/fs/UnixUserPrincipals.java
+
+FILES_c += \
+	InheritedChannel.c \
+	NativeThread.c \
+        PollArrayWrapper.c \
+	UnixAsynchronousServerSocketChannelImpl.c \
+	UnixAsynchronousSocketChannelImpl.c \
+	\
+	BsdNativeDispatcher.c \
+	UnixCopyFile.c \
+	UnixNativeDispatcher.c \
+	\
+	KQueue.c \
+	KQueueArrayWrapper.c \
+	KQueuePort.c
+
+FILES_export += \
+	sun/nio/ch/InheritedChannel.java \
+	sun/nio/ch/KQueue.java \
+	sun/nio/ch/KQueuePort.java \
+	sun/nio/ch/NativeThread.java \
+	sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java \
+	sun/nio/ch/UnixAsynchronousSocketChannelImpl.java \
+	\
+	sun/nio/fs/BsdNativeDispatcher.java \
+	sun/nio/fs/UnixCopyFile.java \
+	sun/nio/fs/UnixNativeDispatcher.java
+
+FILES_gen += \
+	sun/nio/fs/UnixConstants.java
+
+endif # PLATFORM = bsd
+
 ifeq ($(PLATFORM), macosx)
 FILES_java += \
         sun/nio/ch/AbstractPollSelectorImpl.java \
 	sun/nio/ch/BsdAsynchronousChannelProvider.java \
 	sun/nio/ch/InheritedChannel.java \
 	sun/nio/ch/KQueue.java \
+	sun/nio/ch/KQueueArrayWrapper.java
 	sun/nio/ch/KQueuePort.java \
+	sun/nio/ch/KQueueSelectorProvider.java \
+	sun/nio/ch/KQueueSelectorImpl.java \
         sun/nio/ch/PollSelectorProvider.java \
         sun/nio/ch/PollSelectorImpl.java \
 	sun/nio/ch/Port.java \
@@ -317,6 +393,7 @@
 	UnixNativeDispatcher.c \
 	\
 	KQueue.c \
+	KQueueArrayWrapper.c \
 	KQueuePort.c
 
 FILES_export += \
@@ -330,19 +407,13 @@
 	sun/nio/fs/BsdNativeDispatcher.java \
 	sun/nio/fs/UnixCopyFile.java \
 	sun/nio/fs/UnixNativeDispatcher.java
-	
+
 FILES_gen += \
 	sun/nio/fs/UnixConstants.java
-endif # PLATFORM = bsd, macosx
 
-ifeq ($(PLATFORM), macosx)
-FILES_java += \
-    sun/nio/ch/KQueueSelectorProvider.java \
-    sun/nio/ch/KQueueSelectorImpl.java \
-    sun/nio/ch/KQueueArrayWrapper.java
+endif # PLATFORM = macosx
 
-FILES_c += \
-    KQueueArrayWrapper.c
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 
 vpath %.c $(call NativeSrcDirList,,native/sun/nio/fs)
 vpath %.c $(call NativeSrcDirList,,native/sun/nio/ch)
@@ -388,6 +459,9 @@
 ifeq ($(PLATFORM), macosx)
 OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread -framework CoreFoundation
 endif
+ifeq ($(PLATFORM), bsd)
+OTHER_LDLIBS += -L$(LIBDIR) -ljava -lnet -pthread
+endif
 ifeq ($(PLATFORM), solaris)
 OTHER_LDLIBS += $(JVMLIB) $(LIBSOCKET) -lposix4 $(LIBDL) -lsendfile \
 		-L$(LIBDIR)/$(LIBARCH) -ljava -lnet
@@ -410,7 +484,7 @@
 ifeq ($(PLATFORM), linux)
 FILES_m = mapfile-linux
 endif
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 FILES_m = mapfile-bsd
 endif
 include $(BUILDDIR)/common/Mapfile-vers.gmk
--- a/make/java/nio/mapfile-bsd	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/nio/mapfile-bsd	Sat Apr 19 01:32:17 2014 -0700
@@ -70,6 +70,7 @@
                 Java_sun_nio_ch_IOUtil_drain;
                 Java_sun_nio_ch_IOUtil_fdVal;
                 Java_sun_nio_ch_IOUtil_initIDs;
+                Java_sun_nio_ch_IOUtil_iovMax;
                 Java_sun_nio_ch_IOUtil_makePipe;
                 Java_sun_nio_ch_IOUtil_randomBytes;
                 Java_sun_nio_ch_IOUtil_setfdVal;
@@ -80,6 +81,11 @@
 		Java_sun_nio_ch_KQueue_identOffset;
 		Java_sun_nio_ch_KQueue_filterOffset;
 		Java_sun_nio_ch_KQueue_flagsOffset;
+		Java_sun_nio_ch_KQueueArrayWrapper_initStructSizes;
+		Java_sun_nio_ch_KQueueArrayWrapper_init;
+		Java_sun_nio_ch_KQueueArrayWrapper_register0;
+		Java_sun_nio_ch_KQueueArrayWrapper_kevent0;
+		Java_sun_nio_ch_KQueueArrayWrapper_interrupt;
 		Java_sun_nio_ch_KQueuePort_socketpair;
 		Java_sun_nio_ch_KQueuePort_interrupt;
 		Java_sun_nio_ch_KQueuePort_drain1;
--- a/make/java/npt/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/npt/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -74,6 +74,14 @@
   OTHER_LDLIBS += -liconv
 endif
 
+# Add location of iconv headers
+ifeq ($(PLATFORM), bsd)
+  ifneq ($(OS_NAME), netbsd)
+    CPPFLAGS += -I$(PACKAGE_PATH)/include
+    OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
+  endif
+endif
+
 #
 # Add to ambient vpath so we pick up the library files
 #
--- a/make/java/redist/fonts/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/java/redist/fonts/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -42,7 +42,7 @@
 	$(LIBDIR)/fonts/LucidaSansRegular.ttf       	\
 	$(LIBDIR)/fonts/LucidaSansDemiBold.ttf       	\
 
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), linux bsd))
 
 # The oblique versions of the font are derived from the base versions
 # and since 2D can do this derivation on the fly at run time there is no
@@ -82,7 +82,7 @@
 $(FONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.fonts.dir
 	$(install-file)
 
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), linux bsd))
 
 # The oblique fonts are only needed/wanted on Linux.
 
@@ -96,7 +96,7 @@
 $(OBLFONTSDIRFILE): $(PLATFORM_SRC)/classes/sun/awt/motif/java.oblique-fonts.dir
 	$(install-file)
 
-endif # linux
+endif # linux || bsd
 
 all build : $(INTERNAL_IMPORT_LIST)
 
--- a/make/javax/sound/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/javax/sound/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -111,6 +111,21 @@
   #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
 endif # PLATFORM linux
 
+ifeq ($(PLATFORM), bsd)
+ifeq ($(OS_VENDOR), FreeBSD)
+  # ALSA handles directaudio, ports, and MIDI
+  SUBDIRS += jsoundalsa
+  EXTRA_SOUND_JNI_LIBS += jsoundalsa
+else
+    # build with empty MIDI i/o
+    INCLUDE_MIDI = TRUE
+    # build with empty ports
+    INCLUDE_PORTS = TRUE
+    # build with empty direct audio
+    INCLUDE_DAUDIO = TRUE
+endif
+endif # PLATFORM bsd
+
 ifeq ($(PLATFORM), macosx)
   CPPFLAGS += -DUSE_PORTS=TRUE \
               -DUSE_DAUDIO=TRUE \
--- a/make/javax/sound/SoundDefs.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/javax/sound/SoundDefs.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -40,6 +40,10 @@
   CPPFLAGS += -DX_PLATFORM=X_LINUX
 endif # PLATFORM linux
 
+ifeq ($(PLATFORM), bsd)
+  CPPFLAGS += -DX_PLATFORM=X_BSD
+endif # PLATFORM bsd
+
 ifeq ($(PLATFORM), macosx)
   CPPFLAGS += -DX_PLATFORM=X_MACOSX
 endif # PLATFORM macosx
--- a/make/javax/sound/jsoundalsa/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/javax/sound/jsoundalsa/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -51,6 +51,7 @@
 	$(PORTFILES_c)
 
 # platform dependent files
+ifeq ($(PLATFORM), linux)
 FILES_c += \
 	PLATFORM_API_LinuxOS_ALSA_CommonUtils.c   \
 	PLATFORM_API_LinuxOS_ALSA_PCM.c     \
@@ -60,19 +61,37 @@
 	PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \
 	PLATFORM_API_LinuxOS_ALSA_Ports.c
 
+MIDI_CPPFLAGS= \
+	-DUSE_PLATFORM_MIDI_OUT=TRUE \
+	-DUSE_PLATFORM_MIDI_IN=TRUE
+endif
+
+ifeq ($(PLATFORM), bsd)
+FILES_c += \
+	PLATFORM_API_BsdOS_ALSA_CommonUtils.c   \
+	PLATFORM_API_BsdOS_ALSA_PCM.c     \
+	PLATFORM_API_BsdOS_ALSA_PCMUtils.c   \
+	PLATFORM_API_BsdOS_ALSA_MidiIn.c  \
+	PLATFORM_API_BsdOS_ALSA_MidiOut.c \
+	PLATFORM_API_BsdOS_ALSA_MidiUtils.c \
+	PLATFORM_API_BsdOS_ALSA_Ports.c
+
+MIDI_CPPFLAGS=
+endif
+
 FILES_export = \
 	$(DAUDIOFILES_export) \
 	$(MIDIFILES_export) \
 	$(PORTFILES_export)
 
-OTHER_LDLIBS += -lasound
+OTHER_LDLIBS += -L$(ALSA_LIB_PATH) -lasound
 
 CPPFLAGS += \
 	-DUSE_DAUDIO=TRUE \
 	-DUSE_PORTS=TRUE  \
-	-DUSE_PLATFORM_MIDI_OUT=TRUE \
-	-DUSE_PLATFORM_MIDI_IN=TRUE \
-	-I$(SHARE_SRC)/native/com/sun/media/sound
+	$(MIDI_CPPFLAGS) \
+	-I$(SHARE_SRC)/native/com/sun/media/sound \
+	-I$(ALSA_HEADERS_PATH)
 
 #
 # Add to the ambient VPATH.
--- a/make/jpda/transport/socket/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/jpda/transport/socket/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -38,6 +38,11 @@
 
 include $(BUILDDIR)/common/Defs.gmk
 
+ifeq ($(PLATFORM), bsd))
+  LIBSOCKET =
+  OTHER_LDLIBS += -pthread
+endif
+
 ifeq ($(PLATFORM), linux)
   OTHER_LDLIBS += $(LIBNSL) $(LIBSOCKET) -lpthread
 endif
--- a/make/sun/awt/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/awt/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -127,7 +127,12 @@
 OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL)
 endif
 
-FILES_c += initIDs.c
+ifeq  ($(PLATFORM), bsd)
+FILES_c = $(FILES_2D_c)
+FILES_c += awt_LoadLibrary.c
+OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
+OTHER_LDLIBS = $(JVMLIB) $(LIBM)
+endif
 
 ifeq ($(PLATFORM), macosx)
 FILES_c = $(FILES_2D_c)
@@ -136,6 +141,8 @@
 OTHER_LDLIBS = $(JVMLIB) $(LIBM)
 endif
 
+FILES_c += initIDs.c
+
 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS/LINUX
 endif # PLATFORM 
 
@@ -500,6 +507,17 @@
 # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SOLARIS
 endif # PLATFORM
 
+ifeq ($(PLATFORM), bsd)
+# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv BSD
+
+FONTCONFIGS_SRC = $(PLATFORM_SRC)/classes/sun/awt/fontconfigs
+_FONTCONFIGS   = \
+	fontconfig.properties
+
+FONTCONFIGS_SRC_PREFIX = $(PLATFORM).
+
+# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ BSD
+endif # PLATFORM
 
 ifeq ($(PLATFORM), macosx)
 # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv MAC OS X
@@ -605,6 +623,9 @@
             -I$(OPENWIN_HOME)/include/X11/extensions \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/font 
 endif
+ifeq ($(PLATFORM), bsd)
+CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/font
+endif
 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
             -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
@@ -626,7 +647,13 @@
             -I$(PLATFORM_SRC)/native/$(PKGDIR) \
 	    $(EVENT_MODEL)
 
-ifeq ($(PLATFORM), linux)
+# include these last so we don't pick up unintentional includes
+ifeq ($(PLATFORM), bsd)
+CPPFLAGS += -I$(OPENWIN_HOME)/include \
+	    -I$(OPENWIN_HOME)/include/X11/extensions
+endif
+
+ifneq (,$(findstring $(PLATFORM), linux bsd))
 LDFLAGS += -L$(OPENWIN_LIB)
 endif
 
--- a/make/sun/awt/mawt.gmk	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/awt/mawt.gmk	Sat Apr 19 01:32:17 2014 -0700
@@ -169,7 +169,7 @@
 OTHER_LDLIBS = -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
 endif
 
-ifneq (,$(findstring $(PLATFORM), linux macosx))
+ifneq (,$(findstring $(PLATFORM), bsd linux macosx))
 OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
 # XXX what is this define below? Isn't it motif-related?
 OTHER_CFLAGS += -DXMSTRINGDEFINES=1
@@ -193,6 +193,7 @@
 #
 # Other extra flags needed for compiling.
 #
+ifneq ($(PLATFORM), bsd))
 CPPFLAGS += -I$(CUPS_HEADERS_PATH)
 
 ifndef HEADLESS
@@ -200,6 +201,7 @@
 LDFLAGS  += -L$(OPENWIN_LIB)
 
 endif # !HEADLESS
+endif # !PLATFORM
 
 CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
             -I$(SHARE_SRC)/native/$(PKGDIR)/../font \
@@ -223,13 +225,16 @@
         -I$(PLATFORM_SRC)/native/$(PKGDIR) \
         $(EVENT_MODEL)
 
-ifeq ($(PLATFORM), macosx)
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 CPPFLAGS += -I$(CUPS_HEADERS_PATH)
 
 ifndef HEADLESS
 CPPFLAGS += -I$(MOTIF_DIR)/include \
             -I$(OPENWIN_HOME)/include 
 LDFLAGS  += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
+ifeq ($(OS_NAME), netbsd)
+LDFLAGS  += -Wl,-R$(OPENWIN_LIB)
+endif
 
 endif # !HEADLESS
 endif # PLATFORM
@@ -240,6 +245,12 @@
                         $(wildcard /usr/include/X11/extensions))
 endif
 
+ifeq ($(PLATFORM), bsd))
+  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
+              -I$(OPENWIN_HOME)/include \
+              -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+endif
+
 ifeq ($(PLATFORM), macosx))
   CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
               -I$(OPENWIN_HOME)/include 
--- a/make/sun/font/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/font/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -95,7 +95,7 @@
 endif # PLATFORM
 
 # Turn off aliasing with GCC for ExtensionSubtables.cpp
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), bsd linux))
   CXXFLAGS += $(CXXFLAGS_$(@F))
   CXXFLAGS_ExtensionSubtables.o = -fno-strict-aliasing
 endif
@@ -182,7 +182,7 @@
 # Libraries to link, and other C flags.
 #
 
-ifeq ($(PLATFORM), macosx))
+ifneq (,$(findstring $(PLATFORM), bsd macosx))
 OTHER_INCLUDES += -I$(X11_PATH)/include
 OTHER_LDLIBS  += -lawt $(LIBM) $(LIBCXX)
  ifeq ($(OS_VENDOR),Apple)
--- a/make/sun/jawt/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/jawt/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -99,8 +99,7 @@
 #
 # Other extra flags needed for compiling.
 #
-CPPFLAGS += -I$(OPENWIN_HOME)/include \
-	    -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
+CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
             -I$(SHARE_SRC)/native/$(PKGDIR)/image \
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \
@@ -114,6 +113,7 @@
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
 	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
             -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
+            -I$(OPENWIN_HOME)/include \
 	    $(EVENT_MODEL)
 
 #
@@ -127,7 +127,7 @@
   endif
 endif # PLATFORM
 
-ifeq ($(PLATFORM), linux)
+ifneq (,$(findstring $(PLATFORM), linux bsd))
   ifndef BUILD_HEADLESS_ONLY
     OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt
   else
--- a/make/sun/rmi/rmi/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/rmi/rmi/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -71,6 +71,9 @@
     BUILD_TARGETS += bin
   endif
 endif
+ifeq ($(PLATFORM), bsd)
+  BUILD_TARGETS += bin
+endif
 
 build: $(BUILD_TARGETS)
 
--- a/make/sun/splashscreen/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/splashscreen/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -83,15 +83,16 @@
 				  -framework JavaNativeFoundation
 else ifneq ($(PLATFORM), windows)
   CFLAGS += -DWITH_X11
-  ifeq ($(PLATFORM), macosx))
-    OTHER_LDLIBS += -liconv
-    CPPFLAGS += -I$(OPENWIN_HOME)/include \
-                -I$(OPENWIN_HOME)/include/X11/extensions
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -pthread
-  else
-    CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
-    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
+  ifeq ($(PLATFORM), bsd))
+    ifeq ($(OS_NAME), netbsd)
+      OTHER_LDLIBS += -Wl,-R$(OPENWIN_LIB)
+    else
+      CPPFLAGS += -I$(PACKAGE_PATH)/include
+      OTHER_LDLIBS += -L$(PACKAGE_PATH)/lib -liconv
+    endif
   endif
+  CPPFLAGS += -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions
+  OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
 else # PLATFORM
   CFLAGS += -DWITH_WIN32
   OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
--- a/make/sun/xawt/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/sun/xawt/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -52,6 +52,9 @@
 AUTO_JAVA_PRUNE = WrapperGenerator.java
 
 LDFLAGS += -L$(OPENWIN_LIB)
+ifeq ($(OS_NAME), netbsd)
+LDFLAGS += -Wl,-R$(OPENWIN_LIB)
+endif
 
 # For Xrender extension.
 ifeq ($(PLATFORM), solaris)
@@ -63,6 +66,11 @@
 dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
 endif
 
+ifeq ($(PLATFORM), bsd)
+LDFLAGS += -pthread
+dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
+endif
+
 ifeq ($(PLATFORM), macosx))
 LDFLAGS += -pthread
 dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
@@ -110,8 +118,6 @@
 dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
 endif
 
-CPPFLAGS += -I$(CUPS_HEADERS_PATH)
-
 CPPFLAGS += -DXAWT -DXAWT_HACK \
         -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
         -I$(PLATFORM_SRC)/native/sun/awt \
@@ -138,6 +144,8 @@
         -I$(SHARE_SRC)/native/sun/awt \
         -I$(PLATFORM_SRC)/native/sun/awt
 
+CPPFLAGS += -I$(CUPS_HEADERS_PATH)
+
 ifeq ($(PLATFORM), linux)
   ifndef CROSS_COMPILE_ARCH
     # Allows for builds on Debian GNU Linux, X11 is in a different place 
@@ -173,6 +181,11 @@
  endif
 endif
 
+ifeq ($(PLATFORM), bsd)
+  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -I$(OPENWIN_HOME)/include
+  CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
+endif
+
 ifeq ($(PLATFORM), macosx)
   CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
 endif
--- a/make/tools/freetypecheck/Makefile	Thu Mar 27 11:23:12 2014 -0700
+++ b/make/tools/freetypecheck/Makefile	Sat Apr 19 01:32:17 2014 -0700
@@ -52,8 +52,15 @@
   else 
     ifeq ($(PLATFORM), macosx)
       FT_LD_OPTIONS += -lfreetype -lz
-    else # linux
-      FT_LD_OPTIONS += -Wl,-rpath -Wl,$(FREETYPE_LIB_PATH) -lfreetype
+    else
+      ifeq ($(PLATFORM), bsd)
+        ifeq ($(OS_NAME), netbsd)
+          FT_LD_OPTIONS += -Wl,-R$(FREETYPE_LIB_PATH)
+        endif
+        FT_LD_OPTIONS += -lfreetype -lz
+      else # linux
+        FT_LD_OPTIONS += -Wl,-rpath -Wl,$(FREETYPE_LIB_PATH) -lfreetype
+      endif
     endif
   endif
 endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/tools/sharing/classlist.bsd	Sat Apr 19 01:32:17 2014 -0700
@@ -0,0 +1,2327 @@
+java/lang/Object
+java/lang/String
+java/io/Serializable
+java/lang/Comparable
+java/lang/CharSequence
+java/lang/Class
+java/lang/reflect/GenericDeclaration
+java/lang/reflect/Type
+java/lang/reflect/AnnotatedElement
+java/lang/Cloneable
+java/lang/ClassLoader
+java/lang/System
+java/lang/Throwable
+java/lang/Error
+java/lang/ThreadDeath
+java/lang/Exception
+java/lang/RuntimeException
+java/security/ProtectionDomain
+java/security/AccessControlContext
+java/lang/ClassNotFoundException
+java/lang/NoClassDefFoundError
+java/lang/LinkageError
+java/lang/ClassCastException
+java/lang/ArrayStoreException
+java/lang/VirtualMachineError
+java/lang/OutOfMemoryError
+java/lang/StackOverflowError
+java/lang/IllegalMonitorStateException
+java/lang/ref/Reference
+java/lang/ref/SoftReference
+java/lang/ref/WeakReference
+java/lang/ref/FinalReference
+java/lang/ref/PhantomReference
+java/lang/ref/Finalizer
+java/lang/Thread
+java/lang/Runnable
+java/lang/ThreadGroup
+java/lang/Thread$UncaughtExceptionHandler
+java/util/Properties
+java/util/Hashtable
+java/util/Map
+java/util/Dictionary
+java/lang/reflect/AccessibleObject
+java/lang/reflect/Field
+java/lang/reflect/Member
+java/lang/reflect/Method
+java/lang/reflect/Constructor
+sun/reflect/MagicAccessorImpl
+sun/reflect/MethodAccessorImpl
+sun/reflect/MethodAccessor
+sun/reflect/ConstructorAccessorImpl
+sun/reflect/ConstructorAccessor
+sun/reflect/DelegatingClassLoader
+sun/reflect/ConstantPool
+sun/reflect/UnsafeStaticFieldAccessorImpl
+sun/reflect/UnsafeFieldAccessorImpl
+sun/reflect/FieldAccessorImpl
+sun/reflect/FieldAccessor
+java/util/Vector
+java/util/List
+java/util/Collection
+java/lang/Iterable
+java/util/RandomAccess
+java/util/AbstractList
+java/util/AbstractCollection
+java/lang/StringBuffer
+java/lang/AbstractStringBuilder
+java/lang/Appendable
+java/lang/StackTraceElement
+java/nio/Buffer
+java/lang/Boolean
+java/lang/Character
+java/lang/Float
+java/lang/Number
+java/lang/Double
+java/lang/Byte
+java/lang/Short
+java/lang/Integer
+java/lang/Long
+java/lang/NullPointerException
+java/lang/ArithmeticException
+java/io/ObjectStreamField
+java/lang/String$CaseInsensitiveComparator
+java/util/Comparator
+java/lang/RuntimePermission
+java/security/BasicPermission
+java/security/Permission
+java/security/Guard
+sun/misc/SoftCache
+java/util/AbstractMap
+java/lang/ref/ReferenceQueue
+java/lang/ref/ReferenceQueue$Null
+java/lang/ref/ReferenceQueue$Lock
+java/util/HashMap
+java/lang/annotation/Annotation
+java/util/HashMap$Entry
+java/util/Map$Entry
+java/security/AccessController
+java/lang/reflect/ReflectPermission
+sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+java/security/PrivilegedAction
+java/util/Stack
+sun/reflect/ReflectionFactory
+java/lang/ref/Reference$Lock
+java/lang/ref/Reference$ReferenceHandler
+java/lang/ref/Finalizer$FinalizerThread
+java/util/Enumeration
+java/util/Iterator
+java/util/Hashtable$Entry
+java/nio/charset/Charset
+sun/nio/cs/StandardCharsets
+sun/nio/cs/FastCharsetProvider
+java/nio/charset/spi/CharsetProvider
+sun/nio/cs/StandardCharsets$Aliases
+sun/util/PreHashedMap
+sun/nio/cs/StandardCharsets$Classes
+sun/nio/cs/StandardCharsets$Cache
+java/lang/ThreadLocal
+java/util/concurrent/atomic/AtomicInteger
+sun/misc/Unsafe
+java/lang/NoSuchMethodError
+java/lang/IncompatibleClassChangeError
+sun/reflect/Reflection
+java/util/Collections
+java/util/Collections$EmptySet
+java/util/AbstractSet
+java/util/Set
+java/util/Collections$EmptyList
+java/util/Collections$EmptyMap
+java/util/Collections$ReverseComparator
+java/util/Collections$SynchronizedMap
+java/lang/Class$3
+java/lang/reflect/Modifier
+java/lang/reflect/ReflectAccess
+sun/reflect/LangReflectAccess
+java/util/Arrays
+java/lang/Math
+sun/nio/cs/US_ASCII
+sun/nio/cs/HistoricallyNamedCharset
+sun/misc/VM
+java/lang/StringCoding
+java/lang/ThreadLocal$ThreadLocalMap
+java/lang/ThreadLocal$ThreadLocalMap$Entry
+java/lang/StringCoding$StringDecoder
+sun/nio/cs/US_ASCII$Decoder
+java/nio/charset/CharsetDecoder
+java/nio/charset/CodingErrorAction
+java/nio/ByteBuffer
+java/nio/HeapByteBuffer
+java/nio/Bits
+java/nio/ByteOrder
+java/nio/CharBuffer
+java/lang/Readable
+java/nio/HeapCharBuffer
+java/nio/charset/CoderResult
+java/nio/charset/CoderResult$1
+java/nio/charset/CoderResult$Cache
+java/nio/charset/CoderResult$2
+sun/misc/Version
+java/io/FileInputStream
+java/io/InputStream
+java/io/Closeable
+java/io/FileDescriptor
+java/io/FileOutputStream
+java/io/OutputStream
+java/io/Flushable
+java/io/BufferedInputStream
+java/io/FilterInputStream
+java/util/concurrent/atomic/AtomicReferenceFieldUpdater
+java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+sun/reflect/misc/ReflectUtil
+java/io/PrintStream
+java/io/FilterOutputStream
+java/io/BufferedOutputStream
+java/io/OutputStreamWriter
+java/io/Writer
+sun/nio/cs/StreamEncoder
+sun/security/action/GetPropertyAction
+sun/nio/cs/US_ASCII$Encoder
+java/nio/charset/CharsetEncoder
+sun/nio/cs/Surrogate$Parser
+sun/nio/cs/Surrogate
+java/io/BufferedWriter
+java/lang/Runtime
+java/io/File
+java/io/FileSystem
+java/io/UnixFileSystem
+java/io/ExpiringCache
+java/io/ExpiringCache$1
+java/util/LinkedHashMap
+java/util/LinkedHashMap$Entry
+java/lang/StringBuilder
+sun/misc/SharedSecrets
+java/lang/ClassLoader$3
+java/lang/StringCoding$StringEncoder
+java/io/ExpiringCache$Entry
+java/lang/ClassLoader$NativeLibrary
+java/lang/Terminator
+java/lang/Terminator$1
+sun/misc/SignalHandler
+sun/misc/Signal
+sun/misc/NativeSignalHandler
+java/io/Console
+java/io/Console$1
+sun/misc/JavaIOAccess
+java/lang/Shutdown
+java/util/ArrayList
+java/lang/Shutdown$Lock
+java/lang/ApplicationShutdownHooks
+java/util/IdentityHashMap
+sun/misc/OSEnvironment
+java/lang/System$2
+sun/misc/JavaLangAccess
+java/lang/Compiler
+java/lang/Compiler$1
+sun/misc/Launcher
+sun/misc/Launcher$Factory
+java/net/URLStreamHandlerFactory
+sun/misc/Launcher$ExtClassLoader
+java/net/URLClassLoader
+java/security/SecureClassLoader
+sun/security/util/Debug
+java/net/URLClassLoader$7
+sun/misc/JavaNetAccess
+java/util/StringTokenizer
+sun/misc/Launcher$ExtClassLoader$1
+java/security/PrivilegedExceptionAction
+sun/misc/MetaIndex
+java/io/BufferedReader
+java/io/Reader
+java/io/FileReader
+java/io/InputStreamReader
+sun/nio/cs/StreamDecoder
+java/lang/reflect/Array
+sun/net/www/ParseUtil
+java/util/BitSet
+java/io/ObjectStreamClass
+java/net/URL
+java/util/Locale
+java/util/concurrent/ConcurrentHashMap
+java/util/concurrent/ConcurrentMap
+java/util/concurrent/ConcurrentHashMap$Segment
+java/util/concurrent/locks/ReentrantLock
+java/util/concurrent/locks/Lock
+java/util/concurrent/locks/ReentrantLock$NonfairSync
+java/util/concurrent/locks/ReentrantLock$Sync
+java/util/concurrent/locks/AbstractQueuedSynchronizer
+java/util/concurrent/locks/AbstractOwnableSynchronizer
+java/util/concurrent/locks/AbstractQueuedSynchronizer$Node
+java/util/concurrent/ConcurrentHashMap$HashEntry
+java/lang/CharacterDataLatin1
+java/net/Parts
+sun/net/www/protocol/file/Handler
+java/net/URLStreamHandler
+java/lang/Class$1
+sun/reflect/ReflectionFactory$1
+sun/reflect/NativeConstructorAccessorImpl
+sun/reflect/DelegatingConstructorAccessorImpl
+java/util/HashSet
+sun/misc/URLClassPath
+sun/net/www/protocol/jar/Handler
+sun/misc/Launcher$AppClassLoader
+sun/misc/Launcher$AppClassLoader$1
+java/lang/SystemClassLoaderAction
+java/net/URLClassLoader$1
+sun/misc/URLClassPath$3
+sun/misc/URLClassPath$JarLoader
+sun/misc/URLClassPath$Loader
+java/security/PrivilegedActionException
+sun/misc/URLClassPath$FileLoader
+sun/misc/URLClassPath$FileLoader$1
+sun/misc/Resource
+sun/nio/ByteBuffered
+java/security/CodeSource
+java/security/Permissions
+java/security/PermissionCollection
+sun/net/www/protocol/file/FileURLConnection
+sun/net/www/URLConnection
+java/net/URLConnection
+java/net/UnknownContentHandler
+java/net/ContentHandler
+sun/net/www/MessageHeader
+java/io/FilePermission
+java/io/FilePermission$1
+sun/security/provider/PolicyFile
+java/security/Policy
+java/security/Policy$UnsupportedEmptyCollection
+java/io/FilePermissionCollection
+java/security/AllPermission
+java/security/UnresolvedPermission
+java/security/BasicPermissionCollection
+java/security/Principal
+java/security/cert/Certificate
+java/util/AbstractList$Itr
+java/util/IdentityHashMap$KeySet
+java/util/IdentityHashMap$KeyIterator
+java/util/IdentityHashMap$IdentityHashMapIterator
+java/io/DeleteOnExitHook
+java/util/LinkedHashSet
+java/util/HashMap$KeySet
+java/util/LinkedHashMap$KeyIterator
+java/util/LinkedHashMap$LinkedHashIterator
+java/awt/Frame
+java/awt/MenuContainer
+java/awt/Window
+javax/accessibility/Accessible
+java/awt/Container
+java/awt/Component
+java/awt/image/ImageObserver
+java/lang/InterruptedException
+java/awt/Label
+java/util/logging/Logger
+java/util/logging/Handler
+java/util/logging/Level
+java/util/logging/LogManager
+java/util/logging/LogManager$1
+java/beans/PropertyChangeSupport
+java/util/logging/LogManager$LogNode
+java/util/logging/LoggingPermission
+java/util/logging/LogManager$Cleaner
+java/util/logging/LogManager$RootLogger
+java/util/logging/LogManager$2
+java/util/Properties$LineReader
+java/util/Hashtable$Enumerator
+java/beans/PropertyChangeEvent
+java/util/EventObject
+java/awt/Component$AWTTreeLock
+sun/awt/NativeLibLoader
+sun/security/action/LoadLibraryAction
+java/awt/GraphicsEnvironment
+java/awt/GraphicsEnvironment$1
+java/lang/ProcessEnvironment
+java/lang/ProcessEnvironment$Variable
+java/lang/ProcessEnvironment$ExternalData
+java/lang/ProcessEnvironment$Value
+java/lang/ProcessEnvironment$StringEnvironment
+java/util/Collections$UnmodifiableMap
+java/awt/Toolkit
+java/awt/Toolkit$3
+sun/util/CoreResourceBundleControl
+java/util/ResourceBundle$Control
+java/util/Arrays$ArrayList
+java/util/Collections$UnmodifiableRandomAccessList
+java/util/Collections$UnmodifiableList
+java/util/Collections$UnmodifiableCollection
+java/util/ResourceBundle
+java/util/ResourceBundle$1
+java/util/ResourceBundle$RBClassLoader
+java/util/ResourceBundle$RBClassLoader$1
+java/util/ResourceBundle$CacheKey
+java/util/ResourceBundle$LoaderReference
+java/util/ResourceBundle$CacheKeyReference
+java/util/ResourceBundle$SingleFormatControl
+sun/awt/resources/awt
+java/util/ListResourceBundle
+java/awt/Toolkit$1
+java/io/FileNotFoundException
+java/io/IOException
+java/awt/event/KeyEvent
+java/awt/event/InputEvent
+java/awt/event/ComponentEvent
+java/awt/AWTEvent
+java/awt/event/NativeLibLoader
+java/util/WeakHashMap
+java/util/WeakHashMap$Entry
+java/awt/Component$DummyRequestFocusController
+sun/awt/RequestFocusController
+java/awt/LayoutManager
+java/awt/LightweightDispatcher
+java/awt/event/AWTEventListener
+java/util/EventListener
+java/awt/Dimension
+java/awt/geom/Dimension2D
+java/util/concurrent/atomic/AtomicBoolean
+java/awt/ComponentOrientation
+java/awt/Component$2
+java/lang/NoSuchMethodException
+sun/awt/AppContext
+sun/awt/AppContext$1
+sun/awt/AppContext$2
+sun/awt/MostRecentKeyValue
+java/awt/Cursor
+sun/awt/X11GraphicsEnvironment
+sun/java2d/SunGraphicsEnvironment
+sun/java2d/FontSupport
+sun/awt/DisplayChangedListener
+java/io/FilenameFilter
+sun/awt/X11GraphicsEnvironment$1
+sun/awt/SunToolkit
+sun/awt/WindowClosingSupport
+sun/awt/WindowClosingListener
+sun/awt/ComponentFactory
+sun/awt/InputMethodSupport
+java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject
+java/util/concurrent/locks/Condition
+sun/awt/AWTAutoShutdown
+sun/awt/SunToolkit$6
+java/awt/Dialog$ModalExclusionType
+java/lang/Enum
+java/awt/Dialog
+java/awt/Dialog$ModalityType
+java/awt/ModalEventFilter
+java/awt/EventFilter
+sun/reflect/UnsafeFieldAccessorFactory
+sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl
+sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl
+sun/awt/SunDisplayChanger
+sun/java2d/SunGraphicsEnvironment$1
+java/io/StreamTokenizer
+sun/font/FontManager
+sun/font/FileFont
+sun/font/PhysicalFont
+sun/font/Font2D
+sun/font/CompositeFont
+java/util/HashMap$Values
+java/util/HashMap$ValueIterator
+java/util/HashMap$HashIterator
+java/awt/Font
+java/awt/geom/AffineTransform
+sun/font/AttributeValues
+sun/font/EAttribute
+java/text/AttributedCharacterIterator$Attribute
+java/lang/Class$4
+sun/reflect/NativeMethodAccessorImpl
+sun/reflect/DelegatingMethodAccessorImpl
+java/awt/font/TextAttribute
+java/lang/Integer$IntegerCache
+sun/font/TrueTypeFont
+java/awt/font/FontRenderContext
+java/awt/RenderingHints
+sun/awt/SunHints
+sun/awt/SunHints$Key
+java/awt/RenderingHints$Key
+sun/awt/SunHints$Value
+sun/awt/SunHints$LCDContrastKey
+sun/font/Type1Font
+java/awt/geom/Point2D$Float
+java/awt/geom/Point2D
+sun/font/StrikeMetrics
+java/awt/geom/Rectangle2D$Float
+java/awt/geom/Rectangle2D
+java/awt/geom/RectangularShape
+java/awt/Shape
+java/awt/geom/GeneralPath
+java/awt/geom/Path2D$Float
+java/awt/geom/Path2D
+sun/font/CharToGlyphMapper
+sun/font/PhysicalStrike
+sun/font/FontStrike
+sun/font/GlyphList
+sun/font/StrikeCache
+sun/java2d/Disposer
+sun/java2d/Disposer$1
+sun/font/StrikeCache$1
+sun/awt/motif/MFontConfiguration
+sun/awt/FontConfiguration
+sun/awt/FontDescriptor
+java/util/Scanner
+java/util/regex/Pattern
+java/util/regex/Pattern$Node
+java/util/regex/Pattern$LastNode
+java/util/regex/Pattern$GroupHead
+java/util/regex/Pattern$CharPropertyNames
+java/util/regex/Pattern$CharPropertyNames$1
+java/util/regex/Pattern$CharPropertyNames$CharPropertyFactory
+java/util/regex/Pattern$CharPropertyNames$2
+java/util/regex/Pattern$CharPropertyNames$5
+java/util/regex/Pattern$CharPropertyNames$3
+java/util/regex/Pattern$CharPropertyNames$6
+java/util/regex/Pattern$CharPropertyNames$CloneableProperty
+java/util/regex/Pattern$CharProperty
+java/util/regex/Pattern$CharPropertyNames$4
+java/util/regex/Pattern$CharPropertyNames$7
+java/util/regex/Pattern$CharPropertyNames$8
+java/util/regex/Pattern$CharPropertyNames$9
+java/util/regex/Pattern$CharPropertyNames$10
+java/util/regex/Pattern$CharPropertyNames$11
+java/util/regex/Pattern$CharPropertyNames$12
+java/util/regex/Pattern$CharPropertyNames$13
+java/util/regex/Pattern$CharPropertyNames$14
+java/util/regex/Pattern$CharPropertyNames$15
+java/util/regex/Pattern$CharPropertyNames$16
+java/util/regex/Pattern$CharPropertyNames$17
+java/util/regex/Pattern$CharPropertyNames$18
+java/util/regex/Pattern$CharPropertyNames$19
+java/util/regex/Pattern$CharPropertyNames$20
+java/util/regex/Pattern$CharPropertyNames$21
+java/util/regex/Pattern$Curly
+java/util/regex/Pattern$Slice
+java/util/regex/Pattern$Begin
+java/util/regex/Pattern$First
+java/util/regex/Pattern$Start
+java/util/regex/Pattern$TreeInfo
+java/util/regex/Pattern$All
+java/util/regex/Pattern$BitClass
+java/util/regex/Pattern$BmpCharProperty
+java/util/regex/Pattern$6
+java/util/regex/Pattern$CharProperty$1
+sun/nio/ch/FileChannelImpl
+java/nio/channels/FileChannel
+java/nio/channels/ByteChannel
+java/nio/channels/ReadableByteChannel
+java/nio/channels/Channel
+java/nio/channels/WritableByteChannel
+java/nio/channels/GatheringByteChannel
+java/nio/channels/ScatteringByteChannel
+java/nio/channels/spi/AbstractInterruptibleChannel
+java/nio/channels/InterruptibleChannel
+sun/nio/ch/Util
+sun/nio/ch/IOUtil
+sun/nio/ch/FileDispatcher
+sun/nio/ch/NativeDispatcher
+sun/nio/ch/Reflect
+java/nio/MappedByteBuffer
+sun/nio/ch/Reflect$1
+sun/nio/ch/NativeThreadSet
+java/nio/channels/Channels
+java/util/Scanner$1
+sun/misc/LRUCache
+java/util/regex/Matcher
+java/util/regex/MatchResult
+java/text/NumberFormat
+java/text/Format
+java/text/spi/NumberFormatProvider
+java/util/spi/LocaleServiceProvider
+sun/util/LocaleServiceProviderPool
+sun/util/LocaleServiceProviderPool$1
+java/util/ServiceLoader
+java/util/ServiceLoader$LazyIterator
+java/util/ServiceLoader$1
+java/util/HashMap$EntrySet
+java/util/LinkedHashMap$EntryIterator
+sun/misc/Launcher$1
+sun/misc/URLClassPath$2
+java/lang/ClassLoader$2
+sun/misc/URLClassPath$1
+java/net/URLClassLoader$3
+sun/misc/CompoundEnumeration
+sun/misc/URLClassPath$JarLoader$1
+sun/misc/FileURLMapper
+java/net/URLClassLoader$3$1
+sun/util/resources/LocaleData
+sun/util/resources/LocaleData$1
+sun/util/resources/LocaleData$LocaleDataResourceBundleControl
+sun/util/LocaleDataMetaInfo
+sun/text/resources/FormatData
+java/util/ResourceBundle$BundleReference
+sun/text/resources/FormatData_en
+sun/text/resources/FormatData_en_US
+java/text/DecimalFormatSymbols
+java/text/spi/DecimalFormatSymbolsProvider
+java/util/Currency
+java/util/Currency$1
+java/util/spi/CurrencyNameProvider
+sun/util/resources/CurrencyNames
+sun/util/resources/LocaleNamesBundle
+sun/util/resources/OpenListResourceBundle
+sun/util/resources/CurrencyNames_en_US
+java/text/DecimalFormat
+java/text/FieldPosition
+java/text/DigitList
+java/math/RoundingMode
+java/util/regex/Pattern$GroupTail
+java/util/regex/Pattern$Ctype
+java/util/regex/Pattern$Ques
+java/util/regex/Pattern$GroupCurly
+java/util/regex/Pattern$5
+java/util/regex/Pattern$Loop
+java/util/regex/Pattern$Prolog
+java/util/regex/Pattern$BranchConn
+java/util/regex/Pattern$Branch
+java/nio/channels/spi/AbstractInterruptibleChannel$1
+sun/nio/ch/Interruptible
+sun/nio/ch/NativeThread
+sun/nio/ch/DirectBuffer
+java/nio/DirectByteBuffer
+java/nio/DirectByteBuffer$Deallocator
+sun/misc/Cleaner
+sun/nio/ch/IOStatus
+java/util/regex/ASCII
+java/io/DataInputStream
+java/io/DataInput
+java/lang/Short$ShortCache
+java/util/HashMap$KeyIterator
+sun/font/CompositeFontDescriptor
+sun/font/Font2DHandle
+sun/font/FontFamily
+java/awt/GraphicsDevice
+sun/awt/X11GraphicsDevice
+sun/awt/X11GraphicsConfig
+java/awt/GraphicsConfiguration
+java/awt/ImageCapabilities
+sun/java2d/x11/X11SurfaceData
+sun/java2d/SurfaceData
+java/awt/Transparency
+sun/java2d/DisposerTarget
+sun/java2d/InvalidPipeException
+java/lang/IllegalStateException
+sun/java2d/NullSurfaceData
+sun/java2d/loops/SurfaceType
+sun/awt/image/PixelConverter
+sun/awt/image/PixelConverter$Xrgb
+sun/awt/image/PixelConverter$Argb
+sun/awt/image/PixelConverter$ArgbPre
+sun/awt/image/PixelConverter$Xbgr
+sun/awt/image/PixelConverter$Rgba
+sun/awt/image/PixelConverter$RgbaPre
+sun/awt/image/PixelConverter$Ushort565Rgb
+sun/awt/image/PixelConverter$Ushort555Rgb
+sun/awt/image/PixelConverter$Ushort555Rgbx
+sun/awt/image/PixelConverter$Ushort4444Argb
+sun/awt/image/PixelConverter$ByteGray
+sun/awt/image/PixelConverter$UshortGray
+sun/awt/image/PixelConverter$Rgbx
+sun/awt/image/PixelConverter$Bgrx
+sun/awt/image/PixelConverter$ArgbBm
+java/awt/image/ColorModel
+java/awt/image/DirectColorModel
+java/awt/image/PackedColorModel
+java/awt/color/ColorSpace
+java/awt/color/ICC_Profile
+java/awt/color/ICC_ProfileRGB
+java/awt/color/ICC_Profile$1
+java/awt/color/ICC_ColorSpace
+sun/java2d/pipe/NullPipe
+sun/java2d/pipe/PixelDrawPipe
+sun/java2d/pipe/PixelFillPipe
+sun/java2d/pipe/ShapeDrawPipe
+sun/java2d/pipe/TextPipe
+sun/java2d/pipe/DrawImagePipe
+java/awt/image/IndexColorModel
+sun/java2d/pipe/LoopPipe
+sun/java2d/pipe/OutlineTextRenderer
+sun/java2d/pipe/SolidTextRenderer
+sun/java2d/pipe/GlyphListLoopPipe
+sun/java2d/pipe/GlyphListPipe
+sun/java2d/pipe/AATextRenderer
+sun/java2d/pipe/LCDTextRenderer
+sun/java2d/pipe/AlphaColorPipe
+sun/java2d/pipe/CompositePipe
+sun/java2d/pipe/PixelToShapeConverter
+sun/java2d/pipe/TextRenderer
+sun/java2d/pipe/SpanClipRenderer
+sun/java2d/pipe/Region
+sun/java2d/pipe/RegionIterator
+sun/java2d/pipe/AlphaPaintPipe
+sun/java2d/pipe/SpanShapeRenderer$Composite
+sun/java2d/pipe/SpanShapeRenderer
+sun/java2d/pipe/GeneralCompositePipe
+sun/java2d/pipe/DrawImage
+sun/java2d/loops/RenderCache
+sun/java2d/loops/RenderCache$Entry
+sun/java2d/loops/XORComposite
+java/awt/Composite
+sun/font/X11TextRenderer
+sun/java2d/loops/GraphicsPrimitive
+sun/java2d/x11/X11PMBlitLoops
+sun/java2d/loops/Blit
+sun/java2d/loops/GraphicsPrimitiveMgr
+sun/java2d/loops/CompositeType
+sun/java2d/SunGraphics2D
+sun/awt/ConstrainableGraphics
+java/awt/Graphics2D
+java/awt/Graphics
+java/awt/Color
+java/awt/Paint
+java/awt/AlphaComposite
+sun/java2d/loops/BlitBg
+sun/java2d/loops/ScaledBlit
+sun/java2d/loops/FillRect
+sun/java2d/loops/FillSpans
+sun/java2d/loops/DrawLine
+sun/java2d/loops/DrawRect
+sun/java2d/loops/DrawPolygons
+sun/java2d/loops/DrawPath
+sun/java2d/loops/FillPath
+sun/java2d/loops/MaskBlit
+sun/java2d/loops/MaskFill
+sun/java2d/loops/DrawGlyphList
+sun/java2d/loops/DrawGlyphListAA
+sun/java2d/loops/DrawGlyphListLCD
+sun/java2d/loops/TransformHelper
+java/awt/BasicStroke
+java/awt/Stroke
+sun/misc/PerformanceLogger
+sun/misc/PerformanceLogger$TimeData
+sun/java2d/pipe/ValidatePipe
+sun/java2d/loops/CustomComponent
+sun/java2d/loops/GraphicsPrimitiveProxy
+sun/java2d/loops/GeneralRenderer
+sun/java2d/loops/GraphicsPrimitiveMgr$1
+sun/java2d/loops/GraphicsPrimitiveMgr$2
+sun/java2d/x11/X11PMBlitLoops$DelegateBlitLoop
+sun/java2d/x11/X11PMBlitBgLoops
+sun/java2d/x11/X11SurfaceData$LazyPipe
+sun/awt/X11GraphicsConfig$X11GCDisposerRecord
+sun/java2d/DisposerRecord
+java/awt/BorderLayout
+java/awt/LayoutManager2
+java/awt/Rectangle
+java/awt/Toolkit$2
+sun/awt/X11/XToolkit
+sun/awt/X11/XConstants
+sun/awt/UNIXToolkit
+java/util/TreeMap
+java/util/NavigableMap
+java/util/SortedMap
+sun/awt/X11/XlibWrapper
+sun/awt/X11/XUtilConstants
+sun/awt/X11/XProtocolConstants
+sun/awt/X11/XCursorFontConstants
+sun/awt/X11/XlibWrapper$1
+sun/awt/X11/XToolkit$4
+sun/awt/X11/XModifierKeymap
+sun/awt/X11/XWrapperBase
+sun/awt/X11/Native
+sun/awt/X11/Native$1
+java/awt/EventQueue
+java/util/EmptyStackException
+java/lang/reflect/InvocationTargetException
+java/awt/EventDispatchThread
+java/awt/event/PaintEvent
+java/awt/event/MouseEvent
+sun/awt/PeerEvent
+java/awt/event/InvocationEvent
+java/awt/ActiveEvent
+sun/awt/X11/XToolkit$1
+sun/awt/X11/XEventDispatcher
+sun/awt/SunToolkit$ModalityListenerList
+sun/awt/ModalityListener
+sun/awt/SunToolkit$1
+java/util/MissingResourceException
+java/awt/Queue
+sun/awt/PostEventQueue
+java/util/LinkedList
+java/util/Deque
+java/util/Queue
+java/util/AbstractSequentialList
+sun/awt/X11/AwtScreenData
+sun/awt/X11/XWM
+sun/awt/X11/MWMConstants
+sun/awt/X11/XAtom
+java/awt/Insets
+sun/awt/X11/XWM$1
+sun/awt/X11/XSetWindowAttributes
+sun/awt/X11/XErrorEvent
+sun/awt/X11/XNETProtocol
+sun/awt/X11/XStateProtocol
+sun/awt/X11/XLayerProtocol
+sun/awt/X11/XProtocol
+sun/awt/X11/WindowPropertyGetter
+sun/awt/X11/UnsafeXDisposerRecord
+sun/awt/X11/XPropertyCache
+sun/awt/X11/XWINProtocol
+sun/awt/X11/XAtomList
+sun/awt/X11/XToolkit$3
+sun/awt/X11/XAnyEvent
+java/awt/Window$WindowDisposerRecord
+java/awt/KeyboardFocusManager
+java/awt/KeyEventDispatcher
+java/awt/KeyEventPostProcessor
+java/awt/AWTKeyStroke
+java/awt/AWTKeyStroke$1
+java/awt/DefaultKeyboardFocusManager
+java/awt/DefaultFocusTraversalPolicy
+java/awt/ContainerOrderFocusTraversalPolicy
+java/awt/FocusTraversalPolicy
+java/util/Collections$UnmodifiableSet
+sun/awt/HeadlessToolkit
+sun/awt/X11/XKeyboardFocusManagerPeer
+java/awt/peer/KeyboardFocusManagerPeer
+sun/awt/X11/XKeyboardFocusManagerPeer$1
+sun/awt/X11/XFramePeer
+java/awt/peer/FramePeer
+java/awt/peer/WindowPeer
+java/awt/peer/ContainerPeer
+java/awt/peer/ComponentPeer
+sun/awt/X11/XDecoratedPeer
+sun/awt/X11/XWindowPeer
+sun/awt/X11/XPanelPeer
+java/awt/peer/PanelPeer
+sun/awt/X11/XCanvasPeer
+java/awt/peer/CanvasPeer
+sun/awt/X11/XComponentPeer
+java/awt/dnd/peer/DropTargetPeer
+sun/awt/X11/XWindow
+sun/awt/X11ComponentPeer
+sun/awt/X11/XBaseWindow
+sun/awt/X11/XCreateWindowParams
+java/lang/Long$LongCache
+sun/awt/X11/XBaseWindow$InitialiseState
+sun/awt/X11/XBaseWindow$StateLock
+sun/awt/X11/AwtGraphicsConfigData
+sun/awt/X11/XVisualInfo
+java/awt/SystemColor
+sun/awt/X11/MotifColorUtilities
+java/lang/StrictMath
+sun/awt/X11/XRepaintArea
+sun/awt/RepaintArea
+sun/awt/X11/XWindowAttributesData
+java/util/concurrent/locks/LockSupport
+sun/awt/X11/WindowDimensions
+java/awt/Point
+java/util/TreeMap$Entry
+sun/nio/cs/UTF_8
+sun/nio/cs/Unicode
+sun/nio/cs/UTF_8$Encoder
+sun/nio/cs/UTF_8$Decoder
+sun/nio/cs/Surrogate$Generator
+sun/awt/X11/XPropertyEvent
+sun/awt/X11/XDropTargetEventProcessor
+sun/awt/X11/XDragSourceContextPeer
+sun/awt/X11/XDragSourceProtocolListener
+sun/awt/dnd/SunDragSourceContextPeer
+java/awt/dnd/peer/DragSourceContextPeer
+sun/awt/X11/XAwtState
+sun/awt/X11/XBaseWindow$1
+sun/awt/X11/XRootWindow
+sun/nio/cs/ISO_8859_1
+sun/nio/cs/ISO_8859_1$Encoder
+sun/nio/cs/ISO_8859_1$Decoder
+sun/java2d/x11/X11SurfaceData$X11WindowSurfaceData
+sun/java2d/loops/RenderLoops
+sun/java2d/loops/GraphicsPrimitiveMgr$PrimitiveSpec
+sun/java2d/DefaultDisposerRecord
+sun/java2d/x11/X11Renderer
+sun/awt/X11/XGlobalCursorManager
+sun/awt/GlobalCursorManager
+java/awt/Cursor$CursorDisposer
+java/awt/AWTException
+java/awt/HeadlessException
+java/lang/UnsupportedOperationException
+sun/reflect/UnsafeLongFieldAccessorImpl
+sun/reflect/UnsafeIntegerFieldAccessorImpl
+sun/awt/X11/XClientMessageEvent
+sun/awt/X11/XIconInfo
+sun/awt/X11/XAWTIcon32_java_icon16_png
+sun/awt/X11/XAWTIcon32_java_icon24_png
+sun/awt/X11/XAWTIcon32_java_icon32_png
+sun/awt/X11/XAWTIcon32_java_icon48_png
+sun/awt/X11/XSizeHints
+sun/awt/X11/XContentWindow
+sun/awt/X11/XFocusProxyWindow
+sun/awt/X11/XWMHints
+java/util/LinkedList$ListItr
+java/util/ListIterator
+sun/awt/SunToolkit$2
+java/awt/image/BufferStrategy
+java/awt/dnd/DropTarget
+java/awt/dnd/DropTargetListener
+java/awt/event/ComponentListener
+java/awt/event/FocusListener
+java/awt/event/HierarchyListener
+java/awt/event/HierarchyBoundsListener
+java/awt/event/KeyListener
+java/awt/event/MouseListener
+java/awt/event/MouseMotionListener
+java/awt/event/MouseWheelListener
+java/awt/event/InputMethodListener
+java/awt/event/ContainerListener
+javax/accessibility/AccessibleContext
+sun/reflect/UnsafeObjectFieldAccessorImpl
+java/awt/peer/LightweightPeer
+sun/awt/X11/XLabelPeer
+java/awt/peer/LabelPeer
+sun/awt/X11/XMapEvent
+sun/awt/X11/XQueryTree
+sun/awt/X11/XConfigureEvent
+sun/awt/X11/PropMwmHints
+sun/awt/GlobalCursorManager$NativeUpdater
+javax/swing/JFrame
+javax/swing/WindowConstants
+javax/swing/RootPaneContainer
+javax/swing/TransferHandler$HasGetTransferHandler
+javax/swing/JLabel
+javax/swing/SwingConstants
+javax/swing/JComponent
+javax/swing/JComponent$1
+javax/swing/SwingUtilities
+javax/swing/JRootPane
+sun/security/action/GetBooleanAction
+javax/swing/event/EventListenerList
+javax/swing/JPanel
+java/awt/FlowLayout
+javax/swing/UIManager
+javax/swing/UIManager$LookAndFeelInfo
+sun/swing/SwingUtilities2
+sun/swing/SwingUtilities2$LSBCacheEntry
+javax/swing/UIManager$LAFState
+javax/swing/UIDefaults
+javax/swing/MultiUIDefaults
+javax/swing/UIManager$1
+javax/swing/plaf/metal/MetalLookAndFeel
+javax/swing/plaf/basic/BasicLookAndFeel
+javax/swing/LookAndFeel
+sun/swing/DefaultLookup
+javax/swing/plaf/metal/OceanTheme
+javax/swing/plaf/metal/DefaultMetalTheme
+javax/swing/plaf/metal/MetalTheme
+javax/swing/plaf/ColorUIResource
+javax/swing/plaf/UIResource
+sun/swing/PrintColorUIResource
+javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate
+javax/swing/plaf/FontUIResource
+sun/swing/SwingLazyValue
+javax/swing/UIDefaults$LazyValue
+javax/swing/UIDefaults$ActiveValue
+javax/swing/plaf/InsetsUIResource
+sun/swing/SwingUtilities2$2
+javax/swing/plaf/basic/BasicLookAndFeel$2
+javax/swing/plaf/DimensionUIResource
+javax/swing/UIDefaults$LazyInputMap
+java/lang/Character$CharacterCache
+javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue
+javax/swing/plaf/metal/MetalLookAndFeel$FontActiveValue
+java/awt/print/PrinterJob
+sun/swing/SwingUtilities2$AATextInfo
+sun/awt/X11/XAWTXSettings
+sun/awt/X11/XMSelectionListener
+sun/awt/XSettings
+sun/awt/X11/XMSelection
+sun/awt/X11/XMSelection$1
+javax/swing/plaf/metal/MetalLookAndFeel$AATextListener
+java/beans/PropertyChangeListener
+java/beans/PropertyChangeListenerProxy
+java/util/EventListenerProxy
+sun/awt/EventListenerAggregate
+javax/swing/UIDefaults$ProxyLazyValue
+javax/swing/plaf/metal/OceanTheme$1
+javax/swing/plaf/metal/OceanTheme$2
+javax/swing/plaf/metal/OceanTheme$3
+javax/swing/plaf/metal/OceanTheme$4
+javax/swing/plaf/metal/OceanTheme$5
+javax/swing/plaf/metal/OceanTheme$6
+javax/swing/RepaintManager
+javax/swing/RepaintManager$DisplayChangedHandler
+javax/swing/SwingPaintEventDispatcher
+sun/awt/PaintEventDispatcher
+javax/swing/UIManager$2
+java/awt/PopupMenu
+java/awt/Menu
+java/awt/MenuItem
+java/awt/MenuComponent
+java/io/ObjectOutputStream
+java/io/ObjectOutput
+java/io/DataOutput
+java/io/ObjectStreamConstants
+java/io/PrintWriter
+java/io/ObjectInputStream
+java/io/ObjectInput
+java/awt/Event
+java/awt/im/InputContext
+java/awt/event/MouseWheelEvent
+java/awt/BufferCapabilities
+sun/awt/CausedFocusEvent$Cause
+java/awt/PointerInfo
+java/awt/Component$BaselineResizeBehavior
+java/awt/FontMetrics
+java/awt/Image
+java/awt/image/ImageProducer
+java/awt/image/VolatileImage
+java/awt/im/InputMethodRequests
+java/awt/event/FocusEvent
+java/awt/event/InputMethodEvent
+java/awt/event/HierarchyEvent
+javax/accessibility/AccessibleStateSet
+com/sun/swing/internal/plaf/metal/resources/metal
+sun/util/ResourceBundleEnumeration
+com/sun/swing/internal/plaf/basic/resources/basic
+javax/swing/plaf/basic/BasicPanelUI
+javax/swing/plaf/PanelUI
+javax/swing/plaf/ComponentUI
+sun/reflect/misc/MethodUtil
+sun/reflect/misc/MethodUtil$1
+java/util/jar/JarFile
+java/util/zip/ZipFile
+java/util/zip/ZipConstants
+java/util/jar/JavaUtilJarAccessImpl
+sun/misc/JavaUtilJarAccess
+sun/misc/JarIndex
+java/util/zip/ZipEntry
+java/util/jar/JarFile$JarFileEntry
+java/util/jar/JarEntry
+sun/misc/URLClassPath$JarLoader$2
+sun/net/www/protocol/jar/JarURLConnection
+java/net/JarURLConnection
+sun/net/www/protocol/jar/JarFileFactory
+sun/net/www/protocol/jar/URLJarFile$URLJarFileCloseController
+java/net/HttpURLConnection
+sun/net/www/protocol/jar/URLJarFile
+sun/net/www/protocol/jar/URLJarFile$URLJarFileEntry
+sun/net/www/protocol/jar/JarURLConnection$JarURLInputStream
+java/util/zip/ZipFile$ZipFileInputStream
+java/security/AllPermissionCollection
+java/lang/IllegalAccessException
+javax/swing/JPasswordField
+javax/swing/JTextField
+javax/swing/text/JTextComponent
+javax/swing/Scrollable
+javax/swing/JLayeredPane
+javax/swing/JRootPane$1
+javax/swing/ArrayTable
+javax/swing/JInternalFrame
+javax/swing/JRootPane$RootLayout
+javax/swing/BufferStrategyPaintManager
+javax/swing/RepaintManager$PaintManager
+javax/swing/plaf/metal/MetalRootPaneUI
+javax/swing/plaf/basic/BasicRootPaneUI
+javax/swing/plaf/RootPaneUI
+javax/swing/plaf/basic/BasicRootPaneUI$RootPaneInputMap
+javax/swing/plaf/ComponentInputMapUIResource
+javax/swing/ComponentInputMap
+javax/swing/InputMap
+javax/swing/plaf/InputMapUIResource
+javax/swing/KeyStroke
+java/awt/VKCollection
+sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl
+javax/swing/plaf/basic/LazyActionMap
+javax/swing/plaf/ActionMapUIResource
+javax/swing/ActionMap
+javax/swing/LayoutFocusTraversalPolicy
+javax/swing/SortingFocusTraversalPolicy
+javax/swing/InternalFrameFocusTraversalPolicy
+javax/swing/SwingContainerOrderFocusTraversalPolicy
+javax/swing/SwingDefaultFocusTraversalPolicy
+javax/swing/LayoutComparator
+javax/swing/plaf/metal/MetalLabelUI
+javax/swing/plaf/basic/BasicLabelUI
+javax/swing/plaf/LabelUI
+javax/swing/plaf/metal/DefaultMetalTheme$FontDelegate$1
+javax/swing/plaf/basic/BasicHTML
+sun/awt/NullComponentPeer
+java/awt/event/WindowEvent
+java/awt/EventQueue$1
+java/awt/EventDispatchThread$1
+java/awt/Conditional
+java/awt/EventDispatchThread$HierarchyEventFilter
+java/awt/EventFilter$FilterAction
+sun/awt/dnd/SunDropTargetEvent
+java/awt/event/ActionEvent
+java/util/jar/Manifest
+java/io/ByteArrayInputStream
+java/util/jar/Attributes
+java/util/jar/Manifest$FastInputStream
+java/util/jar/Attributes$Name
+sun/misc/ASCIICaseInsensitiveComparator
+java/util/jar/JarVerifier
+java/io/ByteArrayOutputStream
+sun/misc/ExtensionDependency
+java/lang/Package
+sun/security/util/ManifestEntryVerifier
+java/security/Provider
+java/security/Provider$ServiceKey
+java/security/Provider$EngineDescription
+java/security/Security
+java/security/Security$1
+sun/misc/FloatingDecimal
+sun/misc/FloatingDecimal$1
+sun/security/provider/NativePRNG
+java/security/SecureRandomSpi
+sun/security/provider/NativePRNG$1
+sun/security/provider/NativePRNG$RandomIO
+sun/misc/BASE64Decoder
+sun/misc/CharacterDecoder
+sun/security/util/SignatureFileVerifier
+java/awt/event/KeyAdapter
+java/lang/NumberFormatException
+java/lang/IllegalArgumentException
+java/io/FileWriter
+java/net/Authenticator
+java/net/MalformedURLException
+javax/swing/text/Element
+javax/swing/text/Document
+javax/swing/text/PlainDocument
+javax/swing/text/AbstractDocument
+javax/swing/text/GapContent
+javax/swing/text/AbstractDocument$Content
+javax/swing/text/GapVector
+javax/swing/text/GapContent$MarkVector
+javax/swing/text/GapContent$MarkData
+javax/swing/text/StyleContext
+javax/swing/text/AbstractDocument$AttributeContext
+javax/swing/text/StyleConstants
+javax/swing/text/StyleConstants$CharacterConstants
+javax/swing/text/AttributeSet$CharacterAttribute
+javax/swing/text/StyleConstants$FontConstants
+javax/swing/text/AttributeSet$FontAttribute
+javax/swing/text/StyleConstants$ColorConstants
+javax/swing/text/AttributeSet$ColorAttribute
+javax/swing/text/StyleConstants$ParagraphConstants
+javax/swing/text/AttributeSet$ParagraphAttribute
+javax/swing/text/StyleContext$FontKey
+javax/swing/text/SimpleAttributeSet
+javax/swing/text/MutableAttributeSet
+javax/swing/text/AttributeSet
+javax/swing/text/SimpleAttributeSet$EmptyAttributeSet
+javax/swing/text/StyleContext$NamedStyle
+javax/swing/text/Style
+javax/swing/text/StyleContext$SmallAttributeSet
+javax/swing/text/AbstractDocument$BidiRootElement
+javax/swing/text/AbstractDocument$BranchElement
+javax/swing/text/AbstractDocument$AbstractElement
+javax/swing/tree/TreeNode
+javax/swing/text/AbstractDocument$1
+javax/swing/text/AbstractDocument$BidiElement
+javax/swing/text/AbstractDocument$LeafElement
+javax/swing/text/GapContent$StickyPosition
+javax/swing/text/Position
+javax/swing/text/StyleContext$KeyEnumeration
+javax/swing/text/GapContent$InsertUndo
+javax/swing/undo/AbstractUndoableEdit
+javax/swing/undo/UndoableEdit
+javax/swing/text/AbstractDocument$DefaultDocumentEvent
+javax/swing/event/DocumentEvent
+javax/swing/undo/CompoundEdit
+javax/swing/event/DocumentEvent$EventType
+javax/swing/text/Segment
+java/text/CharacterIterator
+javax/swing/text/Utilities
+javax/swing/text/SegmentCache
+javax/swing/text/SegmentCache$CachedSegment
+javax/swing/event/UndoableEditEvent
+javax/swing/text/AbstractDocument$ElementEdit
+javax/swing/event/DocumentEvent$ElementChange
+java/net/Socket
+java/net/InetAddress
+java/net/InetAddress$Cache
+java/net/InetAddress$Cache$Type
+java/net/InetAddressImplFactory
+java/net/Inet4AddressImpl
+java/net/InetAddressImpl
+java/net/InetAddress$1
+sun/net/spi/nameservice/NameService
+sun/net/util/IPAddressUtil
+java/util/RandomAccessSubList
+java/util/SubList
+java/util/SubList$1
+java/util/AbstractList$ListItr
+java/net/Inet4Address
+java/net/InetSocketAddress
+java/net/SocketAddress
+java/net/SocksSocketImpl
+java/net/SocksConsts
+java/net/PlainSocketImpl
+java/net/SocketImpl
+java/net/SocketOptions
+java/net/SocketException
+java/net/SocksSocketImpl$5
+java/net/ProxySelector
+sun/net/spi/DefaultProxySelector
+sun/net/spi/DefaultProxySelector$1
+sun/net/NetProperties
+sun/net/NetProperties$1
+sun/net/spi/DefaultProxySelector$NonProxyInfo
+java/net/Inet6Address
+java/net/URI
+java/net/URI$Parser
+java/net/Proxy
+java/net/Proxy$Type
+java/net/ConnectException
+javax/swing/JMenu
+javax/swing/MenuElement
+javax/swing/JMenuItem
+javax/swing/AbstractButton
+java/awt/ItemSelectable
+javax/swing/event/MenuListener
+javax/swing/JCheckBoxMenuItem
+javax/swing/Icon
+javax/swing/JButton
+java/awt/event/WindowListener
+java/net/URLClassLoader$2
+javax/swing/ImageIcon
+javax/swing/ImageIcon$1
+java/awt/MediaTracker
+sun/misc/SoftCache$ValueCell
+sun/awt/image/URLImageSource
+sun/awt/image/InputStreamImageSource
+sun/awt/image/ImageFetchable
+sun/awt/image/ToolkitImage
+java/awt/Image$1
+sun/awt/image/SurfaceManager$ImageAccessor
+sun/awt/image/SurfaceManager
+sun/awt/image/NativeLibLoader
+java/awt/ImageMediaEntry
+java/awt/MediaEntry
+sun/awt/image/ImageRepresentation
+java/awt/image/ImageConsumer
+sun/awt/image/ImageWatched
+sun/awt/image/ImageWatched$Link
+sun/awt/image/ImageWatched$WeakLink
+sun/awt/image/ImageConsumerQueue
+sun/awt/image/ImageFetcher
+sun/awt/image/FetcherInfo
+sun/awt/image/ImageFetcher$1
+sun/awt/image/GifImageDecoder
+sun/awt/image/ImageDecoder
+sun/awt/image/GifFrame
+java/awt/image/Raster
+java/awt/image/DataBufferByte
+java/awt/image/DataBuffer
+java/awt/image/PixelInterleavedSampleModel
+java/awt/image/ComponentSampleModel
+java/awt/image/SampleModel
+sun/awt/image/ByteInterleavedRaster
+sun/awt/image/ByteComponentRaster
+sun/awt/image/SunWritableRaster
+java/awt/image/WritableRaster
+java/awt/image/BufferedImage
+java/awt/image/WritableRenderedImage
+java/awt/image/RenderedImage
+sun/awt/image/IntegerComponentRaster
+sun/awt/image/BytePackedRaster
+java/awt/Canvas
+sun/font/FontDesignMetrics
+sun/font/FontStrikeDesc
+sun/font/CompositeStrike
+sun/font/FontStrikeDisposer
+sun/font/StrikeCache$SoftDisposerRef
+sun/font/StrikeCache$DisposableStrike
+sun/font/TrueTypeFont$TTDisposerRecord
+sun/font/TrueTypeFont$1
+java/io/RandomAccessFile
+java/nio/ByteBufferAsIntBufferB
+java/nio/IntBuffer
+sun/font/TrueTypeFont$DirectoryEntry
+java/nio/ByteBufferAsShortBufferB
+java/nio/ShortBuffer
+sun/nio/cs/UTF_16
+sun/nio/cs/UTF_16$Decoder
+sun/nio/cs/UnicodeDecoder
+sun/font/FileFontStrike
+sun/font/TrueTypeGlyphMapper
+sun/font/CMap
+sun/font/CMap$NullCMapClass
+sun/font/CMap$CMapFormat4
+java/nio/ByteBufferAsCharBufferB
+sun/font/FontDesignMetrics$KeyReference
+sun/awt/image/PNGImageDecoder
+sun/awt/image/PNGFilterInputStream
+java/util/zip/InflaterInputStream
+java/util/zip/Inflater
+sun/awt/EventQueueItem
+sun/awt/SunToolkit$3
+sun/awt/X11/XExposeEvent
+sun/reflect/UnsafeBooleanFieldAccessorImpl
+sun/awt/event/IgnorePaintEvent
+java/awt/image/DataBufferInt
+java/awt/image/SinglePixelPackedSampleModel
+sun/awt/image/IntegerInterleavedRaster
+sun/awt/image/OffScreenImage
+sun/awt/image/BufImgSurfaceData
+sun/java2d/opengl/GLXGraphicsConfig
+sun/java2d/opengl/OGLGraphicsConfig
+sun/java2d/x11/X11SurfaceData$X11PixmapSurfaceData
+sun/awt/image/WritableRasterNative
+sun/awt/image/DataBufferNative
+sun/java2d/SurfaceManagerFactory
+sun/java2d/opengl/GLXSurfaceData
+sun/java2d/opengl/OGLSurfaceData
+sun/font/CompositeGlyphMapper
+sun/java2d/loops/FontInfo
+java/util/Date
+sun/util/calendar/CalendarSystem
+sun/util/calendar/Gregorian
+sun/util/calendar/BaseCalendar
+sun/util/calendar/AbstractCalendar
+java/util/TimeZone
+java/lang/InheritableThreadLocal
+sun/util/calendar/ZoneInfo
+sun/util/calendar/ZoneInfoFile
+sun/util/calendar/ZoneInfoFile$1
+java/util/TimeZone$1
+sun/util/calendar/Gregorian$Date
+sun/util/calendar/BaseCalendar$Date
+sun/util/calendar/CalendarDate
+sun/util/calendar/CalendarUtils
+java/util/TimeZone$DisplayNames
+sun/util/TimeZoneNameUtility
+sun/util/resources/TimeZoneNames
+sun/util/resources/TimeZoneNamesBundle
+sun/util/resources/TimeZoneNames_en
+java/util/spi/TimeZoneNameProvider
+java/lang/ProcessBuilder
+java/lang/ProcessImpl
+java/lang/UNIXProcess
+java/lang/Process
+java/lang/UNIXProcess$1
+java/net/ServerSocket
+java/util/Random
+java/util/concurrent/atomic/AtomicLong
+java/lang/InternalError
+java/io/StringReader
+java/lang/SecurityException
+java/io/FilterReader
+java/lang/reflect/Proxy
+java/lang/reflect/InvocationHandler
+java/lang/NoSuchFieldException
+java/lang/InstantiationException
+java/lang/ArrayIndexOutOfBoundsException
+java/lang/IndexOutOfBoundsException
+javax/swing/JDialog
+sun/awt/X11/XClipboard
+sun/awt/datatransfer/SunClipboard
+java/awt/datatransfer/Clipboard
+java/awt/datatransfer/SystemFlavorMap
+java/awt/datatransfer/FlavorMap
+java/awt/datatransfer/FlavorTable
+java/awt/datatransfer/SystemFlavorMap$1
+sun/net/ProgressMonitor
+sun/net/DefaultProgressMeteringPolicy
+sun/net/ProgressMeteringPolicy
+java/awt/datatransfer/SystemFlavorMap$2
+java/awt/datatransfer/MimeType
+java/io/Externalizable
+java/awt/datatransfer/MimeTypeParameterList
+sun/awt/datatransfer/DataTransferer
+java/util/Collections$SynchronizedSet
+java/util/Collections$SynchronizedCollection
+java/awt/datatransfer/DataFlavor
+java/awt/datatransfer/DataFlavor$1
+sun/awt/datatransfer/DataTransferer$CharsetComparator
+sun/awt/datatransfer/DataTransferer$IndexedComparator
+sun/nio/cs/UTF_16LE
+sun/nio/cs/UTF_16BE
+sun/awt/datatransfer/DataTransferer$DataFlavorComparator
+java/rmi/Remote
+sun/awt/datatransfer/DataTransferer$1
+sun/awt/X11/XDataTransferer
+sun/awt/datatransfer/ToolkitThreadBlockedHandler
+javax/imageio/ImageTypeSpecifier
+sun/awt/X11/XSelection
+sun/security/action/GetIntegerAction
+sun/awt/X11/XSelection$IncrementalTransferHandler
+sun/awt/X11/XSelection$SelectionEventHandler
+java/awt/datatransfer/Transferable
+java/io/EOFException
+java/util/Vector$1
+java/util/zip/ZipFile$1
+java/util/zip/ZipFile$2
+java/util/jar/JarFile$1
+java/util/PropertyResourceBundle
+java/util/ResourceBundle$Control$1
+java/util/Hashtable$EntrySet
+java/lang/IllegalAccessError
+java/text/MessageFormat
+java/text/MessageFormat$Field
+java/text/Format$Field
+java/lang/CloneNotSupportedException
+sun/reflect/MethodAccessorGenerator
+sun/reflect/AccessorGenerator
+sun/reflect/ClassFileConstants
+java/lang/Void
+sun/reflect/ByteVectorFactory
+sun/reflect/ByteVectorImpl
+sun/reflect/ByteVector
+sun/reflect/ClassFileAssembler
+sun/reflect/UTF8
+sun/reflect/Label
+sun/reflect/Label$PatchInfo
+sun/reflect/MethodAccessorGenerator$1
+sun/reflect/ClassDefiner
+sun/reflect/ClassDefiner$1
+sun/reflect/BootstrapConstructorAccessorImpl
+java/awt/event/ActionListener
+javax/swing/Timer
+javax/swing/Timer$DoPostEvent
+javax/swing/TimerQueue
+javax/swing/TimerQueue$1
+javax/swing/ToolTipManager
+java/awt/event/MouseAdapter
+javax/swing/ToolTipManager$insideTimerAction
+javax/swing/ToolTipManager$outsideTimerAction
+javax/swing/ToolTipManager$stillInsideTimerAction
+sun/swing/UIAction
+javax/swing/Action
+javax/swing/ToolTipManager$MoveBeforeEnterListener
+java/awt/event/MouseMotionAdapter
+java/util/Hashtable$ValueCollection
+javax/swing/event/CaretListener
+javax/swing/JToolBar
+javax/swing/JSplitPane
+javax/swing/border/Border
+javax/swing/JToggleButton
+javax/swing/border/EmptyBorder
+javax/swing/border/AbstractBorder
+javax/swing/DefaultButtonModel
+javax/swing/ButtonModel
+javax/swing/AbstractButton$Handler
+javax/swing/event/ChangeListener
+java/awt/event/ItemListener
+javax/swing/plaf/metal/MetalButtonUI
+javax/swing/plaf/basic/BasicButtonUI
+javax/swing/plaf/ButtonUI
+javax/swing/plaf/metal/MetalBorders
+javax/swing/plaf/BorderUIResource$CompoundBorderUIResource
+javax/swing/border/CompoundBorder
+javax/swing/plaf/metal/MetalBorders$ButtonBorder
+javax/swing/plaf/basic/BasicBorders$MarginBorder
+javax/swing/plaf/basic/BasicButtonListener
+java/awt/AWTEventMulticaster
+java/awt/event/WindowFocusListener
+java/awt/event/WindowStateListener
+java/awt/event/AdjustmentListener
+java/awt/event/TextListener
+javax/swing/event/AncestorListener
+java/beans/VetoableChangeListener
+javax/swing/ButtonGroup
+javax/swing/JToggleButton$ToggleButtonModel
+javax/swing/plaf/metal/MetalToggleButtonUI
+javax/swing/plaf/basic/BasicToggleButtonUI
+javax/swing/plaf/metal/MetalBorders$ToggleButtonBorder
+java/awt/CardLayout
+javax/swing/Box
+javax/swing/plaf/metal/MetalBorders$TextFieldBorder
+javax/swing/plaf/metal/MetalBorders$Flush3DBorder
+javax/swing/BoxLayout
+javax/swing/JMenuBar
+javax/swing/DefaultSingleSelectionModel
+javax/swing/SingleSelectionModel
+javax/swing/plaf/basic/BasicMenuBarUI
+javax/swing/plaf/MenuBarUI
+javax/swing/plaf/basic/DefaultMenuLayout
+javax/swing/plaf/metal/MetalBorders$MenuBarBorder
+javax/swing/plaf/basic/BasicMenuBarUI$Handler
+javax/swing/KeyboardManager
+javax/swing/event/MenuEvent
+javax/swing/JMenu$MenuChangeListener
+javax/swing/JMenuItem$MenuItemFocusListener
+javax/swing/plaf/basic/BasicMenuUI
+javax/swing/plaf/basic/BasicMenuItemUI
+javax/swing/plaf/MenuItemUI
+javax/swing/plaf/metal/MetalBorders$MenuItemBorder
+javax/swing/plaf/metal/MetalIconFactory
+javax/swing/plaf/metal/MetalIconFactory$MenuArrowIcon
+javax/swing/plaf/basic/BasicMenuUI$Handler
+javax/swing/event/MenuKeyListener
+javax/swing/plaf/basic/BasicMenuItemUI$Handler
+javax/swing/event/MenuDragMouseListener
+javax/swing/event/MouseInputListener
+javax/swing/event/ChangeEvent
+java/awt/event/ContainerEvent
+javax/swing/plaf/metal/MetalIconFactory$MenuItemArrowIcon
+javax/swing/JPopupMenu
+javax/swing/plaf/basic/BasicPopupMenuUI
+javax/swing/plaf/PopupMenuUI
+javax/swing/plaf/basic/BasicLookAndFeel$AWTEventHelper
+java/awt/event/AWTEventListenerProxy
+java/awt/Toolkit$SelectiveAWTEventListener
+java/awt/Toolkit$ToolkitEventMulticaster
+javax/swing/plaf/basic/BasicLookAndFeel$1
+javax/swing/plaf/metal/MetalBorders$PopupMenuBorder
+javax/swing/plaf/basic/BasicPopupMenuUI$BasicPopupMenuListener
+javax/swing/event/PopupMenuListener
+javax/swing/plaf/basic/BasicPopupMenuUI$BasicMenuKeyListener
+javax/swing/plaf/basic/BasicPopupMenuUI$MouseGrabber
+javax/swing/MenuSelectionManager
+javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper
+javax/swing/plaf/basic/BasicPopupMenuUI$MenuKeyboardHelper$1
+java/awt/event/FocusAdapter
+javax/swing/JMenu$WinListener
+java/awt/event/WindowAdapter
+javax/swing/JPopupMenu$Separator
+javax/swing/JSeparator
+javax/swing/plaf/metal/MetalPopupMenuSeparatorUI
+javax/swing/plaf/metal/MetalSeparatorUI
+javax/swing/plaf/basic/BasicSeparatorUI
+javax/swing/plaf/SeparatorUI
+javax/swing/JComboBox
+javax/swing/event/ListDataListener
+javax/swing/event/CaretEvent
+javax/swing/text/TabExpander
+javax/swing/JScrollBar
+java/awt/Adjustable
+javax/swing/event/MouseInputAdapter
+javax/swing/JScrollBar$ModelListener
+javax/swing/DefaultBoundedRangeModel
+javax/swing/BoundedRangeModel
+javax/swing/plaf/metal/MetalScrollBarUI
+javax/swing/plaf/basic/BasicScrollBarUI
+javax/swing/plaf/ScrollBarUI
+javax/swing/plaf/metal/MetalBumps
+javax/swing/plaf/metal/MetalScrollButton
+javax/swing/plaf/basic/BasicArrowButton
+javax/swing/plaf/basic/BasicScrollBarUI$TrackListener
+javax/swing/plaf/basic/BasicScrollBarUI$ArrowButtonListener
+javax/swing/plaf/basic/BasicScrollBarUI$ModelListener
+javax/swing/plaf/metal/MetalScrollBarUI$ScrollBarListener
+javax/swing/plaf/basic/BasicScrollBarUI$PropertyChangeHandler
+javax/swing/plaf/basic/BasicScrollBarUI$Handler
+javax/swing/plaf/basic/BasicScrollBarUI$ScrollListener
+javax/swing/CellRendererPane
+java/util/HashMap$EntryIterator
+javax/swing/border/MatteBorder
+sun/font/StandardGlyphVector
+java/awt/font/GlyphVector
+sun/font/StandardGlyphVector$GlyphStrike
+sun/font/CoreMetrics
+sun/font/FontLineMetrics
+java/awt/font/LineMetrics
+javax/swing/ComboBoxModel
+javax/swing/ListModel
+javax/swing/ListCellRenderer
+javax/swing/DefaultComboBoxModel
+javax/swing/MutableComboBoxModel
+javax/swing/AbstractListModel
+javax/swing/JComboBox$1
+javax/swing/AncestorNotifier
+javax/swing/plaf/metal/MetalComboBoxUI
+javax/swing/plaf/basic/BasicComboBoxUI
+javax/swing/plaf/ComboBoxUI
+javax/swing/plaf/metal/MetalComboBoxUI$MetalComboBoxLayoutManager
+javax/swing/plaf/basic/BasicComboBoxUI$ComboBoxLayoutManager
+javax/swing/plaf/basic/BasicComboPopup
+javax/swing/plaf/basic/ComboPopup
+javax/swing/plaf/basic/BasicComboPopup$EmptyListModelClass
+javax/swing/border/LineBorder
+javax/swing/plaf/basic/BasicComboPopup$1
+javax/swing/JList
+javax/swing/DropMode
+javax/swing/DefaultListSelectionModel
+javax/swing/ListSelectionModel
+javax/swing/plaf/basic/BasicListUI
+javax/swing/plaf/ListUI
+javax/swing/plaf/basic/BasicListUI$ListTransferHandler
+javax/swing/TransferHandler
+javax/swing/TransferHandler$TransferAction
+javax/swing/DefaultListCellRenderer$UIResource
+javax/swing/DefaultListCellRenderer
+javax/swing/TransferHandler$SwingDropTarget
+java/awt/dnd/DropTargetContext
+javax/swing/TransferHandler$DropHandler
+javax/swing/TransferHandler$TransferSupport
+javax/swing/plaf/basic/BasicListUI$Handler
+javax/swing/event/ListSelectionListener
+javax/swing/plaf/basic/DragRecognitionSupport$BeforeDrag
+javax/swing/plaf/basic/BasicComboPopup$Handler
+javax/swing/JScrollPane
+javax/swing/ScrollPaneConstants
+javax/swing/ScrollPaneLayout$UIResource
+javax/swing/ScrollPaneLayout
+javax/swing/JViewport
+javax/swing/ViewportLayout
+javax/swing/plaf/basic/BasicViewportUI
+javax/swing/plaf/ViewportUI
+javax/swing/JScrollPane$ScrollBar
+javax/swing/JViewport$ViewListener
+java/awt/event/ComponentAdapter
+javax/swing/plaf/metal/MetalScrollPaneUI
+javax/swing/plaf/basic/BasicScrollPaneUI
+javax/swing/plaf/ScrollPaneUI
+javax/swing/plaf/metal/MetalBorders$ScrollPaneBorder
+javax/swing/plaf/basic/BasicScrollPaneUI$Handler
+javax/swing/plaf/metal/MetalScrollPaneUI$1
+javax/swing/plaf/basic/BasicComboBoxRenderer$UIResource
+javax/swing/plaf/basic/BasicComboBoxRenderer
+javax/swing/plaf/metal/MetalComboBoxEditor$UIResource
+javax/swing/plaf/metal/MetalComboBoxEditor
+javax/swing/plaf/basic/BasicComboBoxEditor
+javax/swing/ComboBoxEditor
+javax/swing/plaf/basic/BasicComboBoxEditor$BorderlessTextField
+javax/swing/JTextField$NotifyAction
+javax/swing/text/TextAction
+javax/swing/AbstractAction
+javax/swing/text/JTextComponent$MutableCaretEvent
+javax/swing/plaf/metal/MetalTextFieldUI
+javax/swing/plaf/basic/BasicTextFieldUI
+javax/swing/plaf/basic/BasicTextUI
+javax/swing/text/ViewFactory
+javax/swing/plaf/TextUI
+javax/swing/plaf/basic/BasicTextUI$BasicCursor
+javax/swing/text/DefaultEditorKit
+javax/swing/text/EditorKit
+javax/swing/text/DefaultEditorKit$InsertContentAction
+javax/swing/text/DefaultEditorKit$DeletePrevCharAction
+javax/swing/text/DefaultEditorKit$DeleteNextCharAction
+javax/swing/text/DefaultEditorKit$ReadOnlyAction
+javax/swing/text/DefaultEditorKit$DeleteWordAction
+javax/swing/text/DefaultEditorKit$WritableAction
+javax/swing/text/DefaultEditorKit$CutAction
+javax/swing/text/DefaultEditorKit$CopyAction
+javax/swing/text/DefaultEditorKit$PasteAction
+javax/swing/text/DefaultEditorKit$VerticalPageAction
+javax/swing/text/DefaultEditorKit$PageAction
+javax/swing/text/DefaultEditorKit$InsertBreakAction
+javax/swing/text/DefaultEditorKit$BeepAction
+javax/swing/text/DefaultEditorKit$NextVisualPositionAction
+javax/swing/text/DefaultEditorKit$BeginWordAction
+javax/swing/text/DefaultEditorKit$EndWordAction
+javax/swing/text/DefaultEditorKit$PreviousWordAction
+javax/swing/text/DefaultEditorKit$NextWordAction
+javax/swing/text/DefaultEditorKit$BeginLineAction
+javax/swing/text/DefaultEditorKit$EndLineAction
+javax/swing/text/DefaultEditorKit$BeginParagraphAction
+javax/swing/text/DefaultEditorKit$EndParagraphAction
+javax/swing/text/DefaultEditorKit$BeginAction
+javax/swing/text/DefaultEditorKit$EndAction
+javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction
+javax/swing/text/DefaultEditorKit$InsertTabAction
+javax/swing/text/DefaultEditorKit$SelectWordAction
+javax/swing/text/DefaultEditorKit$SelectLineAction
+javax/swing/text/DefaultEditorKit$SelectParagraphAction
+javax/swing/text/DefaultEditorKit$SelectAllAction
+javax/swing/text/DefaultEditorKit$UnselectAction
+javax/swing/text/DefaultEditorKit$ToggleComponentOrientationAction
+javax/swing/text/DefaultEditorKit$DumpModelAction
+javax/swing/plaf/basic/BasicTextUI$TextTransferHandler
+javax/swing/text/Position$Bias
+javax/swing/plaf/basic/BasicTextUI$RootView
+javax/swing/text/View
+javax/swing/plaf/basic/BasicTextUI$UpdateHandler
+javax/swing/event/DocumentListener
+javax/swing/plaf/basic/BasicTextUI$DragListener
+javax/swing/plaf/basic/BasicComboBoxEditor$UIResource
+javax/swing/plaf/basic/BasicTextUI$BasicCaret
+javax/swing/text/DefaultCaret
+javax/swing/text/Caret
+javax/swing/text/DefaultCaret$Handler
+java/awt/datatransfer/ClipboardOwner
+javax/swing/plaf/basic/BasicTextUI$BasicHighlighter
+javax/swing/text/DefaultHighlighter
+javax/swing/text/LayeredHighlighter
+javax/swing/text/Highlighter
+javax/swing/text/Highlighter$Highlight
+javax/swing/text/DefaultHighlighter$DefaultHighlightPainter
+javax/swing/text/LayeredHighlighter$LayerPainter
+javax/swing/text/Highlighter$HighlightPainter
+javax/swing/text/DefaultHighlighter$SafeDamager
+javax/swing/text/FieldView
+javax/swing/text/PlainView
+javax/swing/text/JTextComponent$DefaultKeymap
+javax/swing/text/Keymap
+javax/swing/text/JTextComponent$KeymapWrapper
+javax/swing/text/JTextComponent$KeymapActionMap
+javax/swing/plaf/basic/BasicTextUI$FocusAction
+javax/swing/plaf/basic/BasicTextUI$TextActionWrapper
+javax/swing/JTextArea
+javax/swing/JEditorPane
+javax/swing/JTextField$ScrollRepainter
+javax/swing/plaf/metal/MetalComboBoxEditor$1
+javax/swing/plaf/metal/MetalComboBoxEditor$EditorBorder
+javax/swing/plaf/metal/MetalComboBoxUI$MetalPropertyChangeListener
+javax/swing/plaf/basic/BasicComboBoxUI$PropertyChangeHandler
+javax/swing/plaf/basic/BasicComboBoxUI$Handler
+javax/swing/plaf/metal/MetalComboBoxButton
+javax/swing/plaf/metal/MetalComboBoxIcon
+javax/swing/plaf/metal/MetalComboBoxButton$1
+javax/swing/plaf/basic/BasicComboBoxUI$DefaultKeySelectionManager
+javax/swing/JComboBox$KeySelectionManager
+javax/swing/JToolBar$DefaultToolBarLayout
+javax/swing/plaf/metal/MetalToolBarUI
+javax/swing/plaf/basic/BasicToolBarUI
+javax/swing/plaf/ToolBarUI
+javax/swing/plaf/metal/MetalBorders$ToolBarBorder
+javax/swing/plaf/metal/MetalLookAndFeel$MetalLazyValue$1
+javax/swing/plaf/metal/MetalBorders$RolloverButtonBorder
+javax/swing/plaf/metal/MetalBorders$RolloverMarginBorder
+javax/swing/plaf/basic/BasicBorders$RadioButtonBorder
+javax/swing/plaf/basic/BasicBorders$ButtonBorder
+javax/swing/plaf/basic/BasicBorders$RolloverMarginBorder
+javax/swing/plaf/metal/MetalToolBarUI$MetalDockingListener
+javax/swing/plaf/basic/BasicToolBarUI$DockingListener
+javax/swing/plaf/basic/BasicToolBarUI$Handler
+javax/swing/border/EtchedBorder
+javax/swing/JToolBar$Separator
+javax/swing/plaf/basic/BasicToolBarSeparatorUI
+java/applet/Applet
+java/awt/Panel
+com/sun/awt/AWTUtilities
+javax/swing/KeyboardManager$ComponentKeyStrokePair
+sun/awt/EmbeddedFrame
+sun/awt/im/InputMethodContext
+java/awt/im/spi/InputMethodContext
+sun/awt/im/InputContext
+sun/awt/im/InputMethodManager
+sun/awt/im/ExecutableInputMethodManager
+sun/awt/X11/XInputMethodDescriptor
+sun/awt/X11InputMethodDescriptor
+java/awt/im/spi/InputMethodDescriptor
+sun/awt/im/InputMethodLocator
+sun/awt/im/ExecutableInputMethodManager$2
+sun/misc/Service
+sun/misc/Service$LazyIterator
+java/util/TreeSet
+java/util/NavigableSet
+java/util/SortedSet
+javax/swing/SizeRequirements
+javax/swing/plaf/basic/BasicGraphicsUtils
+java/awt/event/AdjustmentEvent
+java/awt/MenuBar
+sun/awt/X11/XComponentPeer$2
+java/awt/SequencedEvent
+java/beans/PropertyVetoException
+java/awt/DefaultKeyboardFocusManager$TypeAheadMarker
+java/awt/KeyboardFocusManager$HeavyweightFocusRequest
+java/awt/KeyboardFocusManager$LightweightFocusRequest
+sun/awt/KeyboardFocusManagerPeerImpl
+sun/awt/SunToolkit$7
+java/awt/Window$1DisposeAction
+java/awt/LightweightDispatcher$2
+sun/awt/X11/XReparentEvent
+sun/awt/X11/XWindowAttributes
+sun/awt/X11/XFocusChangeEvent
+sun/awt/X11/XComponentPeer$1
+sun/awt/X11/XUnmapEvent
+java/io/StringWriter
+javax/swing/JWindow
+java/io/UnsupportedEncodingException
+java/net/UnknownHostException
+java/nio/channels/SocketChannel
+java/nio/channels/spi/AbstractSelectableChannel
+java/nio/channels/SelectableChannel
+java/net/SocketImplFactory
+javax/swing/UnsupportedLookAndFeelException
+java/lang/UnsatisfiedLinkError
+javax/swing/Box$Filler
+javax/swing/JComponent$2
+sun/net/www/MimeTable
+java/net/FileNameMap
+sun/net/www/MimeTable$1
+sun/net/www/MimeEntry
+java/net/URLConnection$1
+java/text/SimpleDateFormat
+java/text/DateFormat
+java/text/DateFormat$Field
+java/util/Calendar
+java/util/GregorianCalendar
+sun/util/resources/CalendarData
+sun/util/resources/CalendarData_en
+java/text/DateFormatSymbols
+java/text/spi/DateFormatSymbolsProvider
+java/text/DontCareFieldPosition
+java/text/DontCareFieldPosition$1
+java/text/Format$FieldDelegate
+javax/swing/plaf/BorderUIResource
+javax/swing/BorderFactory
+javax/swing/border/BevelBorder
+javax/swing/plaf/metal/MetalIconFactory$TreeFolderIcon
+javax/swing/plaf/metal/MetalIconFactory$FolderIcon16
+java/util/zip/ZipInputStream
+java/io/PushbackInputStream
+java/util/zip/CRC32
+java/util/zip/Checksum
+java/lang/Thread$State
+javax/swing/SwingUtilities$SharedOwnerFrame
+javax/swing/JTable
+javax/swing/event/TableModelListener
+javax/swing/event/TableColumnModelListener
+javax/swing/event/CellEditorListener
+javax/swing/event/RowSorterListener
+javax/swing/BufferStrategyPaintManager$BufferInfo
+java/awt/Component$BltSubRegionBufferStrategy
+sun/awt/SubRegionShowable
+java/awt/Component$BltBufferStrategy
+sun/awt/image/SunVolatileImage
+sun/awt/image/BufferedImageGraphicsConfig
+sun/print/PrinterGraphicsConfig
+sun/java2d/x11/X11VolatileSurfaceManager
+sun/awt/image/VolatileSurfaceManager
+java/awt/print/PrinterGraphics
+java/awt/PrintGraphics
+java/awt/GraphicsCallback$PaintCallback
+java/awt/GraphicsCallback
+sun/awt/SunGraphicsCallback
+javax/swing/JRadioButton
+java/lang/ClassFormatError
+javax/swing/JTabbedPane
+javax/swing/JTabbedPane$ModelListener
+javax/swing/plaf/metal/MetalTabbedPaneUI
+javax/swing/plaf/basic/BasicTabbedPaneUI
+javax/swing/plaf/TabbedPaneUI
+javax/swing/plaf/metal/MetalTabbedPaneUI$TabbedPaneLayout
+javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneLayout
+javax/swing/plaf/basic/BasicTabbedPaneUI$TabbedPaneScrollLayout
+javax/swing/plaf/basic/BasicTabbedPaneUI$Handler
+sun/swing/ImageIconUIResource
+javax/swing/GrayFilter
+java/awt/image/RGBImageFilter
+java/awt/image/ImageFilter
+java/awt/image/FilteredImageSource
+org/w3c/dom/Node
+org/xml/sax/SAXException
+javax/xml/parsers/ParserConfigurationException
+org/xml/sax/EntityResolver
+java/security/NoSuchAlgorithmException
+java/security/GeneralSecurityException
+java/util/zip/GZIPInputStream
+java/util/zip/DeflaterOutputStream
+org/xml/sax/InputSource
+javax/xml/parsers/DocumentBuilderFactory
+javax/xml/parsers/FactoryFinder
+javax/xml/parsers/SecuritySupport
+javax/xml/parsers/SecuritySupport$2
+javax/xml/parsers/SecuritySupport$5
+javax/xml/parsers/SecuritySupport$1
+javax/xml/parsers/SecuritySupport$4
+javax/xml/parsers/DocumentBuilder
+org/w3c/dom/Document
+org/xml/sax/helpers/DefaultHandler
+org/xml/sax/DTDHandler
+org/xml/sax/ContentHandler
+org/xml/sax/ErrorHandler
+org/xml/sax/SAXNotSupportedException
+org/xml/sax/Locator
+org/xml/sax/SAXNotRecognizedException
+org/xml/sax/SAXParseException
+org/w3c/dom/NodeList
+org/w3c/dom/events/EventTarget
+org/w3c/dom/traversal/DocumentTraversal
+org/w3c/dom/events/DocumentEvent
+org/w3c/dom/ranges/DocumentRange
+org/w3c/dom/Entity
+org/w3c/dom/Element
+org/w3c/dom/CharacterData
+org/w3c/dom/CDATASection
+org/w3c/dom/Text
+org/xml/sax/AttributeList
+org/w3c/dom/DOMException
+org/w3c/dom/Notation
+org/w3c/dom/DocumentType
+org/w3c/dom/Attr
+org/w3c/dom/EntityReference
+org/w3c/dom/ProcessingInstruction
+org/w3c/dom/Comment
+org/w3c/dom/DocumentFragment
+org/w3c/dom/events/Event
+org/w3c/dom/events/MutationEvent
+org/w3c/dom/traversal/TreeWalker
+org/w3c/dom/ranges/Range
+org/w3c/dom/traversal/NodeIterator
+org/w3c/dom/events/EventException
+org/w3c/dom/NamedNodeMap
+java/lang/StringIndexOutOfBoundsException
+java/awt/GridLayout
+javax/swing/plaf/metal/MetalRadioButtonUI
+javax/swing/plaf/basic/BasicRadioButtonUI
+javax/swing/plaf/basic/BasicBorders
+javax/swing/plaf/metal/MetalIconFactory$RadioButtonIcon
+java/awt/event/ItemEvent
+java/awt/CardLayout$Card
+javax/swing/JCheckBox
+javax/swing/event/ListSelectionEvent
+javax/swing/plaf/metal/MetalCheckBoxUI
+javax/swing/plaf/metal/MetalIconFactory$CheckBoxIcon
+java/lang/ExceptionInInitializerError
+com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI
+javax/swing/JProgressBar
+javax/swing/JProgressBar$ModelListener
+javax/swing/plaf/metal/MetalProgressBarUI
+javax/swing/plaf/basic/BasicProgressBarUI
+javax/swing/plaf/ProgressBarUI
+javax/swing/plaf/BorderUIResource$LineBorderUIResource
+javax/swing/plaf/basic/BasicProgressBarUI$Handler
+javax/swing/tree/TreeModel
+javax/swing/table/TableCellRenderer
+javax/swing/table/JTableHeader
+javax/swing/event/TreeExpansionListener
+javax/swing/table/AbstractTableModel
+javax/swing/table/TableModel
+javax/swing/table/DefaultTableCellRenderer
+javax/swing/JTree
+javax/swing/tree/TreeSelectionModel
+javax/swing/tree/DefaultTreeCellRenderer
+javax/swing/tree/TreeCellRenderer
+javax/swing/table/TableCellEditor
+javax/swing/CellEditor
+javax/swing/JToolTip
+javax/swing/table/TableColumn
+javax/swing/table/DefaultTableColumnModel
+javax/swing/table/TableColumnModel
+javax/swing/table/DefaultTableModel
+javax/swing/event/TableModelEvent
+sun/swing/table/DefaultTableCellHeaderRenderer
+javax/swing/plaf/basic/BasicTableHeaderUI
+javax/swing/plaf/TableHeaderUI
+javax/swing/plaf/basic/BasicTableHeaderUI$1
+javax/swing/plaf/basic/BasicTableHeaderUI$MouseInputHandler
+javax/swing/DefaultCellEditor
+javax/swing/tree/TreeCellEditor
+javax/swing/AbstractCellEditor
+javax/swing/plaf/basic/BasicTableUI
+javax/swing/plaf/TableUI
+javax/swing/plaf/basic/BasicTableUI$TableTransferHandler
+javax/swing/plaf/basic/BasicTableUI$Handler
+javax/swing/tree/DefaultTreeSelectionModel
+javax/swing/tree/TreePath
+javax/swing/plaf/metal/MetalTreeUI
+javax/swing/plaf/basic/BasicTreeUI
+javax/swing/plaf/TreeUI
+javax/swing/plaf/basic/BasicTreeUI$Actions
+javax/swing/plaf/basic/BasicTreeUI$TreeTransferHandler
+javax/swing/plaf/metal/MetalTreeUI$LineListener
+javax/swing/plaf/basic/BasicTreeUI$Handler
+javax/swing/event/TreeModelListener
+javax/swing/event/TreeSelectionListener
+javax/swing/event/SwingPropertyChangeSupport
+javax/swing/tree/VariableHeightLayoutCache
+javax/swing/tree/AbstractLayoutCache
+javax/swing/tree/RowMapper
+javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler
+javax/swing/tree/AbstractLayoutCache$NodeDimensions
+javax/swing/JTree$TreeModelHandler
+javax/swing/tree/VariableHeightLayoutCache$TreeStateNode
+javax/swing/tree/DefaultMutableTreeNode
+javax/swing/tree/MutableTreeNode
+javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration
+javax/swing/event/TableColumnModelEvent
+java/text/ParseException
+java/text/NumberFormat$Field
+javax/swing/event/UndoableEditListener
+javax/swing/filechooser/FileFilter
+javax/swing/tree/DefaultTreeModel
+javax/swing/tree/DefaultTreeCellEditor
+javax/swing/tree/DefaultTreeCellEditor$1
+javax/swing/tree/DefaultTreeCellEditor$DefaultTextField
+javax/swing/DefaultCellEditor$1
+javax/swing/DefaultCellEditor$EditorDelegate
+javax/swing/tree/DefaultTreeCellEditor$EditorContainer
+javax/swing/JTree$TreeSelectionRedirector
+javax/swing/event/TreeModelEvent
+javax/swing/plaf/metal/MetalSplitPaneUI
+javax/swing/plaf/basic/BasicSplitPaneUI
+javax/swing/plaf/SplitPaneUI
+javax/swing/plaf/basic/BasicSplitPaneDivider
+javax/swing/plaf/basic/BasicBorders$SplitPaneBorder
+javax/swing/plaf/metal/MetalSplitPaneDivider
+javax/swing/plaf/basic/BasicSplitPaneDivider$DividerLayout
+javax/swing/plaf/basic/BasicSplitPaneDivider$MouseHandler
+javax/swing/plaf/basic/BasicBorders$SplitPaneDividerBorder
+javax/swing/plaf/basic/BasicSplitPaneUI$BasicHorizontalLayoutManager
+javax/swing/plaf/basic/BasicSplitPaneUI$1
+javax/swing/plaf/basic/BasicSplitPaneUI$Handler
+javax/swing/plaf/metal/MetalSplitPaneDivider$1
+javax/swing/plaf/basic/BasicSplitPaneDivider$OneTouchActionHandler
+javax/swing/plaf/metal/MetalSplitPaneDivider$2
+javax/swing/border/TitledBorder
+javax/swing/plaf/basic/BasicTextAreaUI
+java/util/Collections$UnmodifiableCollection$1
+java/io/InterruptedIOException
+java/net/NoRouteToHostException
+java/net/BindException
+javax/swing/tree/PathPlaceHolder
+javax/swing/event/TreeSelectionEvent
+javax/swing/JList$3
+javax/swing/JList$ListSelectionHandler
+javax/swing/JSlider
+javax/swing/JSlider$ModelListener
+javax/swing/plaf/metal/MetalSliderUI
+javax/swing/plaf/basic/BasicSliderUI
+javax/swing/plaf/SliderUI
+javax/swing/plaf/basic/BasicSliderUI$Actions
+javax/swing/plaf/metal/MetalIconFactory$HorizontalSliderThumbIcon
+javax/swing/plaf/metal/MetalIconFactory$VerticalSliderThumbIcon
+javax/swing/plaf/basic/BasicSliderUI$TrackListener
+javax/swing/plaf/basic/BasicSliderUI$Handler
+javax/swing/plaf/basic/BasicSliderUI$ScrollListener
+javax/swing/plaf/metal/MetalSliderUI$MetalPropertyListener
+javax/swing/plaf/basic/BasicSliderUI$PropertyChangeHandler
+sun/java2d/HeadlessGraphicsEnvironment
+java/util/Hashtable$KeySet
+java/awt/FontFormatException
+sun/font/Type1Font$1
+java/nio/channels/FileChannel$MapMode
+sun/nio/ch/FileChannelImpl$Unmapper
+sun/nio/ch/Util$3
+java/nio/DirectByteBufferR
+java/nio/charset/Charset$3
+sun/nio/cs/AbstractCharsetProvider
+sun/nio/cs/SingleByteDecoder
+java/lang/CharacterData00
+javax/swing/DefaultListModel
+javax/swing/event/ListDataEvent
+javax/sound/sampled/DataLine
+javax/sound/sampled/Line
+javax/sound/sampled/Line$Info
+javax/sound/sampled/DataLine$Info
+javax/sound/sampled/Control$Type
+javax/sound/sampled/FloatControl$Type
+javax/sound/sampled/LineUnavailableException
+javax/sound/sampled/UnsupportedAudioFileException
+javax/swing/JRadioButtonMenuItem
+javax/swing/JMenuItem$AccessibleJMenuItem
+javax/swing/AbstractButton$AccessibleAbstractButton
+javax/accessibility/AccessibleAction
+javax/accessibility/AccessibleValue
+javax/accessibility/AccessibleText
+javax/accessibility/AccessibleExtendedComponent
+javax/accessibility/AccessibleComponent
+javax/swing/JComponent$AccessibleJComponent
+java/awt/Container$AccessibleAWTContainer
+java/awt/Component$AccessibleAWTComponent
+javax/accessibility/AccessibleRelationSet
+javax/accessibility/AccessibleState
+javax/accessibility/AccessibleBundle
+javax/swing/plaf/basic/BasicCheckBoxMenuItemUI
+javax/swing/plaf/metal/MetalIconFactory$CheckBoxMenuItemIcon
+javax/swing/JCheckBoxMenuItem$AccessibleJCheckBoxMenuItem
+javax/swing/plaf/basic/BasicRadioButtonMenuItemUI
+javax/swing/plaf/metal/MetalIconFactory$RadioButtonMenuItemIcon
+sun/awt/image/ImageDecoder$1
+javax/swing/JTabbedPane$Page
+java/net/DatagramSocket
+java/net/MulticastSocket
+java/net/DatagramPacket
+sun/net/InetAddressCachePolicy
+sun/net/InetAddressCachePolicy$1
+sun/net/InetAddressCachePolicy$2
+java/net/InetAddress$CacheEntry
+java/net/PlainDatagramSocketImpl
+java/net/DatagramSocketImpl
+java/net/NetworkInterface
+java/net/InterfaceAddress
+java/text/Collator
+java/text/spi/CollatorProvider
+sun/text/resources/CollationData
+sun/text/resources/CollationData_en
+sun/util/EmptyListResourceBundle
+java/text/RuleBasedCollator
+java/text/CollationRules
+java/text/RBCollationTables
+java/text/RBTableBuilder
+java/text/RBCollationTables$BuildAPI
+sun/text/IntHashtable
+sun/text/UCompactIntArray
+sun/text/normalizer/NormalizerImpl
+sun/text/normalizer/ICUData
+sun/text/normalizer/NormalizerDataReader
+sun/text/normalizer/ICUBinary$Authenticate
+sun/text/normalizer/ICUBinary
+sun/text/normalizer/NormalizerImpl$FCDTrieImpl
+sun/text/normalizer/Trie$DataManipulate
+sun/text/normalizer/NormalizerImpl$NormTrieImpl
+sun/text/normalizer/NormalizerImpl$AuxTrieImpl
+sun/text/normalizer/IntTrie
+sun/text/normalizer/Trie
+sun/text/normalizer/CharTrie
+sun/text/normalizer/CharTrie$FriendAgent
+sun/text/normalizer/UnicodeSet
+sun/text/normalizer/UnicodeMatcher
+sun/text/normalizer/NormalizerImpl$DecomposeArgs
+java/text/MergeCollation
+java/text/PatternEntry$Parser
+java/text/PatternEntry
+java/text/EntryPair
+sun/text/ComposedCharIter
+sun/text/normalizer/UTF16
+sun/net/www/protocol/http/Handler
+java/io/ObjectInputStream$BlockDataInputStream
+java/io/ObjectInputStream$PeekInputStream
+java/io/ObjectInputStream$HandleTable
+java/io/ObjectInputStream$ValidationList
+java/io/Bits
+java/io/ObjectStreamClass$Caches
+java/io/ObjectStreamClass$WeakClassKey
+java/io/ObjectStreamClass$EntryFuture
+java/io/ObjectStreamClass$2
+sun/reflect/SerializationConstructorAccessorImpl
+java/io/ObjectStreamClass$FieldReflectorKey
+java/io/ObjectStreamClass$FieldReflector
+java/io/ObjectStreamClass$1
+java/io/DataOutputStream
+java/io/ObjectStreamClass$MemberSignature
+java/io/ObjectStreamClass$3
+java/io/ObjectStreamClass$4
+java/io/ObjectStreamClass$5
+java/security/MessageDigest
+java/security/MessageDigestSpi
+sun/security/jca/GetInstance
+sun/security/jca/Providers
+sun/security/jca/ProviderList
+sun/security/jca/ProviderConfig
+sun/security/jca/ProviderList$3
+sun/security/jca/ProviderList$1
+sun/security/jca/ProviderList$2
+sun/security/jca/ProviderConfig$1
+sun/security/jca/ProviderConfig$3
+java/security/Provider$Service
+java/security/Provider$UString
+sun/security/provider/SHA
+sun/security/provider/DigestBase
+sun/security/jca/GetInstance$Instance
+java/security/MessageDigest$Delegate
+sun/security/provider/ByteArrayAccess
+java/io/ObjectStreamClass$ClassDataSlot
+sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl
+java/security/SignatureException
+java/security/InvalidKeyException
+java/security/KeyException
+java/security/Signature
+java/security/SignatureSpi
+java/io/ObjectOutputStream$BlockDataOutputStream
+sun/security/provider/DSAPublicKey
+java/security/interfaces/DSAPublicKey
+java/security/interfaces/DSAKey
+java/security/PublicKey
+java/security/Key
+sun/security/x509/X509Key
+java/io/ObjectOutputStream$HandleTable
+java/io/ObjectOutputStream$ReplaceTable
+sun/security/x509/AlgorithmId
+sun/security/util/DerEncoder
+sun/security/util/BitArray
+sun/security/util/DerOutputStream
+sun/security/util/DerValue
+java/math/BigInteger
+java/security/interfaces/DSAParams
+sun/security/util/DerInputStream
+sun/security/util/DerInputBuffer
+sun/security/util/ObjectIdentifier
+java/security/AlgorithmParameters
+java/security/AlgorithmParametersSpi
+sun/security/provider/DSAParameters
+sun/security/util/ByteArrayLexOrder
+sun/security/util/ByteArrayTagOrder
+sun/security/util/DerIndefLenConverter
+java/io/InvalidClassException
+java/io/ObjectStreamException
+java/io/ObjectInputStream$GetFieldImpl
+java/io/ObjectInputStream$GetField
+sun/security/jca/ServiceId
+sun/security/jca/ProviderList$ServiceList
+sun/security/jca/ProviderList$ServiceList$1
+java/security/Signature$Delegate
+java/security/interfaces/DSAPrivateKey
+java/security/PrivateKey
+sun/security/provider/DSA$SHA1withDSA
+sun/security/provider/DSA
+java/security/spec/DSAParameterSpec
+java/security/spec/AlgorithmParameterSpec
+java/math/MutableBigInteger
+java/math/SignedMutableBigInteger
+java/awt/EventQueue$1AWTInvocationLock
+java/awt/Component$FlipBufferStrategy
+java/awt/SentEvent
+sun/awt/X11/XDestroyWindowEvent
+sun/awt/X11/XDropTargetRegistry
+sun/awt/X11/XEmbeddedFramePeer
+sun/awt/X11/XDragAndDropProtocols
+sun/awt/X11/XDropTargetContextPeer
+sun/awt/dnd/SunDropTargetContextPeer
+java/awt/dnd/peer/DropTargetContextPeer
+sun/awt/X11/XDropTargetContextPeer$XDropTargetProtocolListenerImpl
+sun/awt/X11/XDropTargetProtocolListener
+sun/awt/X11/XDnDDragSourceProtocol
+sun/awt/X11/XDragSourceProtocol
+sun/awt/X11/MotifDnDDragSourceProtocol
+sun/awt/X11/XDnDDropTargetProtocol
+sun/awt/X11/XDropTargetProtocol
+sun/awt/X11/MotifDnDDropTargetProtocol
+sun/awt/X11/XDnDConstants
+sun/awt/X11/MotifDnDConstants
+javax/swing/JTable$2
+javax/swing/JTable$Resizable3
+javax/swing/JTable$Resizable2
+javax/swing/JTable$5
+javax/swing/event/AncestorEvent
+sun/font/FontDesignMetrics$MetricsKey
+java/awt/geom/Line2D$Float
+java/awt/geom/Line2D
+com/sun/java/swing/plaf/gtk/GTKLookAndFeel
+javax/swing/plaf/synth/SynthLookAndFeel
+javax/swing/plaf/synth/DefaultSynthStyleFactory
+javax/swing/plaf/synth/SynthStyleFactory
+sun/swing/BakedArrayList
+javax/swing/plaf/synth/SynthLookAndFeel$Handler
+javax/swing/plaf/synth/SynthDefaultLookup
+com/sun/java/swing/plaf/gtk/GTKEngine
+com/sun/java/swing/plaf/gtk/GTKEngine$Settings
+com/sun/java/swing/plaf/gtk/GTKStyleFactory
+com/sun/java/swing/plaf/gtk/PangoFonts
+com/sun/java/swing/plaf/gtk/GTKLookAndFeel$WeakPCL
+javax/swing/plaf/synth/Region
+javax/swing/plaf/synth/SynthLookAndFeel$AATextListener
+com/sun/java/swing/plaf/gtk/GTKRegion
+com/sun/java/swing/plaf/gtk/GTKStyle
+com/sun/java/swing/plaf/gtk/GTKConstants
+javax/swing/plaf/synth/SynthStyle
+javax/swing/plaf/synth/SynthGraphicsUtils
+com/sun/java/swing/plaf/gtk/GTKGraphicsUtils
+com/sun/java/swing/plaf/gtk/GTKStyle$GTKStockIcon
+sun/swing/plaf/synth/SynthIcon
+com/sun/java/swing/plaf/gtk/GTKColorType
+javax/swing/plaf/synth/ColorType
+com/sun/java/swing/plaf/gtk/resources/gtk
+com/sun/swing/internal/plaf/synth/resources/synth
+com/sun/java/swing/plaf/gtk/GTKStyle$GTKLazyValue
+com/sun/java/swing/plaf/gtk/GTKLookAndFeel$1FontLazyValue
+com/sun/java/swing/plaf/gtk/GTKLookAndFeel$2
+com/sun/java/swing/plaf/gtk/GTKLookAndFeel$3
+javax/swing/plaf/synth/SynthPanelUI
+javax/swing/plaf/synth/SynthConstants
+javax/swing/plaf/synth/SynthContext
+javax/swing/plaf/synth/SynthBorder
+javax/swing/plaf/synth/SynthRootPaneUI
+javax/swing/plaf/synth/SynthLabelUI
+javax/swing/plaf/synth/SynthButtonUI
+javax/swing/plaf/synth/SynthToggleButtonUI
+javax/swing/plaf/basic/BasicBorders$FieldBorder
+javax/swing/plaf/synth/SynthMenuBarUI
+javax/swing/plaf/synth/SynthMenuUI
+javax/swing/plaf/synth/SynthUI
+com/sun/java/swing/plaf/gtk/GTKIconFactory
+com/sun/java/swing/plaf/gtk/GTKIconFactory$MenuArrowIcon
+com/sun/java/swing/plaf/gtk/GTKIconFactory$DelegatingIcon
+com/sun/java/swing/plaf/gtk/GTKConstants$ArrowType
+javax/swing/plaf/basic/BasicIconFactory
+javax/swing/plaf/basic/BasicIconFactory$MenuItemCheckIcon
+javax/swing/plaf/synth/SynthMenuItemUI
+javax/swing/plaf/synth/SynthPopupMenuUI
+javax/swing/plaf/synth/SynthSeparatorUI
+javax/swing/plaf/synth/SynthScrollBarUI
+javax/swing/plaf/synth/SynthArrowButton
+javax/swing/plaf/synth/SynthArrowButton$SynthArrowButtonUI
+javax/swing/plaf/synth/SynthComboBoxUI
+javax/swing/plaf/synth/SynthComboPopup
+javax/swing/plaf/synth/SynthListUI
+javax/swing/plaf/synth/SynthListUI$SynthListCellRenderer
+javax/swing/plaf/synth/SynthViewportUI
+javax/swing/plaf/synth/SynthScrollPaneUI
+javax/swing/plaf/synth/SynthScrollPaneUI$ViewportBorder
+javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxRenderer
+javax/swing/plaf/synth/SynthComboBoxUI$SynthComboBoxEditor
+javax/swing/plaf/synth/SynthTextFieldUI
+javax/swing/plaf/synth/SynthToolBarUI
+javax/swing/plaf/synth/SynthToolBarUI$SynthToolBarLayoutManager
+com/sun/java/swing/plaf/gtk/GTKIconFactory$ToolBarHandleIcon
+com/sun/java/swing/plaf/gtk/GTKConstants$Orientation
+sun/awt/X11/XTranslateCoordinates
+com/sun/java/swing/plaf/gtk/GTKPainter
+javax/swing/plaf/synth/SynthPainter
+javax/swing/plaf/synth/SynthPainter$1
+com/sun/java/swing/plaf/gtk/GTKConstants$PositionType
+com/sun/java/swing/plaf/gtk/GTKConstants$ShadowType
+java/io/ObjectInputStream$HandleTable$HandleList
+sun/java2d/pipe/ShapeSpanIterator
+sun/java2d/pipe/SpanIterator
+sun/dc/path/PathConsumer
+sun/dc/pr/PathStroker
+sun/dc/pr/PathDasher
+java/awt/geom/LineIterator
+java/awt/geom/PathIterator
+sun/applet/Main
+sun/applet/AppletMessageHandler
+sun/applet/resources/MsgAppletViewer
+sun/applet/AppletSecurity
+sun/awt/AWTSecurityManager
+java/lang/SecurityManager
+java/security/DomainCombiner
+sun/applet/AppletSecurity$1
+java/lang/SecurityManager$1
+java/security/SecurityPermission
+java/util/PropertyPermission
+sun/applet/AppletViewer
+java/applet/AppletContext
+java/awt/print/Printable
+sun/security/util/SecurityConstants
+java/awt/AWTPermission
+java/net/NetPermission
+java/net/SocketPermission
+javax/security/auth/AuthPermission
+java/lang/Thread$1
+java/util/logging/LogManager$5
+sun/applet/StdAppletViewerFactory
+sun/applet/AppletViewerFactory
+sun/applet/AppletViewer$UserActionListener
+sun/applet/AppletViewerPanel
+sun/applet/AppletPanel
+java/applet/AppletStub
+sun/misc/MessageUtils
+sun/applet/AppletPanel$10
+java/security/Policy$1
+sun/security/provider/PolicyFile$1
+sun/security/provider/PolicyFile$3
+sun/security/util/PropertyExpander
+sun/security/provider/PolicyParser
+sun/security/util/PolicyUtil
+sun/security/provider/PolicyParser$GrantEntry
+sun/security/provider/PolicyParser$PermissionEntry
+sun/security/provider/PolicyFile$PolicyEntry
+sun/security/provider/PolicyFile$6
+sun/security/provider/PolicyFile$7
+java/net/SocketPermissionCollection
+java/util/PropertyPermissionCollection
+sun/applet/AppletPanel$9
+sun/applet/AppletClassLoader
+sun/applet/AppletThreadGroup
+sun/applet/AppContextCreator
+sun/applet/AppletPanel$1
+sun/awt/X11/XMenuBarPeer
+java/awt/peer/MenuBarPeer
+java/awt/peer/MenuComponentPeer
+sun/awt/X11/XBaseMenuWindow
+sun/awt/X11/XMenuPeer
+java/awt/peer/MenuPeer
+java/awt/peer/MenuItemPeer
+sun/awt/X11/XMenuItemPeer
+java/awt/MenuShortcut
+sun/awt/X11/XMenuWindow
+sun/awt/X11/XMenuItemPeer$TextMetrics
+sun/awt/AppContext$3
+sun/awt/X11/XMenuBarPeer$MappingData
+sun/awt/X11/XBaseMenuWindow$MappingData
+sun/applet/AppletViewer$1
+sun/applet/AppletViewer$1AppletEventListener
+sun/applet/AppletListener
+sun/applet/AppletEventMulticaster
+sun/misc/Queue
+sun/misc/QueueElement
+sun/applet/AppletEvent
+sun/applet/AppletClassLoader$1
+sun/awt/X11/XBaseMenuWindow$3
+java/awt/DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent
+sun/awt/CausedFocusEvent
+sun/awt/X11/XWindow$1
+java/net/URLClassLoader$4
+sun/applet/AppletClassLoader$2
+javax/swing/JApplet
+java/lang/ClassLoader$1
+sun/security/provider/PolicyFile$5
+java/security/PermissionsEnumerator
+java/util/Collections$1
+sun/applet/AppletPanel$11
+sun/applet/AppletPanel$8
+sun/applet/AppletPanel$2
+sun/applet/AppletPanel$3
+sun/applet/AppletPanel$6
+javax/swing/BufferStrategyPaintManager$1
+# f3ac8b467e7f8c49
--- a/src/bsd/doc/man/appletviewer.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/appletviewer.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,7 +19,7 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH appletviewer 1 "10 May 2011"
+.TH appletviewer 1 "16 Mar 2012"
 
 .LP
 .SH "Name"
@@ -36,11 +36,14 @@
 .SH "DESCRIPTION"
 .LP
 .LP
-The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see
+The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see 
 .na
 \f2AppletViewer Tags\fP @
 .fi
-http://download.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html.
+http://docs.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html.
+.LP
+.LP
+\f3Note:\fP The \f3appletviewer\fP is intended for development purposes only. See About Sample / Test Applications and Code for more information.
 .LP
 .LP
 \f3Note:\fP The \f3appletviewer\fP requires encoded URLs according to the escaping mechanism defined in RFC2396. Only encoded URLs are supported. However, file names must be unencoded, as specified in RFC2396.
@@ -49,18 +52,18 @@
 .LP
 .RS 3
 .TP 3
-\-debug
-Starts the applet viewer in the Java debugger, jdb(1), thus allowing you to debug the applets in the document.
+\-debug 
+Starts the applet viewer in the Java debugger, jdb(1), thus allowing you to debug the applets in the document. 
 .TP 3
-\-encoding \  \ encoding name
-Specify the input HTML file encoding name.
+\-encoding \  \ encoding name 
+Specify the input HTML file encoding name. 
 .TP 3
-\-Jjavaoption
-Passes through the string \f2javaoption\fP as a single argument to the Java interpreter which runs the appletviewer. The argument should not contain spaces. Multiple argument words must all begin with the prefix \f3\-J\fP, which is stripped. This is useful for adjusting the compiler's execution environment or memory usage.
+\-Jjavaoption 
+Passes through the string \f2javaoption\fP as a single argument to the Java interpreter which runs the appletviewer. The argument should not contain spaces. Multiple argument words must all begin with the prefix \f3\-J\fP, which is stripped. This is useful for adjusting the compiler's execution environment or memory usage. 
 .RE
 
 .LP
 .LP
 
 .LP
-
+ 
--- a/src/bsd/doc/man/apt.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/apt.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,7 +19,7 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH apt 1 "10 May 2011"
+.TH apt 1 "16 Mar 2012"
 
 .LP
 .SH "NAME"
@@ -39,11 +39,11 @@
 .LP
 .RS 3
 .TP 3
-sourcefiles
-Zero or more source files to be processed.
+sourcefiles 
+Zero or more source files to be processed. 
 .TP 3
-@files
-One or more files that list source files or other options
+@files 
+One or more files that list source files or other options 
 .RE
 
 .LP
@@ -56,80 +56,80 @@
 The tool \f2apt\fP, annotation processing tool, includes reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP.
 .LP
 .LP
-A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in
+A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in 
 .na
 \f4Getting Started with \fP\f4apt\fP. @
 .fi
-http://download.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html
+http://docs.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html
 .LP
 .SH "OPTIONS"
 .LP
-.SS
+.SS 
 apt specific options
 .LP
 .RS 3
 .TP 3
-\-s dir
-Specify the directory root under which processor\-generated source files will be placed; files are placed in subdirectories based on package namespace.
+\-s dir 
+Specify the directory root under which processor\-generated source files will be placed; files are placed in subdirectories based on package namespace. 
 .TP 3
-\-nocompile
-Do not compile source files to class files.
+\-nocompile 
+Do not compile source files to class files. 
 .TP 3
-\-print
-Print out textual representation of specified types; perform no annotation processing or compilation.
+\-print 
+Print out textual representation of specified types; perform no annotation processing or compilation. 
 .TP 3
-\-A[key[=val]]
-Options to pass to annotation processors \-\- these are not interpreted by \f2apt\fP directly, but are made available for use by individual processors
+\-A[key[=val]] 
+Options to pass to annotation processors \-\- these are not interpreted by \f2apt\fP directly, but are made available for use by individual processors 
 .TP 3
-\-factorypath path
-Specify where to find annotation processor factories; if this option is used, the classpath is \f2not\fP searched for factories.
+\-factorypath path 
+Specify where to find annotation processor factories; if this option is used, the classpath is \f2not\fP searched for factories. 
 .TP 3
-\-factory classname
-Name of annotation processor factory to use; bypasses default discovery process
+\-factory classname 
+Name of annotation processor factory to use; bypasses default discovery process 
 .TP 3
-\-version
-Print version information.
+\-version 
+Print version information. 
 .TP 3
-\-X
-Display information about non\-standard options.
+\-X 
+Display information about non\-standard options. 
 .RE
 
 .LP
-.SS
+.SS 
 Options shared with javac
 .LP
 .RS 3
 .TP 3
-\-d dir
-Specify where to place processor and javac generated class files
+\-d dir 
+Specify where to place processor and javac generated class files 
 .TP 3
-\-cp path or \-classpath path
-Specify where to find user class files and annotation processor factories. If \f2\-factorypath\fP is given, the classpath is not searched for factories.
+\-cp path or \-classpath path 
+Specify where to find user class files and annotation processor factories. If \f2\-factorypath\fP is given, the classpath is not searched for factories. 
 .RE
 
 .LP
 .LP
 Consult the javac(1) man page for information on \f2javac\fP options.
 .LP
-.SS
+.SS 
 Non\-Standard Options
 .LP
 .RS 3
 .TP 3
-\-XListAnnotationTypes
-List found annotation types.
+\-XListAnnotationTypes 
+List found annotation types. 
 .TP 3
-\-XListDeclarations
-List specified and included declarations.
+\-XListDeclarations 
+List specified and included declarations. 
 .TP 3
-\-XPrintAptRounds
-Print information about initial and recursive \f2apt\fP rounds.
+\-XPrintAptRounds 
+Print information about initial and recursive \f2apt\fP rounds. 
 .TP 3
-\-XPrintFactoryInfo
-Print information about which annotations a factory is asked to process.
+\-XPrintFactoryInfo 
+Print information about which annotations a factory is asked to process. 
 .TP 3
-\-XclassesAsDecls
-Treat both class and source files as declarations to process.
+\-XclassesAsDecls 
+Treat both class and source files as declarations to process. 
 .RE
 
 .LP
@@ -146,8 +146,8 @@
 .RS 3
 .TP 2
 o
-javac(1), java(1)
+javac(1), java(1) 
 .RE
 
 .LP
-
+ 
--- a/src/bsd/doc/man/extcheck.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/extcheck.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,7 +19,7 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH extcheck 1 "10 May 2011"
+.TH extcheck 1 "16 Mar 2012"
 
 .LP
 .SH "Name"
@@ -57,11 +57,11 @@
 .LP
 .RS 3
 .TP 3
-\-verbose
-Lists Jar files in the extension directory as they are checked. Additionally, manifest attributes of the target jar file and any conflicting jar files are also reported.
+\-verbose 
+Lists Jar files in the extension directory as they are checked. Additionally, manifest attributes of the target jar file and any conflicting jar files are also reported. 
 .TP 3
-\-Joption
-Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes.
+\-Joption 
+Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. 
 .RE
 
 .LP
@@ -70,4 +70,4 @@
 .LP
 jar(1)
 .LP
-
+ 
--- a/src/bsd/doc/man/idlj.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/idlj.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,13 +19,13 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH idlj 1 "10 May 2011"
+.TH idlj 1 "16 Mar 2012"
 
 .LP
 .SH "Name"
 idlj \- The IDL\-to\-Java Compiler
 .LP
-\f3idlj\fP generates Java bindings from a given IDL file.
+\f3idlj\fP generates Java bindings from a given IDL file. 
 .SH "Synopsis"
 .LP
 .nf
@@ -43,13 +43,13 @@
 .SH "Description"
 .LP
 .LP
-The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\  For binding details, see the
+The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\  For binding details, see the 
 .na
 \f2OMG IDL to Java Language Language Mapping Specification\fP @
 .fi
-http://download.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP.
+http://docs.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP.
 .LP
-.SS
+.SS 
 Emitting Client and Server Bindings
 .LP
 .LP
@@ -106,18 +106,18 @@
 The default server\-side model is the \f2Portable Servant Inheritance Model\fP. Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2MyPOA.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2MyPOA\fP.
 .LP
 .LP
-\f2MyPOA.java\fP is a stream\-based skeleton that extends
+\f2MyPOA.java\fP is a stream\-based skeleton that extends 
 .na
 \f2org.omg.PortableServer.Servant\fP @
 .fi
-http://download.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements.
+http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements.
 .LP
 .LP
-The \f2PortableServer\fP module for the
+The \f2PortableServer\fP module for the 
 .na
 \f2Portable Object Adapter (POA)\fP @
 .fi
-http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.
+http://docs.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior.
 .LP
 .LP
 Another option for the Inheritance Model is to use the \f2\-oldImplBase\fP flag in order to generate server\-side bindings that are compatible with versions of the Java programming language prior to J2SE 1.4. Note that using the \f2\-oldImplBase\fP flag is non\-standard: these APIs are being deprecated. You would use this flag ONLY for compatibility with existing servers written in J2SE 1.3. In that case, you would need to modify an existing MAKEFILE to add the \f2\-oldImplBase\fP flag to the \f2idlj\fP compiler, otherwise POA\-based server\-side mappings will be generated. To generate server\-side bindings that are backwards compatible:
@@ -170,7 +170,7 @@
 .fl
     MyServant myDelegate = new MyServant();
 .fl
-    myDelegate.setORB(orb);
+    myDelegate.setORB(orb); 
 .fl
 
 .fl
@@ -218,7 +218,7 @@
 .fl
     MyServant myDelegate = new MyServant();
 .fl
-    myDelegate.setORB(orb);
+    myDelegate.setORB(orb); 
 .fl
 
 .fl
@@ -236,7 +236,7 @@
 .fi
 
 .LP
-.SS
+.SS 
 Specifying Alternate Locations for Emitted Files
 .LP
 .LP
@@ -253,7 +253,7 @@
 .LP
 For the interface \f2My\fP, the bindings will be emitted to \f2/altdir/My.java\fP, etc., instead of \f2./My.java\fP.
 .LP
-.SS
+.SS 
 Specifying Alternate Locations for Include Files
 .LP
 .LP
@@ -291,13 +291,13 @@
 
 .LP
 .LP
-The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the
+The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the 
 .na
 \f2Setting the Classpath\fP @
 .fi
-http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general.
+http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#general.
 .LP
-.SS
+.SS 
 Emitting Bindings for Include Files
 .LP
 .LP
@@ -469,7 +469,7 @@
 .LP
 If the \f2\-emitAll\fP flag had been used in the previous example, then all types in all included files would be emitted.
 .LP
-.SS
+.SS 
 Inserting Package Prefixes
 .LP
 .LP
@@ -525,7 +525,7 @@
 .fi
 
 .LP
-So the line for the above example would be:
+So the line for the above example would be: 
 .nf
 \f3
 .fl
@@ -538,7 +538,7 @@
 .LP
 The use of this option does not affect the Repository ID.
 .LP
-.SS
+.SS 
 Defining Symbols Before Compilation
 .LP
 .LP
@@ -555,7 +555,7 @@
 .LP
 is the equivalent of putting the line \f2#define MYDEF\fP inside \f2My.idl\fP.
 .LP
-.SS
+.SS 
 Preserving Pre\-Existing Bindings
 .LP
 .LP
@@ -572,7 +572,7 @@
 .LP
 emits all client\-side bindings that do not already exist.
 .LP
-.SS
+.SS 
 Viewing Progress of Compilation
 .LP
 .LP
@@ -589,7 +589,7 @@
 .LP
 By default the compiler does not operate in verbose mode.
 .LP
-.SS
+.SS 
 Displaying Version Information
 .LP
 .LP
@@ -611,8 +611,8 @@
 .LP
 .RS 3
 .TP 3
-\-d symbol
-This is equivalent to the following line in an IDL file:
+\-d symbol 
+This is equivalent to the following line in an IDL file: 
 .nf
 \f3
 .fl
@@ -621,32 +621,32 @@
 \fP
 .fi
 .TP 3
-\-emitAll
-Emit all types, including those found in \f2#include\fP files.
+\-emitAll 
+Emit all types, including those found in \f2#include\fP files. 
 .TP 3
-\-fside
-Defines what bindings to emit. \f2side\fP is one of \f2client\fP, \f2server\fP, \f2serverTIE\fP, \f2all\fP, or \f2allTIE\fP. The \f2\-fserverTIE\fP and \f2\-fallTIE\fP options cause delegate model skeletons to be emitted. Assumes \f2\-fclient\fP if the flag is not specified.
+\-fside 
+Defines what bindings to emit. \f2side\fP is one of \f2client\fP, \f2server\fP, \f2serverTIE\fP, \f2all\fP, or \f2allTIE\fP. The \f2\-fserverTIE\fP and \f2\-fallTIE\fP options cause delegate model skeletons to be emitted. Assumes \f2\-fclient\fP if the flag is not specified. 
 .TP 3
-\-i include\-path
-By default, the current directory is scanned for included files. This option adds another directory.
+\-i include\-path 
+By default, the current directory is scanned for included files. This option adds another directory. 
 .TP 3
-\-keep
-If a file to be generated already exists, do not overwrite it. By default it is overwritten.
+\-keep 
+If a file to be generated already exists, do not overwrite it. By default it is overwritten. 
 .TP 3
-\-noWarn
-Suppresses warning messages.
+\-noWarn 
+Suppresses warning messages. 
 .TP 3
-\-oldImplBase
-Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inheritance Model server\-side bindings are generated. This option provides backward\-compatibility with older versions of the Java programming language by generating server\-side bindings that are \f2ImplBase\fP Inheritance Model classes.
+\-oldImplBase 
+Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inheritance Model server\-side bindings are generated. This option provides backward\-compatibility with older versions of the Java programming language by generating server\-side bindings that are \f2ImplBase\fP Inheritance Model classes. 
 .TP 3
-\-pkgPrefix type prefix
-Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module.
+\-pkgPrefix type prefix 
+Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module. 
 .TP 3
-\-pkgTranslate type package
+\-pkgTranslate type package 
 Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly.
 .br
 .br
-If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include:
+If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include: 
 .nf
 \f3
 .fl
@@ -654,7 +654,7 @@
 .fl
 \fP
 .fi
-The following translations would occur:
+The following translations would occur: 
 .nf
 \f3
 .fl
@@ -668,47 +668,47 @@
 .fl
 \fP
 .fi
-The following package names cannot be translated:
+The following package names cannot be translated: 
 .RS 3
 .TP 2
 o
-\f2org\fP
+\f2org\fP 
 .TP 2
 o
-\f2org.omg\fP or any subpackages of \f2org.omg\fP
+\f2org.omg\fP or any subpackages of \f2org.omg\fP 
 .RE
-Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error.
+Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. 
 .TP 3
-\-skeletonName xxx%yyy
-Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are:
+\-skeletonName xxx%yyy 
+Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are: 
 .RS 3
 .TP 2
 o
-%POA for the \f2POA\fP base class (\f2\-fserver\fP or \f2\-fall\fP)
+%POA for the \f2POA\fP base class (\f2\-fserver\fP or \f2\-fall\fP) 
 .TP 2
 o
-_%ImplBase for the \f2oldImplBase\fP class (\f2\-oldImplBase\fP and (\f2\-fserver\fP or \f2\-fall\fP))
+_%ImplBase for the \f2oldImplBase\fP class (\f2\-oldImplBase\fP and (\f2\-fserver\fP or \f2\-fall\fP)) 
 .RE
 .TP 3
-\-td dir
-Use \f2dir\fP for the output directory instead of the current directory.
+\-td dir 
+Use \f2dir\fP for the output directory instead of the current directory. 
 .TP 3
-\-tieName xxx%yyy
-Name the tie according to the pattern. The defaults are:
+\-tieName xxx%yyy 
+Name the tie according to the pattern. The defaults are: 
 .RS 3
 .TP 2
 o
-%POATie for the \f2POA\fP tie base class (\f2\-fserverTie\fP or \f2\-fallTie\fP)
+%POATie for the \f2POA\fP tie base class (\f2\-fserverTie\fP or \f2\-fallTie\fP) 
 .TP 2
 o
-%_Tie for the \f2oldImplBase\fP tie class (\f2\-oldImplBase\fP and (\f2\-fserverTie\fP or \f2\-fallTie\fP))
+%_Tie for the \f2oldImplBase\fP tie class (\f2\-oldImplBase\fP and (\f2\-fserverTie\fP or \f2\-fallTie\fP)) 
 .RE
 .TP 3
-\-nowarn, \-verbose
-Verbose mode.
+\-nowarn, \-verbose 
+Verbose mode. 
 .TP 3
-\-version
-Display version information and terminate.
+\-version 
+Display version information and terminate. 
 .RE
 
 .LP
@@ -720,10 +720,10 @@
 .RS 3
 .TP 2
 o
-Escaped identifiers in the global scope may not have the same spelling as IDL primitive types, \f2Object\fP, or \f2ValueBase\fP. This is because the symbol table is pre\-loaded with these identifiers; allowing them to be redefined would overwrite their original definitions. (Possible permanent restriction).
+Escaped identifiers in the global scope may not have the same spelling as IDL primitive types, \f2Object\fP, or \f2ValueBase\fP. This is because the symbol table is pre\-loaded with these identifiers; allowing them to be redefined would overwrite their original definitions. (Possible permanent restriction). 
 .TP 2
 o
-The \f2fixed\fP IDL type is not supported.
+The \f2fixed\fP IDL type is not supported. 
 .RE
 
 .LP
@@ -732,8 +732,8 @@
 .RS 3
 .TP 2
 o
-No import generated for global identifiers. If you invoke on an unexported local impl, you do get an exception, but it seems to be due to a \f2NullPointerException\fP in the \f2ServerDelegate\fP DSI code.
+No import generated for global identifiers. If you invoke on an unexported local impl, you do get an exception, but it seems to be due to a \f2NullPointerException\fP in the \f2ServerDelegate\fP DSI code. 
 .RE
 
 .LP
-
+ 
--- a/src/bsd/doc/man/ja/appletviewer.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/appletviewer.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,51 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH appletviewer 1 "07 May 2011"
+.TH appletviewer 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+appletviewer \- Javaアプレット・ビューア
+.LP
+.LP
+\f3appletviewer\fPコマンドでは、Webブラウザの外でアプレットを実行できます。
+.LP
+.SH "形式"
+.LP
+.LP
+\f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ...
+.LP
+.SH "説明"
+.LP
+.LP
+\f3appletviewer\fPコマンドは\f2urls\fPに指定されたドキュメントあるいはリソースと接続して、そのドキュメントが参照するそれぞれのアプレットを独自のウィンドウで表示します。注意: \f2urls\fPによって参照されたドキュメントが、\f2OBJECT\fP、\f2EMBED\fP、または\f2APPLET\fPタグでどのアプレットも参照していない場合、\f3appletviewer\fPは何も行いません。\f3appletviewer\fPでサポートされるHTMLタグの詳細は、
+.na
+\f2アプレット・ビューアのタグ\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/tools/appletviewertags.htmlを参照してください。
+.LP
+.LP
+\f3注意:\fP \f3appletviewer\fPは開発専用です。詳細は、サンプル/テスト・アプリケーションのコードについてを参照してください。
+.LP
+.LP
+\f3注意:\fP \f3appletviewer\fPは、RFC2396で定義されたエスケープ・メカニズムに従ってエンコードされたURLを必要とします。サポートされるのは、エンコードされたURLのみです。ただし、ファイル名については、RFC2396の仕様に従ってエンコードを解除しておく必要があります。
+.LP
+.SH "オプション"
+.LP
+.RS 3
+.TP 3
+\-debug 
+Javaデバッガjdb(1)でアプレット・ビューアを開始します。これにより、ドキュメント中のアプレットをデバッグすることができます。 
+.TP 3
+\-encoding \  \ encoding name 
+入力HTMLファイルのエンコーディング名を指定します。 
+.TP 3
+\-Jjavaoption 
+文字列\f2javaoption\fPは、appletviewerを実行するJavaインタプリタに1つの引数として渡されます。引数にスペースを含めないでください。複数の引数は、各引数のすべてを接頭辞\f3\-J\fPで始めることにより区分する必要があります。これは、コンパイラの実行環境またはメモリー使用の調整に有効です。 
+.RE
+
+.LP
+.LP
+
+.LP
+ 
--- a/src/bsd/doc/man/ja/apt.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/apt.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,9 +19,135 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH apt 1 "07 May 2011"
+.TH apt 1 "05 Jul 2012"
 
 .LP
-.SH "NAME"
+.SH "名前"
 .LP
 .LP
+\f2apt\fP \- 注釈処理ツール
+.LP
+.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]
+.LP
+.SH "パラメータ"
+.LP
+.LP
+オプションの指定順序に決まりはありません。特定のオプションに適用されるパラメータについては、下記のオプションを参照してください。
+.LP
+.RS 3
+.TP 3
+sourcefiles 
+ゼロ、1つ、または複数の処理対象のソース・ファイル 
+.TP 3
+@files 
+ソース・ファイルまたは他のオプションを一覧表示する1つまたは複数のファイル 
+.RE
+
+.LP
+.SH "説明"
+.LP
+.LP
+\f3注意\fP: \f2apt\fPツールと、パッケージ\f2com.sun.mirror\fPに含まれているそれに関連したAPIは、JDK 7以降非推奨になっており、JDKの次のメジャー・リリースで削除される予定です。\f2javac(1)\fPツールで利用可能なオプションと、パッケージ\f2javax.annotation.processing\fPおよび\f2javax.lang.model\fPに含まれているAPIを使用して、注釈を処理してください。
+.LP
+.LP
+注釈処理ツール\f2apt\fPは、リフレクトAPIとサポート・インフラストラクチャから構成され、プログラム注釈を処理します。\f2apt\fPリフレクトAPIは、構築時のソース・ベースで、プログラム構造に関する読取り専用ビューを提供します。これらのリフレクトAPIは、総称を追加した後に、Java(tm)プログラミング言語の型システムを正しくモデル化するように設計されています。最初に、\f2apt\fPは、新しいソース・コードと他のファイルを作成する注釈プロセッサを実行します。次に、\f2apt\fPは、元のソース・ファイルと生成したソース・ファイルの両方をコンパイルするため、開発が楽になります。ツールとのインタフェースに使用されるリフレクトAPIなどのAPIは、\f2com.sun.mirror\fPのサブパッケージです。
+.LP
+.LP
+ツールの機能に関する詳細および\f2apt\fPを使用した開発手順は、
+.na
+\f4apt\fP\f3スタート・ガイド\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.htmlを参照してください。
+.LP
+.SH "オプション"
+.LP
+.SS 
+apt固有のオプション
+.LP
+.RS 3
+.TP 3
+\-s dir 
+プロセッサの生成するソース・ファイルを置くディレクトリ・ルートを指定します。ファイルは、パッケージの名前空間に基づいてサブディレクトリに置かれます。 
+.TP 3
+\-nocompile 
+ソース・ファイルをクラス・ファイルにコンパイルしません。 
+.TP 3
+\-print 
+指定したタイプのテキスト表現を出力します。注釈処理またはコンパイルは行いません。 
+.TP 3
+\-A[key[=val]] 
+注釈プロセッサへ渡すオプションです。このオプションは、\f2apt\fPが直接解釈するのではなく、それぞれのプロセッサで使用できるようになります。 
+.TP 3
+\-factorypath path 
+注釈プロセッサ・ファクトリを検索する場所を指定します。このオプションを使用する場合、クラス・パスのファクトリは検索\f2されません\fP。 
+.TP 3
+\-factory classname 
+使用する注釈プロセッサ・ファクトリの名前です。デフォルトの検出プロセスを省略します。 
+.TP 3
+\-version 
+バージョン情報を出力します。 
+.TP 3
+\-X 
+非標準オプションに関する情報を表示します。 
+.RE
+
+.LP
+.SS 
+javacと共用するオプション
+.LP
+.RS 3
+.TP 3
+\-d dir 
+プロセッサとjavac生成のクラス・ファイルを置く場所を指定します。 
+.TP 3
+\-cppathまたは\-classpathpath 
+ユーザー・クラス・ファイルと注釈プロセッサ・ファクトリを検索する場所を指定します。\f2\-factorypath\fPが指定されている場合、クラス・パスのファクトリは検索されません。 
+.RE
+
+.LP
+.LP
+\f2javac\fPオプションの詳細は、javac(1)のマニュアル・ページを参照してください。
+.LP
+.SS 
+非標準オプション
+.LP
+.RS 3
+.TP 3
+\-XListAnnotationTypes 
+検出された注釈の型をリストします。 
+.TP 3
+\-XListDeclarations 
+指定およびインクルードされる宣言をリストします。 
+.TP 3
+\-XPrintAptRounds 
+初期および再帰的な\f2apt\fPラウンドに関する情報を出力します。 
+.TP 3
+\-XPrintFactoryInfo 
+ファクトリに処理をリクエストする注釈に関する情報を出力します。 
+.TP 3
+\-XclassesAsDecls 
+クラス・ファイルとソース・ファイルの両方を、処理対象の宣言として処理します。 
+.RE
+
+.LP
+.LP
+\f3注意\fP: これらは非標準オプションなので、予告なく変更される可能性があります。
+.LP
+.SH "注意"
+.LP
+.LP
+\f2apt\fPツールと、パッケージ\f2com.sun.mirror\fPに含まれているそれに関連したAPIは、JDK 7以降非推奨になっており、JDKの次のメジャー・リリースで削除される予定です。\f2javac(1)\fPツールで利用可能なオプションと、パッケージ\f2javax.annotation.processing\fPおよび\f2javax.lang.model\fPに含まれているAPIを使用して、注釈を処理してください。
+.LP
+.SH "関連項目"
+.LP
+.RS 3
+.TP 2
+o
+javac(1)、java(1) 
+.RE
+
+.LP
+ 
--- a/src/bsd/doc/man/ja/extcheck.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/extcheck.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,55 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH extcheck 1 "07 May 2011"
+.TH extcheck 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+extcheck \- jarの競合検出ユーティリティ
+.LP
+.LP
+\f3extcheck\fPは、ターゲットのjarファイルと現在インストールされている拡張機能のjarファイル間のバージョンの競合を検出します。
+.LP
+.SH "形式"
+.LP
+.nf
+\f3
+.fl
+extcheck [ \-verbose ] targetfile.jar
+.fl
+\fP
+.fi
+
+.LP
+.SH "説明"
+.LP
+.LP
+\f3extcheck\fPユーティリティは、指定されたJarファイルのタイトルおよびバージョンがJava(tm) 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メソッドと同様の方法でバージョン番号を比較します。
+.LP
+.LP
+競合が検出されない場合のリターン・コードは\f20\fPです。
+.LP
+.LP
+拡張機能ディレクトリ内のいずれかのjarファイルのマニフェストに、同一の\f2Specification\-title\fP、および同一またはより新しい\f2Specification\-version\fP番号がある場合は、ゼロでないエラー・コードが返されます。\f2targetfile.jar\fPのマニフェストに\f2Specification\-title\fPまたは\f2Specification\-version\fP属性がない場合も、ゼロでないエラー・コードが返されます。
+.LP
+.SH "オプション"
+.LP
+.RS 3
+.TP 3
+\-verbose 
+拡張機能ディレクトリ内のJarファイルを、チェック時に一覧表示します。また、ターゲットjarファイルのマニフェストの属性、および競合するjarファイルについても報告します。 
+.TP 3
+\-Joption 
+Java仮想マシンに\f2option\fPを渡します。\f2option\fPには、java(1)のリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\f3\-J\-Xms48m\fPと指定すると、スタートアップ・メモリーは48Mバイトに設定されます。 
+.RE
+
+.LP
+.SH "関連項目"
+.LP
+.LP
+jar(1)
+.LP
+ 
--- a/src/bsd/doc/man/ja/idlj.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/idlj.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,720 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH idlj 1 "07 May 2011"
+.TH idlj 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+idlj \- IDL\-to\-Javaコンパイラ
+.LP
+\f3idlj\fPは、指定されたIDLファイルからJavaバインディングを生成します。 
+.SH "形式"
+.LP
+.nf
+\f3
+.fl
+idlj [ \fP\f3options\fP\f3 ] \fP\f4idl\-file\fP\f3
+.fl
+\fP
+.fi
+
+.LP
+.LP
+\f2idl\-file\fPは、インタフェース定義言語(IDL)による定義が入ったファイルの名前です。\f2options\fPの順番は任意ですが、\f2idl\-file\fPよりも前に指定する必要があります。
+.LP
+.SH "説明"
+.LP
+.LP
+IDL\-to\-Javaコンパイラは、指定されたIDLファイルに対してJavaバインディングを生成します。バインディングの詳細は、
+.na
+\f2OMG IDL to Java Language Mapping Specification\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.htmlを参照してください。IDL\-to\-Javaコンパイラの以前のリリースの中には、\f2idltojava\fPという名前だったものがあります。
+.LP
+.SS 
+クライアント・バインディングおよびサーバー・バインディングの発行
+.LP
+.LP
+My.idlという名前のIDLファイルに対してJavaバインディングを生成するには、次のコマンドを実行します。
+.LP
+.nf
+\f3
+.fl
+idlj My.idl
+.fl
+\fP
+.fi
+
+.LP
+.LP
+これにより、クライアント側のバインディングが生成されます。このコマンドは、次のコマンドと等価です。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-fclient\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+クライアント側のバインディングには、サーバー側のスケルトンは組み込まれていません。インタフェースに対してサーバー側のバインディングを生成するには、次のコマンドを実行します。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-fserver\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+サーバー側のバインディングには、クライアント側のバインディングの他に、スケルトンも含まれています。これらはすべて、\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
+サーバー側で可能なモデルは2つあります。継承モデルとTie委譲モデルです。
+.LP
+.LP
+デフォルトのサーバー側のモデルは、\f2移殖可能サーバント継承モデル\fPです。\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://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.htmlを拡張するストリームベースのスケルトンで、スケルトンが実装するIDLインタフェースに関連付けられている\f2InvokeHandler\fPインタフェースと操作インタフェースを実装します。
+.LP
+.LP
+.na
+\f2Portable Object Adapter(POA)\fP @
+.fi
+http://docs.oracle.com/javase/7/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ベースのサーバー側マッピングが生成されます。下位互換性のあるサーバー側バインディングを生成するには、次のコマンドを使用します。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl
+.fl
+idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+\f2My.idl\fP内で\f2My\fPインタフェースが定義されている場合は、\f2_MyImplBase.java\fPというファイルが生成されます。\f2My\fPに対してその実装を提供し、この実装は\f2_MyImplBase\fPから継承する必要があります。
+.LP
+.LP
+もう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
+    ORB orb = ORB.init(args, System.getProperties());
+.fl
+
+.fl
+    // Get reference to rootpoa & activate the POAManager
+.fl
+    POA rootpoa = (POA)orb.resolve_initial_references("RootPOA");
+.fl
+    rootpoa.the_POAManager().activate();
+.fl
+
+.fl
+    // create servant and register it with the ORB
+.fl
+    MyServant myDelegate = new MyServant();
+.fl
+    myDelegate.setORB(orb); 
+.fl
+
+.fl
+    // create a tie, with servant being the delegate.
+.fl
+    MyPOATie tie = new MyPOATie(myDelegate, rootpoa);
+.fl
+
+.fl
+    // obtain the objectRef for the tie
+.fl
+    My ref = tie._this(orb);
+.fl
+\fP
+.fi
+
+.LP
+.LP
+他の実装から継承する必要がある場合、標準の継承モデルではなくTieモデルを使用することもできます。Javaの場合は、インタフェースの継承の個数に制限はありませんが、クラスの継承に使用できるスロットは1つのみです。継承モデルを使用した場合は、そのスロットが占有されます。Tieモデルを使用した場合は、そのスロットが使用されず、ユーザーが独自の目的で使用することができます。ただし、この方法には、間接性のレベルが1つ導入されるという欠点があります。メソッドを呼び出すときに、余分なメソッド呼出しが1回発生します。
+.LP
+.LP
+J2SE 1.4より前のバージョンのJava言語にマッピングするIDLのバージョンと互換性のある、サーバー側の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
+.fl
+    ORB orb = ORB.init(args, System.getProperties());
+.fl
+
+.fl
+    // create servant and register it with the ORB
+.fl
+    MyServant myDelegate = new MyServant();
+.fl
+    myDelegate.setORB(orb); 
+.fl
+
+.fl
+    // create a tie, with servant being the delegate.
+.fl
+    MyPOATie tie = new MyPOATie(myDelegate);
+.fl
+
+.fl
+    // obtain the objectRef for the tie
+.fl
+    My ref = tie._this(orb);
+.fl
+\fP
+.fi
+
+.LP
+.SS 
+発行されたファイルの代替位置の指定
+.LP
+.LP
+発行されたファイルを現在のディレクトリ以外のディレクトリに置くには、次のようなコマンドでコンパイラを呼び出します。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-td /altdir\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+\f2My\fPインタフェースの場合、バインディングは、\f2./My.java\fPではなく、\f2/altdir/My.java\fPなどに発行されます。
+.LP
+.SS 
+インクルード・ファイルの代替位置の指定
+.LP
+.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
+.LP
+たとえば、\f2/moreIncludes\fPにある\f2Another.idl\fPも\f2My.idl\fPにインクルードされているのであれば、次のようなコマンドでコンパイラを呼び出します。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+このような形式でインクルードを指定すると、コマンドが長くて複雑になります。そこで、インクルード・ファイルを検索する場所をコンパイラに指示するための別の方法が用意されています。この方法は、環境変数の考え方と似ています。CLASSPATHにリストされているディレクトリ内に\f2idl.config\fPという名前のファイルを作成します。その\f2idl.config\fPの中に、次のような形式の行を入れます。
+.LP
+.nf
+\f3
+.fl
+includes=/includes;/moreIncludes
+.fl
+\fP
+.fi
+
+.LP
+.LP
+コンパイラは、このファイルを検索し、インクルード・リストを読み込みます。この例では、ディレクトリの間の区切り文字はセミコロン(;)になっています。この区切り文字は、プラットフォームによって異なります。たとえば、Windowsプラットフォームではセミコロンですが、Unixプラットフォームではコロンです。\f2includes\fPの詳細は、
+.na
+\f2クラス・パスの設定\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#generalを参照してください。
+.LP
+.SS 
+インクルード・ファイルに対するバインディングの発行
+.LP
+.LP
+デフォルトでは、コマンドラインに指定したIDLファイルで定義されているインタフェースや構造体などについてのみ、Javaバインディングが生成されます。インクルードされたファイルで定義されている型については生成されません。たとえば、次の2つのIDLファイルについて考えてみましょう。
+.LP
+
+.LP
+.LP
+\f4My.idl\fP
+.LP
+.nf
+\f3
+.fl
+#include <MyOther.idl>
+.fl
+interface My
+.fl
+{
+.fl
+};
+.fl
+\fP
+.fi
+
+.LP
+
+.LP
+.LP
+\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)で定義されている型すべてについて生成するには、次のコマンドを使用します。
+.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は生成\f2されました\fP。さらに、\f2Embedded.idl\fPが\f2My\fPインタフェースのスコープ内にインクルードされていたため、\f2My\fPのスコープ内(つまり、\f2MyPackage\fP内)に生成されています。
+.LP
+.LP
+上記の例で\f2\-emitAll\fPフラグを使用すれば、インクルードされたすべてのファイルにあるすべての型が発行されます。
+.LP
+.SS 
+パッケージの接頭辞の挿入
+.LP
+.LP
+ABCという名前の会社のために作業していて、次のようなIDLファイルを構築したとしましょう。
+.LP
+
+.LP
+.LP
+\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.<company name>\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
+.LP
+コンパイル用のシンボルがIDLファイル内で定義されていない場合は、そのシンボルを定義する必要があります。これは、たとえば、バインディング内にデバッグ・コードを組み入れるときに使用します。次のコマンドは、
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-d\fP MYDEF My.idl
+.fl
+.fi
+
+.LP
+.LP
+\f2My.idl\fP内に\f2#define MYDEF\fPという行を指定した場合と等価です。
+.LP
+.SS 
+既存のバインディングの保持
+.LP
+.LP
+Javaバインディング・ファイルがすでに存在する場合は、\f2\-keep\fPフラグを指定すると、コンパイラによる上書きを回避できます。デフォルトでは、すでに存在するかどうかにかかわらず、すべてのファイルが生成されます。これらのファイルをカスタマイズした場合(ただし、それらの内容が正確であるとき以外はカスタマイズは避ける)、\f2\-keep\fPオプションは有用です。次のコマンドは、
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-keep\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+クライアント側のバインディングで、まだ存在しないものをすべて発行します。
+.LP
+.SS 
+コンパイルの進捗状況の表示
+.LP
+.LP
+IDL\-to\-Javaコンパイラは、実行の各段階で状態メッセージを生成します。「冗長」モードをアクティブ化するには、\f2\-v\fPオプションを使用します。
+.LP
+.nf
+\f3
+.fl
+idlj \fP\f3\-v\fP My.idl
+.fl
+.fi
+
+.LP
+.LP
+デフォルトでは、コンパイラは冗長モードでは実行されません。
+.LP
+.SS 
+バージョン情報の表示
+.LP
+.LP
+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ファイルに次のような行を追加した場合と等価です。 
+.nf
+\f3
+.fl
+#define \fP\f4symbol\fP\f3
+.fl
+\fP
+.fi
+.TP 3
+\-emitAll 
+\f2#include\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が指定されたものと見なされます。 
+.TP 3
+\-i include\-path 
+デフォルトでは、インクルード・ファイルは現在のディレクトリから検索されます。このオプションを指定すると、他のディレクトリを追加できます。 
+.TP 3
+\-keep 
+生成されるファイルがすでに存在している場合は、そのファイルが上書きされません。デフォルトでは、上書きされます。 
+.TP 3
+\-noWarn 
+警告メッセージを表示しないようにします。 
+.TP 3
+\-oldImplBase 
+1.4より前のJDK ORBと互換性のあるスケルトンを生成します。デフォルトでは、POA継承モデルのサーバー側バインディングが生成されます。このオプションを指定すると、\f2ImplBase\fP継承モデルのクラスであるサーバー側バインディングが生成されるので、古いバージョンのJavaプログラミング言語との下位互換性が得られます。 
+.TP 3
+\-pkgPrefix type prefix 
+\f2type\fPがファイル・スコープで検出された場合は、その型に対して生成されるすべてのファイルについて、生成されるJavaパッケージ名に\f2prefix\fPという接頭辞が付加されます。\f2type\fPは、トップレベル・モジュールの単純名か、どのモジュールよりも外側で定義されたIDL型の単純名のどちらかです。 
+.TP 3
+\-pkgTranslate type package 
+識別子の中にモジュール名\f2type\fPが検出されると、生成されるJavaパッケージ内のすべてのファイルについて、識別子の中のその名前が\f2package\fPで置き換えられます。最初に\f2pkgPrefix\fPの変更が行われます。\f2type\fPは、トップレベルのモジュールの単純名、またはすべてのモジュールの外部で定義されたIDL型の単純名で、完全なパッケージ名に正確に一致する必要があります。
+.br
+.br
+1つの識別子の中で複数の変換がマッチする場合は、最も長いマッチが選ばれます。たとえば、次のような引数が指定されている場合は、 
+.nf
+\f3
+.fl
+  \-pkgTranslate foo bar \-pkgTranslate foo.baz buzz.fizz
+.fl
+\fP
+.fi
+次のような変換が実施されます。 
+.nf
+\f3
+.fl
+foo          => bar
+.fl
+foo.boo      => bar.boo
+.fl
+foo.baz      => buzz.fizz
+.fl
+foo.baz.bar  => buzz.fizz.bar
+.fl
+\fP
+.fi
+次のパッケージ名を変換することはできません。 
+.RS 3
+.TP 2
+o
+\f2org\fP 
+.TP 2
+o
+\f2org.omg\fP、または\f2org.omg\fPのサブパッケージ 
+.RE
+これらのパッケージ名を変換しようとすると、互換性のないコードが生成され、\f2\-pkgTranslate\fPの後の最初の引数としてそれらのパッケージを使用すると、エラーとして扱われます。 
+.TP 3
+\-skeletonName xxx%yyy 
+\f2xxx%yyy\fPが、スケルトンに名前を付けるパターンとして使用されます。デフォルトは次のとおりです。 
+.RS 3
+.TP 2
+o
+\f2POA\fPベース・クラスの場合は%POA (\f2\-fserver\fPまたは\f2\-fall\fP) 
+.TP 2
+o
+\f2oldImplBase\fPクラスの場合は_%ImplBase (\f2\-oldImplBase\fPかつ(\f2\-fserver\fPまたは\f2\-fall\fP)) 
+.RE
+.TP 3
+\-td dir 
+出力ディレクトリとして、現在のディレクトリではなく、\f2dir\fPが使用されます。 
+.TP 3
+\-tieName xxx%yyy 
+このパターンに従ってTieに名前が付けられます。デフォルトは次のとおりです。 
+.RS 3
+.TP 2
+o
+\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)) 
+.RE
+.TP 3
+\-nowarn、\-verbose 
+冗長モードになります。 
+.TP 3
+\-version 
+バージョン情報を表示して終了します。 
+.RE
+
+.LP
+.LP
+各オプションの詳細は、説明のセクションを参照してください。
+.LP
+.SH "制約"
+.LP
+.RS 3
+.TP 2
+o
+グローバル・スコープ内のエスケープされた識別子は、IDLプリミティブ型の\f2Object\fPまたは\f2ValueBase\fPと同じ綴りにしないでください。これらの識別子については、シンボル表が事前にロードされており、これらの識別子の再定義を許可すると元の定義が上書きされてしまうためです。(これは、おそらく恒久的な制約です。) 
+.TP 2
+o
+\f2fixed\fPというIDL型はサポートされていません。 
+.RE
+
+.LP
+.SH "既知の問題点"
+.LP
+.RS 3
+.TP 2
+o
+グローバル識別子についてインポートが生成されません。予期されないローカルimplを呼び出すと、例外を受け取ります。しかし、その原因は、\f2ServerDelegate\fP DSIコード内の\f2NullPointerException\fPにあるようです。 
+.RE
+
+.LP
+ 
--- a/src/bsd/doc/man/ja/jar.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/jar.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,583 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH jar 1 "07 May 2011"
+.TH jar 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+jar \- Java ARchiveツール
+.LP
+\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
+.RS 3
+.TP 3
+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ファイルの更新 
+\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ファイルの抽出 
+\f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
+.TP 3
+JARファイルの目次表示 
+\f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP 
+.TP 3
+JARファイルへのインデックスの追加 
+\f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP 
+.RE
+
+.LP
+.LP
+説明
+.LP
+.RS 3
+.TP 3
+cuxtiv0Mmfe 
+\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の場合)。 
+.TP 3
+inputfiles 
+\f2jarfile\fPに結合されるか(cおよびuの場合)、\f2jarfile\fPから抽出(xの場合)または一覧表示(tの場合)される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション\f20\fP(ゼロ)を使用しないかぎり圧縮されます。 
+.TP 3
+manifest 
+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ファイル内にバンドルされたスタンドアロン・アプリケーションのアプリケーション・エントリ・ポイントとして設定するクラスの名前。\f2e\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のセットは複数使用できます。 
+.TP 3
+\-Joption 
+Java実行環境へ渡されるオプション。(\f2\-J\fPと\f2option\fPの間には空白を入れないでください。) 
+.RE
+
+.LP
+.SH "説明"
+.LP
+\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アーカイブは、圧縮されているかどうかにかかわらず、クラス・パスのエントリとして使用できます。 
+.LP
+複数のファイルをJARファイルへ結合する一般的な使用方法は次のとおりです。
+.LP
+.nf
+\f3
+.fl
+% jar cf myFile.jar *.class
+.fl
+\fP
+.fi
+
+.LP
+この例では、現在のディレクトリにあるすべてのクラス・ファイルが\f2myFile.jar\fPという名前のファイルに格納されます。jarツールは自動的に、\f2META\-INF/MANIFEST.MF\fPという名前のマニフェスト・ファイル・エントリを生成します。これは常に、JARファイルの最初のエントリになります。マニフェスト・ファイルは、アーカイブに関するメタ情報を宣言し、そのデータを\f2name\ :\ value\fPのペアとして格納します。jarツールがマニフェスト・ファイル内にメタ情報を格納する方法の詳細は、
+.na
+\f2JARファイルの仕様\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifestを参照してください。 
+.LP
+既存のマニフェスト・ファイル内に格納された\f2name\ :\ value\fPのペアをJARファイルに含める必要がある場合には、次のように\f2\-m\fPオプションを使用してそのファイルを指定します。
+.LP
+.nf
+\f3
+.fl
+% jar cmf myManifestFile myFile.jar *.class
+.fl
+\fP
+.fi
+
+.LP
+既存のマニフェスト・ファイルは改行文字で終わっている必要があります。マニフェスト・ファイルが改行文字で終わっていないと、\f3jar\fPはその最終行を解析しません。
+.br
+
+.LP
+.br
+
+.LP
+\f3注意:\ \fPコマンドラインに\f2cmf\fPではなく\f2cfm\fPが指定された(mと\-fオプションの順番を逆にした)jarコマンドの場合、\f3jar\fPコマンドラインにまずJARアーカイブの名前を指定し、続いてマニフェスト・ファイルの名前を指定する必要があります。次に例を示します。 
+.nf
+\f3
+.fl
+% jar cfm myFile.jar myManifestFile *.class
+.fl
+\fP
+.fi
+
+.LP
+マニフェストは、RFC822 ASCII形式で規定されたテキスト形式であるため、マニフェスト・ファイルの内容を簡単に表示および処理できます。 
+.LP
+JARファイルからファイルを抽出する場合は、\f2x\fPを使用します。
+.LP
+.nf
+\f3
+.fl
+% jar xf myFile.jar
+.fl
+\fP
+.fi
+
+.LP
+.LP
+jarファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。
+.LP
+.nf
+\f3
+.fl
+% jar xf myFile.jar foo bar
+.fl
+\fP
+.fi
+
+.LP
+.LP
+JDKのバージョン1.3以降から、\f2jar\fPユーティリティで
+.na
+\f2JarIndex\fP @
+.fi
+http://docs.oracle.com/javase/7/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
+.fl
+% jar i main.jar
+.fl
+\fP
+.fi
+
+.LP
+.LP
+この例では、\f2INDEX.LIST\fPファイルが\f2main.jar\fPの\f2META\-INF\fPディレクトリ内に挿入されます。
+.br
+.br
+アプリケーションのクラス・ローダーは、このファイルに格納されている情報を使用して、効率的にクラスをロードします。インデックス・ファイルに位置情報を格納する方法の詳細は、\f2JarIndex\fP仕様を参照してください。
+.br
+.br
+ディレクトリをコピーするには、まず\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)
+.fl
+\fP
+.fi
+
+.LP
+.LP
+\f2jar\fPを使用してJARファイルやJARマニフェスト・ファイルを操作するサンプル・コマンドを確認するには、次の例を参照してください。また、
+.na
+\f2Javaチュートリアル\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/deployment/jar/のJARトライアルも参照してください。
+.LP
+.SH "オプション"
+.LP
+.RS 3
+.TP 3
+c 
+\f2jarfile\fPという名前の新しいアーカイブ・ファイルを作成する(\f2f\fPが指定された場合)か、標準出力に出力します(\f2f\fPと\f2jarfile\fPが省略された場合)。\f2inputfiles\fPで指定されたファイルとディレクトリを、このアーカイブに追加します。 
+.TP 3
+u 
+\f2inputfiles\fPに指定されたファイルやディレクトリを追加して、既存ファイル\f2jarfile\fPを更新します(\f2f\fPが指定されている場合)。次に例を示します。 
+.nf
+\f3
+.fl
+jar uf foo.jar foo.class
+.fl
+\fP
+.fi
+上のコマンドは、ファイル\f2foo.class\fPを既存のJARファイル\f2foo.jar\fPに追加します。次の例に示すように、\f2\-u\fPオプションは、マニフェスト・エントリも更新できます。 
+.nf
+\f3
+.fl
+jar umf manifest foo.jar
+.fl
+\fP
+.fi
+上のコマンドは、\f2foo.jar\fPマニフェストを\f2manifest\fP内の\f2name : value\fPのペアで更新します。 
+.TP 3
+x 
+\f2jarfile\fPからファイルとディレクトリを抽出します(\f2f\fPが指定された場合)、または標準入力からファイルやディレクトリを抽出します(\f2f\fPと\f2jarfile\fPが省略された場合)。\f2inputfiles\fPが指定されている場合は、指定されたファイルとディレクトリのみが抽出されます。それ以外の場合は、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。 
+.TP 3
+t 
+\f2jarfile\fPから目次を表示します(\f2f\fPが指定された場合)、または標準入力から目次を表示します(\f2f\fPと\f2jarfile\fPが省略された場合)。\f2inputfiles\fPが指定されている場合は、指定されたファイルとディレクトリのみが一覧表示されます。それ以外の場合は、すべてのファイルとディレクトリが一覧表示されます。 
+.TP 3
+i 
+指定された\f2jarfile\fPと、それに依存するJARファイルについて、インデックス情報を生成します。次に例を示します。 
+.nf
+\f3
+.fl
+jar i foo.jar
+.fl
+\fP
+.fi
+.LP
+上のコマンドは、\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を省略すると、\f2stdin\fPからJARファイル名が取得される(xおよびtの場合)か、\f2stdout\fPにJARファイルが出力されます(cおよびuの場合)。 
+.TP 3
+v 
+詳細な出力を標準出力に生成します。次に例を示します。 
+.TP 3
+0 
+(ゼロ)ZIPによる圧縮を使用せずに、保存します。 
+.TP 3
+M 
+マニフェスト・ファイル・エントリを作成しません(cおよびuの場合)。または、マニフェスト・ファイル・エントリが存在する場合は削除します(uの場合)。 
+.TP 3
+m 
+\f2META\-INF/MANIFEST.MF\fPのファイルで指定したマニフェスト・ファイル\f2manifest\fPの\f2name : value\fPの属性ペアを組み込みます。\f2jar\fPは、すでに同じ名前で存在しない場合は、その\f2name\ :\ value\fPペアを追加します。同じ名前で存在する場合、\f2jar\fPはその値を更新します。
+.br
+.br
+コマンドラインで、\f3m\fPと\f3f\fPの文字は、\f2manifest\fPと\f2jarfile\fPの入力順序と同じ順序で記述する必要があります。たとえば、次のように使用します。 
+.nf
+\f3
+.fl
+jar cmf myManifestFile myFile.jar *.class
+.fl
+\fP
+.fi
+デフォルトのマニフェストには含まれないマニフェストに、特別な目的の\f2name\ :\ value\fPの属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージ・シーリング、またはJARにバンドルされたアプリケーションを実行可能にするための属性を追加できます。\f4\-m\fPオプションの使用例は、Javaチュートリアルの
+.na
+\f2JARファイルでのプログラムのパッケージ化\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/deployment/jar/のレッスンを参照してください。 
+.TP 3
+e 
+実行可能JARファイル内にバンドルされたスタンドアロン・アプリケーションのアプリケーション・エントリ・ポイントとして、\f2entrypoint\fPを設定します。このオプションを使用すると、マニフェスト・ファイル内の\f2Main\-Class\fP属性値が作成または上書きされます。このオプションは、JARファイルの作成中または更新中に使用できます。このオプションを使用すれば、マニフェスト・ファイルを編集または作成することなしに、アプリケーションのエントリ・ポイントを指定できます。
+.br
+.br
+.br
+たとえば、次のコマンドでは\f2Main.jar\fPが作成されますが、その際、マニフェスト内の\f2Main\-Class\fP属性値は\f2Main\fPに設定されます。 
+.nf
+\f3
+.fl
+jar cfe Main.jar Main Main.class
+.fl
+\fP
+.fi
+次のコマンドを実行するとjavaランタイムから直接このアプリケーションを起動できます。 
+.nf
+\f3
+.fl
+java \-jar Main.jar
+.fl
+\fP
+.fi
+あるパッケージ内にエントリ・ポイントのクラス名が含まれている場合、ドット(「.」)、スラッシュ(「/」)のいずれかの文字をその区切り文字として使用できます。たとえば、\f2Main.class\fPが\f2foo\fPという名前のパッケージに含まれている場合、エントリ・ポイントは次のようにして指定できます。 
+.nf
+\f3
+.fl
+jar \-cfe Main.jar foo/Main foo/Main.class
+.fl
+\fP
+.fi
+または 
+.nf
+\f3
+.fl
+jar \-cfe Main.jar foo.Main foo/Main.class
+.fl
+\fP
+.fi
+\f3注意:\fP \f2\-m\fPオプションと\f2\-e\fPオプションの両方を同時に指定した場合、指定したマニフェストにも\f2Main\-Class\fP属性が含まれていれば、\f2Main.class\fPの指定があいまいになってエラーや発生し、JARの作成処理や更新処理が異常終了します。 
+.TP 3
+\-C\ dir 
+\f2jar\fPコマンドの実行中に後続の\f2inputfiles\fP引数を処理するときに、一時的にディレクトリを変更します(\f2cd\fP\ \f2dir\fP)。この処理は、UNIXの\f2tar\fPユーティリティの\f2\-C\fPオプションの機能に類似しています。
+.br
+.br
+たとえば、次のコマンドは、\f2classes\fPディレクトリに移動し、そのディレクトリから\f2bar.class\fPを\f2foo.jar\fPに追加します。 
+.nf
+\f3
+.fl
+jar uf foo.jar \-C classes bar.class
+.fl
+\fP
+.fi
+次のコマンドでは、\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
+.fl
+\fP
+.fi
+\f2classes\fPにファイル\f2bar1\fPと\f2bar2\fPが格納されている場合に、\f2jar tf foo.jar\fP使用したときのJARファイルの中身を、次に示します。 
+.nf
+\f3
+.fl
+META\-INF/
+.fl
+META\-INF/MANIFEST.MF
+.fl
+bar1
+.fl
+bar2
+.fl
+xyz.class
+.fl
+\fP
+.fi
+.LP
+.TP 3
+\-Joption 
+Java実行環境に\f2option\fPを渡します。\f2option\fPには、Javaアプリケーション起動ツールのリファレンス・ページに記載されているオプションを1つ指定します。たとえば、\f4\-J\-Xmx48M\fPと指定すると、最大メモリーが48Mバイトに設定されます。\f2\-J\fPを使用して背後の実行環境にオプションを渡すことはよく行われています。 
+.RE
+
+.LP
+.SH "コマンドライン引数ファイル"
+.LP
+jarのコマンドラインを短くしたり簡潔にしたりするために、\f2jar\fPコマンドに対する引数(\f2\-J\fPオプションを除く)を含む1つ以上のファイルを指定することができます。これにより、任意の長さのjarコマンドを作成でき、オペレーティング・システムによるコマンドラインの制限から解放されます。 
+.LP
+引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。通常はオペレーティング・システム・シェルによって展開されるワイルドカード(*)は展開されません。\f2@\fP文字を使用して、ファイルを再帰的に解釈することはできません。\f2\-J\fPオプションはサポートされません。このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。
+.LP
+.LP
+\f2jar\fPを実行するときに、各引数ファイルのパスと名前の先頭に\f2@\fP文字を付けて渡します。\f2jar\fPは、\f2@\fP文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。
+.br
+.br
+次の例で、\f2classes.list\fPには、\f2find\fPコマンドによって出力されたファイルの名前が格納されます。 
+.LP
+.nf
+\f3
+.fl
+% find \fP\f3.\fP \-name '*.class' \-print > classes.list
+.fl
+.fi
+
+.LP
+.LP
+次に、引数ファイル構文を使用して\f2Classes.list\fPを\f2jar\fPに渡すことで、そのリストに対して\f2jar\fPコマンドを実行できます。
+.LP
+.nf
+\f3
+.fl
+% jar cf my.jar @classes.list
+.fl
+\fP
+.fi
+
+.LP
+引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。次はその例です。 
+.nf
+\f3
+.fl
+% jar @path1/classes.list
+.fl
+\fP
+.fi
+
+.LP
+.LP
+
+.LP
+.SH "例"
+.LP
+特定のディレクトリ内のすべてのファイルをアーカイブに追加する(そのアーカイブがすでに存在する場合は、その内容を上書きする)には、次のようにします。\f2\-v\fPオプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。 
+.nf
+\f3
+.fl
+% ls
+.fl
+1.au          Animator.class    monkey.jpg
+.fl
+2.au          Wave.class        spacemusic.au
+.fl
+3.au          at_work.gif
+.fl
+
+.fl
+% jar cvf bundle.jar *
+.fl
+added manifest
+.fl
+adding: 1.au(in = 2324) (out= 67)(deflated 97%)
+.fl
+adding: 2.au(in = 6970) (out= 90)(deflated 98%)
+.fl
+adding: 3.au(in = 11616) (out= 108)(deflated 99%)
+.fl
+adding: Animator.class(in = 2266) (out= 66)(deflated 97%)
+.fl
+adding: Wave.class(in = 3778) (out= 81)(deflated 97%)
+.fl
+adding: at_work.gif(in = 6621) (out= 89)(deflated 98%)
+.fl
+adding: monkey.jpg(in = 7667) (out= 91)(deflated 98%)
+.fl
+adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%)
+.fl
+\fP
+.fi
+
+.LP
+すでに画像、オーディオ・ファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一のJARファイルに結合できます。 
+.nf
+\f3
+.fl
+% ls \-F
+.fl
+audio/ classes/ images/
+.fl
+
+.fl
+% jar cvf bundle.jar audio classes images
+.fl
+added manifest
+.fl
+adding: audio/(in = 0) (out= 0)(stored 0%)
+.fl
+adding: audio/1.au(in = 2324) (out= 67)(deflated 97%)
+.fl
+adding: audio/2.au(in = 6970) (out= 90)(deflated 98%)
+.fl
+adding: audio/3.au(in = 11616) (out= 108)(deflated 99%)
+.fl
+adding: audio/spacemusic.au(in = 3079) (out= 73)(deflated 97%)
+.fl
+adding: classes/(in = 0) (out= 0)(stored 0%)
+.fl
+adding: classes/Animator.class(in = 2266) (out= 66)(deflated 97%)
+.fl
+adding: classes/Wave.class(in = 3778) (out= 81)(deflated 97%)
+.fl
+adding: images/(in = 0) (out= 0)(stored 0%)
+.fl
+adding: images/monkey.jpg(in = 7667) (out= 91)(deflated 98%)
+.fl
+adding: images/at_work.gif(in = 6621) (out= 89)(deflated 98%)
+.fl
+
+.fl
+% ls \-F
+.fl
+audio/ bundle.jar classes/ images/
+.fl
+\fP
+.fi
+
+.LP
+JARファイルのエントリ名を表示するには、\f2t\fPオプションを使用します。 
+.nf
+\f3
+.fl
+% jar tf bundle.jar
+.fl
+META\-INF/
+.fl
+META\-INF/MANIFEST.MF
+.fl
+audio/1.au
+.fl
+audio/2.au
+.fl
+audio/3.au
+.fl
+audio/spacemusic.au
+.fl
+classes/Animator.class
+.fl
+classes/Wave.class
+.fl
+images/monkey.jpg
+.fl
+images/at_work.gif
+.fl
+\fP
+.fi
+
+.LP
+.LP
+クラス・ロードを高速にするためにインデックス・ファイルをJARファイルに追加するには、\f2i\fPオプションを使用します。
+.br
+.br
+例:
+.br
+
+.LP
+たとえば、株取引アプリケーションの相互依存しているクラスを、\f2main.jar\fP、\f2buy.jar\fPおよび\f2sell.jar\fPという3つのJARファイルに分割したとします。
+.br
+
+.LP
+.br
+
+.LP
+\f2main.jar\fPのマニフェストの\f2Class\-path\fP属性に次のように指定した場合、 
+.nf
+\f3
+.fl
+Class\-Path: buy.jar sell.jar
+.fl
+\fP
+.fi
+
+.LP
+\f2\-i\fPオプションを使用すれば、アプリケーションのクラスの読込みを高速化できます。 
+.nf
+\f3
+.fl
+% jar i main.jar
+.fl
+\fP
+.fi
+
+.LP
+\f2INDEX.LIST\fPファイルが\f2META\-INF\fPディレクトリに挿入されます。これにより、アプリケーションのクラス・ローダーによってクラスまたはリソースの検索が行われるときに、適切なjarファイルがダウンロードされるようになります。 
+.SH "関連項目"
+.LP
+.LP
+.na
+\f2JARファイルの概要\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html
+.LP
+.LP
+.na
+\f2JARファイルの仕様\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html
+.LP
+.LP
+.na
+\f2JarIndexの仕様\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index
+.LP
+.LP
+.na
+\f2JARチュートリアル\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/deployment/jar//index.html
+.LP
+.LP
+pack200(1)
+.LP
+ 
--- a/src/bsd/doc/man/ja/jarsigner.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/jarsigner.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,1655 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH jarsigner 1 "07 May 2011"
+.TH jarsigner 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+jarsigner \- JAR署名および検証ツール
+.LP
+.LP
+Java ARchive(JAR)ファイルの署名を生成し、署名付きJARファイルの署名を検証します。
+.LP
+.SH "形式"
+.LP
+.nf
+\f3
+.fl
+\fP\f3jarsigner\fP [ options ] jar\-file alias
+.fl
+\f3jarsigner\fP \-verify [ options ] jar\-file [alias...]
+.fl
+.fi
+
+.LP
+.LP
+jarsignerの\-verifyコマンドでは、JARファイル名の後に0個以上のキーストア別名を指定できます。キーストア別名が指定された場合、jarsignerは、JARファイル内の各署名付きエンティティの検証に使用される証明書が、いずれかのキーストア別名に一致することをチェックします。別名は、\-keystoreで指定されたキーストア内またはデフォルトのキーストア内に定義されます。
+.LP
+.SH "説明"
+.LP
+.LP
+\f3jarsigner\fPツールは、次の2つの目的で使用します。
+.LP
+.RS 3
+.TP 3
+1.
+Java ARchive(JAR)ファイルに署名する目的 
+.TP 3
+2.
+署名付きJARファイルの署名と整合性を検証する目的 
+.RE
+
+.LP
+.LP
+JAR機能を使用すると、クラス・ファイル、イメージ、サウンドおよびその他のデジタル・データを単一のファイルにパッケージ化できるので、ファイルを迅速かつ容易に配布できます。開発者は、jar(1)という名前のツールを使用してJARファイルを作成できます。(技術的な観点から言えば、すべてのZIPファイルもJARファイルとみなすことができます。ただし、\f3jar\fPによって作成されたJARファイル、または\f3jarsigner\fPによって処理されたJARファイルには、META\-INF/MANIFEST.MFファイルが含まれています。)
+.LP
+.LP
+\f2デジタル署名\fPは、なんらかのデータ(「署名」の対象となるデータ)と、エンティティ(人、会社など)の秘密鍵とに基づいて計算されるビット列です。手書きの署名同様、デジタル署名には多くの利点があります。
+.LP
+.RS 3
+.TP 2
+o
+署名の生成に使用された秘密鍵と対になる公開鍵を使用して計算を行うことで、デジタル署名が本物かどうかを検証できます。 
+.TP 2
+o
+秘密鍵が他人に知られない限り、デジタル署名の偽造は不可能です。 
+.TP 2
+o
+デジタル署名は、その署名が付いたデータのみを対象とするものであり、他のデータの署名として機能することはありません。 
+.TP 2
+o
+署名付きのデータは変更できません。データが変更された場合は、その署名によってデータが本物ではないことが検証されます。 
+.RE
+
+.LP
+.LP
+ファイルに対してエンティティの署名を生成するには、まず、エンティティは、そのエンティティに関連する公開鍵と秘密鍵のペアを持つ必要があります。また、公開鍵を認証する1つまたは複数の証明書も必要です。\f2証明書\fPとは、あるエンティティが発行したデジタル署名付きの文書で、別なエンティティの公開鍵が特定の値であることを証明しています。
+.LP
+.LP
+\f3jarsigner\fPは、\f2キーストア\fPに含まれる鍵と証明書情報を使用して、JARファイルのデジタル署名を生成します。キーストアは、秘密鍵、および対応する公開鍵を認証するためのX.509証明書チェーンが収められたデータベースです。キーストアの作成と管理には、keytool(1)ユーティリティを使用します。
+.LP
+.LP
+\f3jarsigner\fPは、エンティティの秘密鍵を使用して署名を生成します。署名付きJARファイルには、ファイルの署名に使用された秘密鍵に対応する公開鍵に対する、キーストア内の証明書のコピーなどが含まれています。\f3jarsigner\fPは、署名付きJARファイル内(署名ブロック・ファイル内)にある証明書を使用してそのファイルのデジタル署名を検証できます。
+.LP
+.LP
+\f3jarsigner\fPはタイムスタンプを含む署名を生成するので、システムやデプロイヤ(Java Plug\-inを含む)はJARファイルが署名証明書の有効期間中に署名されたかどうかをチェックできます。さらに、APIを使用すると、アプリケーションからタイムスタンプ情報を取得できます。
+.LP
+.LP
+現時点では、\f3jarsigner\fPで署名できるのは、SDKのjar(1)ツールで作成されたJARファイル、またはZIPファイルのみです。(JARファイルはZIPファイルと同じですが、JARファイルにはMETA\-INF/MANIFEST.MFファイルが含まれている点が異なります。このファイルは、\f3jarsigner\fPがZIPファイルに署名を付けるときに自動的に作成されます。)
+.LP
+.LP
+デフォルトでは、\f3jarsigner\fPはJAR(またはZIP)ファイルに\f2署名します\fP。署名付きJARファイルを\f2検証\fPする場合は、\f2\-verify\fPオプションを指定します。
+.LP
+.SS 
+キーストアの別名
+.LP
+.LP
+キーストアのすべてのエントリは、一意の\f2別名\fPを介してアクセスされます。
+.LP
+.LP
+\f3jarsigner\fPを使用してJARファイルに署名を付けるときは、署名の生成に必要な秘密鍵を含むキーストア・エントリの別名を指定する必要があります。たとえば、次の例は、workingディレクトリのmystoreという名前のキーストアに含まれる別名dukeに関連付けられた秘密鍵を使用して、MyJARFile.jarという名前のJARファイルに署名を付けます。出力ファイルは指定されていないので、MyJARFile.jarは署名付きのJARファイルによって上書きされます。
+.LP
+.nf
+\f3
+.fl
+    jarsigner \-keystore /working/mystore \-storepass \fP\f4<keystore password>\fP\f3
+.fl
+      \-keypass \fP\f4<private key password>\fP\f3 MyJARFile.jar duke
+.fl
+\fP
+.fi
+
+.LP
+.LP
+キーストアはパスワードで保護されているので、ストアのパスワードを指定する必要があります。コマンドラインでストアのパスワードを指定しないと、パスワードの入力を求められます。同様に、秘密鍵もキーストア内でパスワードによって保護されているため、秘密鍵のパスワードを指定する必要があります。コマンドラインで秘密鍵のパスワードを指定していない場合、または指定したパスワートが保存されているパスワードと違っている場合には、秘密鍵のパスワードの入力を求められます。
+.LP
+.SS 
+キーストアの場所
+.LP
+.LP
+\f3jarsigner\fPには、使用するキーストアのURLを指定する\f2\-keystore\fPオプションがあります。キーストアはデフォルトで、\f2user.home\fPシステム・プロパティで決まるユーザーのホーム・ディレクトリの\f2.keystore\fPという名前のファイル内に格納されます。Solarisシステムの場合、\f2user.home\fPのデフォルトはユーザーのhomeディレクトリになります。
+.LP
+.LP
+\f2\-keystore\fPオプションからの入力ストリームは、\f2KeyStore.load\fPメソッドに渡されます。URLとして\f2NONE\fPが指定されている場合は、nullのストリームが\f2KeyStore.load\fPメソッドに渡されます。\f2NONE\fPは、\f2KeyStore\fPがファイルベースではない場合、たとえば、ハードウェア・トークン・デバイス上に存在している場合などに指定してください。
+.LP
+.SS 
+キーストアの実装
+.LP
+.LP
+\f2java.security\fPパッケージで提供されている\f2KeyStore\fPクラスは、キーストア内の情報へのアクセスおよび情報の変更を行うための、明確に定義されたインタフェースを提供します。キーストアの固定実装としては、それぞれが特定の\f2タイプ\fPのキーストアを対象とする複数の異なる実装が存在可能です。
+.LP
+.LP
+現在、キーストアの実装を使用するものとして、\f3keytool\fPと\f3jarsigner\fPの2つのコマンドライン・ツールと、\f3Policy Tool\fPという名前の1つのGUIベースのツールがあります。\f2KeyStore\fPは公開されているので、Java 2 SDKユーザーはKeyStoreを使用する他のセキュリティ・アプリケーションも作成できます。
+.LP
+.LP
+キーストアには、Sun Microsystemsが提供する組込みのデフォルトの実装があります。これは、JKSという名前の独自のキーストア・タイプ(形式)を利用するもので、キーストアをファイルとして実装しています。この実装では、個々の秘密鍵は個別のパスワードによって保護され、キーストア全体の整合性も(秘密鍵とは別の)パスワードによって保護されます。
+.LP
+.LP
+キーストアの実装は、プロバイダベースです。具体的には、\f2KeyStore\fPによって提供されるアプリケーション・インタフェースが「サービス・プロバイダ・インタフェース」(SPI)に基づいて実装されます。つまり、対応する\f2KeystoreSpi\fP抽象クラス(これも\f2java.security\fPパッケージに含まれています)があり、このクラスが、「プロバイダ」が実装する必要のあるService Provider Interfaceのメソッドを定義しています。(ここで、「プロバイダ」とは、Java Security APIによってアクセス可能なサービスのサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合のことです。)したがって、キーストアの実装を提供するには、
+.na
+\f2Java暗号化アーキテクチャ用プロバイダの実装方法\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlで説明しているように、クライアントが「プロバイダ」を実装し、KeystoreSpiサブクラスの実装を提供する必要があります。
+.LP
+.LP
+アプリケーションでは、\f2KeyStore\fPクラスが提供するgetInstanceファクトリ・メソッドを使用することで、様々なプロバイダから異なる\f2タイプ\fPのキーストアの実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式を定義するとともに、キーストア内の秘密鍵とキーストア自体の整合性を保護するために使用されるアルゴリズムを定義します。異なるタイプのキーストアの実装には、互換性はありません。
+.LP
+.LP
+\f3keytool\fPは、任意のファイルベースのキーストア実装で動作します。(これは、コマンドラインから渡されたキーストアの場所をファイル名として扱い、これを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プロパティの値を取得できます。次のコードは、デフォルトのキーストア・タイプ(\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リファレンス・ガイドにある
+.na
+\f2KeyToolとJarSigner\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#KeyToolJarSignerの項を参照してください。
+.LP
+.SS 
+サポートされるアルゴリズム
+.LP
+.LP
+\f3jarsigner\fPはデフォルトで、次のいずれかを使用してJARファイルに署名します。
+.LP
+.RS 3
+.TP 2
+o
+SHA1ダイジェスト・アルゴリズムを使用したDSA(デジタル署名アルゴリズム) 
+.TP 2
+o
+SHA256ダイジェスト・アルゴリズムを使用したRSAアルゴリズム 
+.TP 2
+o
+SHA256とECDSA(楕円曲線デジタル署名アルゴリズム)を使用したEC(楕円曲線)暗号方式アルゴリズム 
+.RE
+
+.LP
+.LP
+具体的には、署名者の公開鍵と秘密鍵が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ファイル自体の署名を検証します。
+.br
+.br
+この手順では、各署名ブロック(.DSA)ファイルに格納されている署名が、実際に、公開鍵に対応する秘密鍵を使用して生成されたものであることが確認されます。.DSAファイルには、公開鍵の証明書(または証明書チェーン)も含まれています。また、この手順では、目的の署名が、対応する署名(.SF)ファイル内の有効な署名であるかどうかを調べ、.SFファイルが改変されていないことも確認されます。 
+.TP 3
+2.
+.SFファイル内の各エントリのダイジェストをマニフェスト内の対応する各セクションと突きあわせて検証します。
+.br
+.br
+.SFファイルには、マニフェスト・ファイル全体のハッシュが格納されたヘッダーがデフォルトで含まれています。このヘッダーが存在する場合は、ヘッダー内のハッシュが実際にマニフェスト・ファイルのハッシュと一致するかどうかを検証することができます。ハッシュが一致する場合は、次の手順に検証が進みます。
+.br
+.br
+ハッシュが一致しない場合は、効率的には劣る方法を使用した検証が必要になります。具体的には、.SFファイル内の各ソース・ファイル情報セクションのハッシュが、マニフェスト・ファイル内の対応するセクションのハッシュと一致するかどうかが確認されます(署名(.SF)ファイルを参照)。
+.br
+.br
+.SFファイルのヘッダーに格納されたマニフェスト・ファイルのハッシュと、実際のマニフェスト・ファイルのハッシュとが一致しない場合は、署名(つまり.SFファイル)の生成後に、JARファイルに1つ以上のファイルが(\f2jar\fPツールを使用して)追加された可能性があります。\f2jar\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システム・プロパティによって決まります。
+.br
+.br
+署名するときはキーストアが必要です。このため、デフォルトのキーストアが存在しない場合(またはデフォルト以外のキーストアを使用する場合)は、キーストアを明示的に指定する必要があります。
+.br
+.br
+検証するときはキーストアは\f2必要ありません\fP。ただし、キーストアが指定されているか、あるいはデフォルトのキーストアが存在していて、さらに\f2\-verbose\fPオプションも指定されていた場合、JARファイルの検証に使用される証明書がそのキーストアに1つでも含まれているかどうかに関する追加情報が出力されます。
+.br
+.br
+注意: \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トークンの内容を一覧表示します。 
+.nf
+\f3
+.fl
+   jarsigner \-keystore NONE \-storetype PKCS11 \-list
+.fl
+\fP
+.fi
+.TP 3
+\-storetype storetype 
+インスタンスを生成するキーストアのタイプを指定します。デフォルトのキーストア・タイプは、セキュリティ・プロパティ・ファイル内のkeystore.typeプロパティの値で指定されたタイプです。この値は、\f2java.security.KeyStore\fPのstatic \f2getDefaultType\fPメソッドによって返されます。
+.br
+.br
+\f2\-storepass\fPオプションを使用してPCKS#11トークンのPINを指定することもできます。何も指定しなかった場合、keytoolとjarsignerはユーザーにトークンPINの入力を求めます。トークンに保護された認証パス(専用のPINパッドや生体読取り機など)がある場合、\f2\-protected\fPオプションを指定する必要がありますが、パスワード・オプションは指定できません。 
+.TP 3
+\-storepass[:env | :file] argument 
+キーストアにアクセスするのに必要なパスワードを指定します。これが必要なのは、JARファイルに署名を付けるときのみです(検証するときには不要です)。その場合、\f2\-storepass\fPオプションをコマンドラインで指定しないと、パスワードの入力を求められます。
+.br
+.br
+修飾子\f2env\fPまたは\f2file\fPが指定されていない場合、パスワードの値は\f2argument\fPになります。それ以外の場合、パスワードは次のようにして取得されます。 
+.RS 3
+.TP 2
+o
+\f2env\fP: \f2argument\fPという名前の環境変数からパスワードを取得します。 
+.TP 2
+o
+\f2file\fP: \f2argument\fPという名前のファイルからパスワードを取得します。 
+.RE
+注意: テストを目的とする場合、またはセキュリティ保護されたシステムを使用している場合以外は、コマンドラインやスクリプトでパスワードを指定しないでください。 
+.TP 3
+\-keypass[:env | :file] argument 
+コマンドラインで指定された別名に対応するキーストア・エントリの秘密鍵を保護するのに使用するパスワードを指定します。\f3jarsigner\fPを使用してJARファイルに署名を付けるときは、パスワードが必要です。コマンドラインでパスワードが指定されておらず、必要なパスワードがストアのパスワードと異なる場合は、パスワードの入力を求められます。
+.br
+.br
+修飾子\f2env\fPまたは\f2file\fPが指定されていない場合、パスワードの値は\f2argument\fPになります。それ以外の場合、パスワードは次のようにして取得されます。 
+.RS 3
+.TP 2
+o
+\f2env\fP: \f2argument\fPという名前の環境変数からパスワードを取得します。 
+.TP 2
+o
+\f2file\fP: \f2argument\fPという名前のファイルからパスワードを取得します。 
+.RE
+注意: テストを目的とする場合、またはセキュリティ保護されたシステムを使用している場合以外は、コマンドラインやスクリプトでパスワードを指定しないでください。 
+.TP 3
+\-sigfile file 
+.SFファイルと .DSAファイルの生成に使用するベース・ファイル名を指定します。たとえば、\f2file\fPにDUKESIGNを指定すると、生成される.SFファイルと.DSAファイルの名前は、それぞれDUKESIGN.SFとDUKESIGN.DSAになります。これらのファイルは、署名付きJARファイルのMETA\-INFディレクトリに置かれます。
+.br
+.br
+\f2file\fPに使用できる文字は「a\-zA\-Z0\-9_\-」です。つまり、文字、数字、下線およびハイフンのみを使用できます。注意: .SFおよび.DSAのファイル名では、小文字はすべて大文字に変換されます。
+.br
+.br
+コマンドラインで\f2\-sigfile\fPオプションを指定しなかった場合、.SFファイルと.DSAファイルのベース・ファイル名は、コマンドラインで指定された別名の先頭の8文字をすべて大文字に変換したものになります。別名が8文字未満の場合は、別名がそのまま使用されます。別名の中に、署名ファイル名に使用できない文字が含まれている場合は、該当する文字を下線(_)に置き換えてファイル名が作成されます。 
+.TP 3
+\-sigalg algorithm 
+JARファイルの署名に使用する署名アルゴリズムの名前を指定します。
+.br
+.br
+標準署名アルゴリズム名の一覧は、Java暗号化アーキテクチャの
+.na
+\f2付録A\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このアルゴリズムには、JARファイルの署名に使用する秘密鍵との互換性が必要です。このオプションを指定しなかった場合、秘密鍵のタイプに応じてSHA1withDSA、SHA256withRSA、SHA256withECDSAのいずれかが使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、\f2\-providerClass\fPオプションを使用してそのようなプロバイダをユーザーが指定する必要があります。そうでない場合、コマンドの実行が失敗します。 
+.TP 3
+\-digestalg algorithm 
+JARファイルのエントリをダイジェストする際に使用するメッセージ・ダイジェスト・アルゴリズムの名前を指定します。
+.br
+.br
+メッセージ・ダイジェスト・アルゴリズム名の一覧は、Java暗号化アーキテクチャの
+.na
+\f2付録A\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このオプションを指定しなかった場合、SHA256が使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、\f2\-providerClass\fPオプションを使用してそのようなプロバイダをユーザーが指定する必要があります。そうでない場合、コマンドの実行が失敗します。 
+.TP 3
+\-signedjar file 
+署名付きJARファイルの名前を指定します。
+.br
+.br
+コマンドラインで名前を指定しなかった場合は、入力JARファイル(署名の対象となるJARファイル)の名前と同じ名前が使用されます。つまり、入力JARファイルは署名付きJARファイルによって上書きされます。 
+.TP 3
+\-verify 
+コマンドラインでこのオプションが指定されている場合は、指定されたJARファイルの署名ではなく検証が行われます。検証が成功すると、「jarが検証されました。」というメッセージが表示されます。署名されていないJARファイル、またはサポートされていないアルゴリズム(RSAプロバイダのインストールを終了していない場合のRSAなど)を使用して署名されたJARファイルを検証しようとすると、「jarは署名されていません。(署名が見つからないか、構文解析できません)」というメッセージが表示されます。
+.br
+.br
+署名付きJARファイルは、\f3jarsigner\fPまたはJDK 1.1の\f3javakey\fPツールのどちらかまたは両方を使用して検証できます。
+.br
+.br
+検証の詳細は、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
+キーストアの確認も行われます。コマンドラインでキーストアの値が指定されていない場合、デフォルトのキーストア・ファイルがあれば、検査されます。署名者の公開鍵の証明書がキーストア内のエントリと一致した場合は、次の情報も表示されます。 
+.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ファイル(署名ファイル)には、マニフェスト・ファイル全体のハッシュを含むヘッダーは\f2含まれません\fP。この場合、.SFファイルに含まれるのは、JARファイル内の各ソース・ファイルに関する情報およびハッシュのみです。詳細は、署名(.SF)ファイルを参照してください。
+.br
+.br
+デフォルトでは、最適化のために、このヘッダーが追加されます。ヘッダーが存在する場合は、JARファイルの検証時に、まずヘッダー内のハッシュが、マニフェスト・ファイル全体のハッシュと実際に一致するかどうかが確認されます。一致する場合、検証は次の手順に進みます。ハッシュが一致しない場合は、効率的には劣る方法を使用して検証する必要があります。具体的には、.SFファイル内の各ソース・ファイル情報セクションのハッシュが、マニフェスト・ファイル内の対応するセクションのハッシュと一致するかどうかが確認されます。
+.br
+.br
+詳細は、JARファイルの検証を参照してください。
+.br
+.br
+\f3このオプションは、テストを行う場合には便利ですが、それ以外には使用しないでください。このオプションを使用すると、有益な最適化が行われなくなります。\fP 
+.TP 3
+\-protected 
+\f2true\fPまたは\f2false\fPのいずれか。専用PINリーダーなどの保護された認証パスを介してパスワードを指定する必要がある場合には、この値に\f2true\fPを指定してください。 
+.TP 3
+\-providerClass provider\-class\-name 
+サービス・プロバイダがセキュリティ・プロパティ・ファイル(\f2java.security\fP)のリストに入っていないときに、暗号化サービス・プロバイダのマスター・クラス・ファイルの名前を指定するために使用します。
+.br
+.br
+\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オプションを使用して特定のプロバイダ・インスタンスを選択できます。このオプションの引数は、プロバイダの名前です。
+.br
+.br
+Sun PKCS#11プロバイダの場合、\f2providerName\fPは\f2SunPKCS11\-\fP\f2TokenName\fPという形式になります。ここで\f2TokenName\fPは、プロバイダ・インスタンスが構成された名前の接尾辞です。詳細は
+.na
+\f2構成属性の表\fP @
+.fi
+http://docs.oracle.com/javase/7/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と入力してください。  
+.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の公開鍵証明書をキーストアに配置する必要はありません。
+.br
+.br
+タイムスタンプを生成するために、\f2jarsigner\fPは、
+.na
+\f2RFC 3161\fP @
+.fi
+http://www.ietf.org/rfc/rfc3161.txtで定義されているタイムスタンプ・プロトコル(TSP)を使用してTSAと通信します。成功すると、TSAから返されたタイムスタンプ・トークンは署名ブロック・ファイルの署名とともに保存されます。  
+.TP 3
+\-tsacert alias 
+\f2「\-tsacert alias」\fPがJARファイルの署名時にコマンドラインにある場合、署名のタイムスタンプが生成されます。\f2alias\fPは、キーストア内の現在有効なTSAの公開鍵証明書を示しています。エントリの証明書で、TSAの場所を特定するURLを含むSubject Information Access拡張機能が確認されます。
+.br
+.br
+\f2\-tsacert\fPを使用した場合は、TSAの公開鍵証明書がキーストアに配置されている必要があります。  
+.TP 3
+\-altsigner class 
+代替署名機構を使用することを指定します。完全修飾クラス名で、\f2com.sun.jarsigner.ContentSigner\fP抽象クラスを拡張するクラス・ファイルを指定します。このクラス・ファイルへのパスは、\f2\-altsignerpath\fPオプションによって定義されます。\f2\-altsigner\fPオプションが使用されると、\f2jarsigner\fPは、指定されたクラスが提供する署名機構を使用します。それ以外の場合、\f2jarsigner\fPはデフォルトの署名機構を使用します。
+.br
+.br
+たとえば、\f2com.sun.sun.jarsigner.AuthSigner\fPという名前のクラスが提供する署名機構を使用するには、\f2jarsigner\fPで\f2「\-altsigner com.sun.jarsigner.AuthSigner」\fPというオプションを使用します。 
+.TP 3
+\-altsignerpath classpathlist 
+クラス・ファイル(クラス・ファイル名は前述の\f2\-altsigner\fPオプションで指定します)およびそのクラスが依存するすべてのJARファイルへのパスを指定します。クラス・ファイルがJARファイル内にある場合、以下の例のようにJARファイルへのパスが指定されます。
+.br
+.br
+絶対パスまたは現在のディレクトリからの相対パスを指定できます。\f2classpathlist\fPに複数のパスやJARファイルが含まれる場合には、それらをSolarisの場合はコロン(\f2:\fP)で、Windowsの場合はセミコロン(\f2;\fP)でそれぞれ区切ります。目的のクラスがすでに検索パス内にある場合は、このオプションは不要です。
+.br
+.br
+クラス・ファイルを含む、JARファイルへのパスを指定する例を示します。 
+.nf
+\f3
+.fl
+\-altsignerpath /home/user/lib/authsigner.jar
+.fl
+\fP
+.fi
+JARファイル名が含まれていることに注意してください。
+.br
+.br
+クラス・ファイルを含むJARファイルへのパスを指定する例を示します。 
+.nf
+\f3
+.fl
+\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/
+.fl
+\fP
+.fi
+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ファイルがあるとします。このファイルに、workingというディレクトリのmystoreというキーストアにあるキーストアの別名がjaneであるユーザーの秘密鍵を使用して、署名を付けるとします。次のコマンドを実行すると、JARファイルに署名を付けてsbundle.jarという署名付きJARファイルを作成できます。
+.LP
+.nf
+\f3
+.fl
+    jarsigner \-keystore /working/mystore \-storepass \fP\f4<keystore password>\fP\f3
+.fl
+      \-keypass \fP\f4<private key password>\fP\f3 \-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
+\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 = signature was verified
+.fl
+      m = entry is listed in manifest
+.fl
+      k = at least one certificate was found in keystore
+.fl
+
+.fl
+    jar verified.
+.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 = signature was verified
+.fl
+      m = entry is listed in manifest
+.fl
+      k = at least one certificate was found in keystore
+.fl
+
+.fl
+    jar verified.
+.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 = signature was verified
+.fl
+      m = entry is listed in manifest
+.fl
+      k = at least one certificate was found in keystore
+.fl
+      i = at least one certificate was found in identity scope
+.fl
+
+.fl
+    jar verified.
+.fl
+\fP
+.fi
+
+.LP
+.LP
+別名dukeは角括弧で囲まれているので、この別名はキーストアの別名ではなく、アイデンティティ・データベースの別名です。
+.LP
+.SH "警告"
+.LP
+署名/検証処理中には、jarsignerから様々な警告が表示される可能性があります。これらの警告コードは次のように定義されています。 
+.nf
+\f3
+.fl
+         hasExpiringCert         2
+.fl
+             This jar contains entries whose signer certificate will expire within six months
+.fl
+
+.fl
+         hasExpiredCert          4
+.fl
+             This jar contains entries whose signer certificate has expired.
+.fl
+
+.fl
+         notYetValidCert         4
+.fl
+             This jar contains entries whose signer certificate is not yet valid.
+.fl
+
+.fl
+         chainNotValidated       4
+.fl
+             This jar contains entries whose certificate chain cannot be correctly validated.
+.fl
+
+.fl
+         badKeyUsage             8
+.fl
+             This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing.
+.fl
+
+.fl
+         badExtendedKeyUsage     8
+.fl
+             This jar contains entries whose signer certificate's ExtendedKeyUsage extension
+.fl
+             doesn't allow code signing.
+.fl
+
+.fl
+         badNetscapeCertType     8
+.fl
+             This jar contains entries whose signer certificate's NetscapeCertType extension
+.fl
+             doesn't allow code signing.
+.fl
+
+.fl
+         hasUnsignedEntry        16
+.fl
+             This jar contains unsigned entries which have not been integrity\-checked.
+.fl
+
+.fl
+         notSignedByAlias        32
+.fl
+             This jar contains signed entries which are not signed by the specified alias(es)
+.fl
+
+.fl
+         aliasNotInStore         32
+.fl
+             This jar contains signed entries that are not signed by alias in this keystore
+.fl
+
+.fl
+\fP
+.fi
+
+.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が作成して管理していたアイデンティティ・データベースに代わるものです。キーストア形式と、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ファイルを検証できます。したがって、Java 2 SDKのキーストアではなくJDK 1.1のアイデンティティ・データベースからの署名者別名を認識し、これらを対象に処理を行うことができます。 
+.RE
+
+.LP
+.LP
+次の表は、JDK 1.1.xで署名されたJARファイルが、Java 2プラットフォームでどのように扱われるかを示しています。
+.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 82 83 84
+.nr 34 \n(.lu
+.eo
+.am 80
+.br
+.di a+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(80 .ll \n(80u
+.in 0
+\f3JARファイルのタイプ\fP
+.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/6u
+.if \n(.l<\n(81 .ll \n(81u
+.in 0
+\f31.1データベース内のアイデンティティ\fP
+.br
+.di
+.nr b| \n(dn
+.nr b- \n(dl
+..
+.ec \
+.eo
+.am 82
+.br
+.di c+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(82 .ll \n(82u
+.in 0
+\f31.1データベースからJava 2 Platformキーストアにインポートされる信頼できるアイデンティティ(4)\fP
+.br
+.di
+.nr c| \n(dn
+.nr c- \n(dl
+..
+.ec \
+.eo
+.am 83
+.br
+.di d+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(83 .ll \n(83u
+.in 0
+\f3ポリシー・ファイルがアイデンティティ/別名に特権を付与\fP
+.br
+.di
+.nr d| \n(dn
+.nr d- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di e+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権
+.br
+.di
+.nr e| \n(dn
+.nr e- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di f+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権
+.br
+.di
+.nr f| \n(dn
+.nr f- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di g+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権
+.br
+.di
+.nr g| \n(dn
+.nr g- \n(dl
+..
+.ec \
+.eo
+.am 81
+.br
+.di h+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(81 .ll \n(81u
+.in 0
+はい/信頼できない
+.br
+.di
+.nr h| \n(dn
+.nr h- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di i+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権(3)
+.br
+.di
+.nr i| \n(dn
+.nr i- \n(dl
+..
+.ec \
+.eo
+.am 81
+.br
+.di j+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(81 .ll \n(81u
+.in 0
+はい/信頼できない
+.br
+.di
+.nr j| \n(dn
+.nr j- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di k+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権(1、3)
+.br
+.di
+.nr k| \n(dn
+.nr k- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di l+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権とポリシー・ファイル内で付与される特権
+.br
+.di
+.nr l| \n(dn
+.nr l- \n(dl
+..
+.ec \
+.eo
+.am 84
+.br
+.di m+
+.35
+.ft \n(.f
+.ll \n(34u*1u/6u
+.if \n(.l<\n(84 .ll \n(84u
+.in 0
+すべてのコードに付与されるデフォルトの特権とポリシー・ファイル内で付与される特権(2)
+.br
+.di
+.nr m| \n(dn
+.nr m- \n(dl
+..
+.ec \
+.35
+.nf
+.ll \n(34u
+.nr 80 0
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名のないJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.nr 38 \w署名付きJAR
+.if \n(80<\n(38 .nr 80 \n(38
+.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いいえ
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wいいえ
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wいいえ
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wいいえ
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wはい/信頼できる
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wはい/信頼できる
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wはい/信頼できる
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \wはい/信頼できる
+.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(h-
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 38 \n(j-
+.if \n(81<\n(38 .nr 81 \n(38
+.nr 82 0
+.nr 38 \wいいえ
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wいいえ
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wはい
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wいいえ
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wいいえ
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wはい
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wはい
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wいいえ
+.if \n(82<\n(38 .nr 82 \n(38
+.nr 38 \wはい
+.if \n(82<\n(38 .nr 82 \n(38
+.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いいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wいいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wいいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wいいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wはい
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wはい
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wはい
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wいいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.nr 38 \wいいえ
+.if \n(83<\n(38 .nr 83 \n(38
+.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
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \wすべての特権
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \wすべての特権(1)
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \wすべての特権(1)
+.if \n(84<\n(38 .nr 84 \n(38
+.84
+.rm 84
+.nr 38 \n(e-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(f-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(g-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(i-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(k-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(l-
+.if \n(84<\n(38 .nr 84 \n(38
+.nr 38 \n(m-
+.if \n(84<\n(38 .nr 84 \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 42 \n(81+(3*\n(38)
+.nr 82 +\n(42
+.nr 43 \n(82+(3*\n(38)
+.nr 83 +\n(43
+.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 1090 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
+.ne \n(b|u+\n(.Vu
+.ne \n(c|u+\n(.Vu
+.ne \n(d|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)
+.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v)
+.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v)
+.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
+.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(##u-1v
+.nr 37 \n(42u
+.in +\n(37u
+.c+
+.in -\n(37u
+.mk 32
+.if \n(32>\n(31 .nr 31 \n(32
+.sp |\n(##u-1v
+.nr 37 \n(43u
+.in +\n(37u
+.d+
+.in -\n(37u
+.mk 32
+.if \n(32>\n(31 .nr 31 \n(32
+.sp |\n(31u
+.ne \n(e|u+\n(.Vu
+.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v)
+.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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(44u
+.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 \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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(44u
+.in +\n(37u
+.f+
+.in -\n(37u
+.mk 32
+.if \n(32>\n(31 .nr 31 \n(32
+.sp |\n(31u
+.ne \n(g|u+\n(.Vu
+.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v)
+.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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(44u
+.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 \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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(41u
+.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(44u
+.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 \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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(41u
+.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(44u
+.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
+.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v)
+.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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(44u
+.in +\n(37u
+.l+
+.in -\n(37u
+.mk 32
+.if \n(32>\n(31 .nr 31 \n(32
+.sp |\n(31u
+.ne \n(m|u+\n(.Vu
+.if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v)
+.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'
+.mk ##
+.nr 31 \n(##
+.sp |\n(##u-1v
+.nr 37 \n(44u
+.in +\n(37u
+.m+
+.in -\n(37u
+.mk 32
+.if \n(32>\n(31 .nr 31 \n(32
+.sp |\n(31u
+.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'すべての特権
+.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)
+.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)
+.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.-50
+
+.LP
+.LP
+注意:
+.LP
+.RS 3
+.TP 3
+1.
+ポリシー・ファイル内にアイデンティティ/別名についての言及がある場合、それをキーストアにインポートして、付与された特権にポリシー・ファイルの設定が反映されるようにする必要があります。 
+.TP 3
+2.
+ポリシー・ファイル/キーストアの組合せは、アイデンティティ・データベース内の信頼できるアイデンティティよりも優先されます。 
+.TP 3
+3.
+Java 2プラットフォームでは、信頼できないアイデンティティは無視されます。 
+.TP 3
+4.
+Java 2 SDKキーストアにインポートできるのは、信頼できるアイデンティティのみです。 
+.RE
+
+.LP
+.SH "関連項目"
+.LP
+.RS 3
+.TP 2
+o
+jar(1)ツールのドキュメント 
+.TP 2
+o
+keytool(1)ツールのドキュメント 
+.TP 2
+o
+\f3jarsigner\fPツールの使用例は、
+.na
+\f4Javaチュートリアル\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/index.htmlの
+.na
+\f4セキュリティ\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/security/index.htmlを参照 
+.RE
+
+.LP
+ 
--- a/src/bsd/doc/man/ja/java.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/java.1	Sat Apr 19 01:32:17 2014 -0700
@@ -1,4 +1,4 @@
-." Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved.
+." Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved.
 ." 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,6 +19,632 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH java 1 "07 May 2011"
+.TH java 1 "05 Jul 2012"
 
 .LP
+.SH "名前"
+java \- Javaアプリケーション起動ツール
+.LP
+.RS 3
+.TP 2
+o
+形式 
+.TP 2
+o
+説明 
+.TP 2
+o
+オプション 
+.TP 2
+o
+関連項目 
+.RE
+
+.LP
+.SH "形式"
+.LP
+.nf
+\f3
+.fl
+    \fP\f3java\fP [ options ] class [ argument ... ]
+.fl
+    \f3java\fP [ options ] \f3\-jar\fP file.jar [ argument ... ]
+.fl
+.fi
+
+.LP
+.RS 3
+.TP 3
+options 
+コマンドライン・オプション。 
+.TP 3
+class 
+呼び出されるクラスの名前。 
+.TP 3
+file.jar 
+呼び出されるJARファイルの名前。\f2\-jar\fPとともにのみ使用されます。 
+.TP 3
+argument 
+\f3main\fP関数に渡される引数。 
+.RE
+
+.LP
+.SH "説明"
+.LP
+.LP
+\f3java\fPツールは、Javaアプリケーションを起動します。javaツールは、Java Runtime Environmentを起動した後、指定されたクラスをロードし、そのクラスの\f3main\fPメソッドを呼び出すことにより、Javaアプリケーションを起動します。
+.LP
+.LP
+このメソッドは、publicおよびstaticとして宣言する必要があります。また、値は返せません。さらに、\f2String\fP配列をパラメータとして指定できる必要があります。メソッドの宣言は、次のようになっている必要があります。
+.LP
+.nf
+\f3
+.fl
+public static void main(String args[])
+.fl
+\fP
+.fi
+
+.LP
+.LP
+デフォルトでは、コマンドライン・オプション以外の最初の引数が、呼び出されるクラスの名前になります。この名前には、完全修飾クラス名を使用する必要があります。\f3\-jar\fPオプションを指定した場合、コマンドライン・オプション以外の最初の引数が、アプリケーションのクラス・ファイルとリソース・ファイルを含む\f3JAR\fPアーカイブの名前になります。この場合、マニフェストの\f3Main\-Class\fPヘッダーで指定されたクラスが起動クラスになります。
+.LP
+.LP
+Java Runtimeは、ブートストラップ・クラス・パス、インストール済拡張機能およびユーザー・クラス・パスの3箇所から起動クラスと他の使用されているクラスを検索します。
+.LP
+.LP
+クラス名またはJARファイル名の後にある、コマンドライン・オプション以外の引数は、\f3main\fP関数に渡されます。
+.LP
+.SH "オプション"
+.LP
+.LP
+起動ツールには、現在の実行環境および将来のリリースでサポートされる標準オプションがあります。また、仮想マシンの現在の実装では、非標準オプションのセットもサポートされます。これは、将来のリリースで変更される可能性があります。
+.LP
+.SH "標準オプション"
+.LP
+.RS 3
+.TP 3
+\-client 
+Java HotSpot Client VMを選択します。64ビット対応JDKは現時点では、このオプションを無視し、かわりにJava Hotspot Server VMを使用します。
+.br
+.br
+デフォルトのVMの選択については、
+.na
+\f2サーバー \- クラス・マシンの検出\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.htmlを参照してください。 
+.TP 3
+\-server 
+Java HotSpot Server VMを選択します。64ビット対応JDK上では、サポートされるのはJava Hotspot Server VMのみであるため、\-serverオプションが暗黙的に選択されます。
+.br
+.br
+デフォルトのVMの選択については、
+.na
+\f2サーバー \- クラス・マシンの検出\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.htmlを参照してください。 
+.TP 3
+\-agentlib:libname[=options] 
+ネイティブ・エージェント・ライブラリ\f2libname\fPをロードします。たとえば次のように指定します。
+.br
+.br
+\-agentlib:hprof
+.br
+.br
+\-agentlib:jdwp=help
+.br
+.br
+\-agentlib:hprof=help
+.br
+.br
+詳細は、
+.na
+\f2JVMTIエージェントのコマンドライン・オプション\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#startingを参照してください。 
+.TP 3
+\-agentpath:pathname[=options] 
+フルパス名を使用して、ネーティブ・エージェント・ライブラリをロードします。詳細は、
+.na
+\f2JVMTIエージェントのコマンドライン・オプション\fP @
+.fi
+http://docs.oracle.com/javase/7/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環境変数の設定がオーバーライドされます。
+.br
+.br
+\f3\-classpath\fPも\f3\-cp\fPも使用されず、\f3CLASSPATH\fPも設定されていない場合、ユーザー・クラス・パスは現在のディレクトリ(\f4.\fP)になります。  
+.br
+.br
+便宜上、\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仮想マシンの起動前に実行されます。したがって、環境に問合せを行わない限り、Javaプログラムが展開されていないワイルドカードを認識することはありません。たとえば、\f2System.getenv(\\"CLASSPATH\\")\fP呼出しがその例です。  
+.br
+.br
+クラス・パスの詳細は、
+.na
+\f2クラス・パスの設定\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#classpathを参照してください。 
+.TP 3
+\-Dproperty=value 
+システム・プロパティの値を設定します。 
+.TP 3
+\-d32 
+.TP 3
+\-d64 
+それぞれ32ビット環境、64ビット環境でプログラムを実行することをリクエストします。リクエストされた環境がインストールされていないかサポートされていない場合は、エラーが報告されます。
+.br
+.br
+現在のところ、Java HotSpot Server VMのみが64ビットの操作をサポートしているため、\-d64使用時には\-serverオプションが暗黙的に使用されます。したがって、\-d64使用時には「\-client」オプションは無視されます。この仕様は、将来のリリースでは変更になる可能性があります。
+.br
+.br
+\f3\-d32\fPと\f3\-d64\fPがどちらも指定されていない場合は、デフォルトとして、32ビット環境で実行されます。この仕様は、将来のリリースでは変更になる可能性があります。 
+.TP 3
+\-enableassertions[:<package name>"..." | :<class name> ] 
+.TP 3
+\-ea[:<package name>"..." | :<class name> ] 
+.TP 3
+\-disableassertions[:<package name>"..." | :<class name> ] 
+.TP 3
+\-da[:<package name>"..." | :<class name> ] 
+アサーションを無効にします。これがデフォルトです。
+.br
+.br
+引数なしの\f3disableassertions\fPまたは\f3\-da\fPを指定すると、アサーションが無効になります。「\f2...\fP」で終わる引数を1つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが無効になります。引数として「\f2...\fP」のみを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが無効になります。「\f2...\fP」で終わらない引数を1つ指定すると、指定したクラス内でアサーションが無効になります。
+.br
+.br
+パッケージ\f2com.wombat.fruitbat\fP内ではアサーションを有効にし、クラス\f2com.wombat.fruitbat.Brickbat\fP内ではアサーションを無効にしたうえで、プログラムを実行するには、次のようなコマンドを使用します。 
+.nf
+\f3
+.fl
+java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat \fP\f4<Main Class>\fP\f3
+.fl
+\fP
+.fi
+\f3\-disableassertions\fPおよび\f3\-da\fPスイッチは、\f2すべての\fPクラス・ローダーおよびシステム・クラスに適用されます。システム・クラスにはクラス・ローダーはありません。ただし、このルールには1つ例外があります。それは、引数なしの形式でこのスイッチを指定すると、その指定がシステムに適用\f2されない\fP、ということです。この例外を利用すれば、システム・クラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステム・クラスでアサーションを無効にするために、別のスイッチが用意されています。この後の\f3\-disablesystemassertions\fPを参照してください。 
+アサーションを有効にします。アサーションは、デフォルトでは無効になっています。
+.br
+.br
+引数なしの\f3enableassertions\fPまたは\f3\-ea\fPを指定すると、アサーションが有効になります。「\f2...\fP」で終わる引数を1つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが有効になります。引数として「\f2...\fP」のみを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが有効になります。「\f2...\fP」で終わらない引数を1つ指定すると、指定したクラス内でアサーションが有効になります。
+.br
+.br
+単一コマンドラインにこれらのスイッチのインスタンスを複数指定した場合は、指定したスイッチが順番に処理されてからクラスがロードされます。したがって、たとえば、パッケージ\f2com.wombat.fruitbat\fP(サブパッケージを含む)内でのみアサーションを有効にしてプログラムを実行するには、次のようなコマンドを使用します。 
+.nf
+\f3
+.fl
+java \-ea:com.wombat.fruitbat... <Main Class>
+.fl
+\fP
+.fi
+\f3\-enableassertions\fPおよび\f3\-ea\fPスイッチは、\f2すべての\fPクラス・ローダーおよびシステム・クラスに適用されます。システム・クラスにはクラス・ローダーはありません。ただし、このルールには1つ例外があります。それは、引数なしの形式でこのスイッチを指定すると、その指定がシステムに適用\f2されない\fP、ということです。この例外を利用すれば、システム・クラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステム・クラスでアサーションを無効にするために、別のスイッチが用意されています。この後の\f3\-enablesystemassertions\fPを参照してください。 
+.TP 3
+\-enablesystemassertions 
+.TP 3
+\-esa 
+すべてのシステム・クラス内でアサーションを有効にします。つまり、システム・クラスについて\f2アサーションのデフォルト・ステータス\fPを\f2true\fPに設定します。 
+.TP 3
+\-disablesystemassertions 
+.TP 3
+\-dsa 
+すべてのシステム・クラス内でアサーションを無効にします。 
+.TP 3
+\-helpまたは\-? 
+使用方法を表示して終了します。 
+.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)と、
+.na
+\f2Javaチュートリアル\fP @
+.fi
+http://docs.oracle.com/javase/tutorial/deployment/jar/の「Trail: Jar Files」を参照してください。\ 
+.br
+.br
+このオプションを使用すると、指定したJARファイルがすべてのユーザー・クラスのソースになり、ユーザー・クラス・パスの他の設定は無視されます。
+.br
+.br
+「java \-jar」オプションで実行できるJARファイルは、実行権限のセットを保持しています。このため、「java \-jar」を使用しないで実行することも可能です。
+.na
+\f2Java Archive(JAR)ファイル\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/jar/index.htmlを参照してください。 
+.TP 3
+\-javaagent:jarpath[=options] 
+Javaプログラミング言語エージェントをロードします。
+.na
+\f2java.lang.instrument\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/package\-summary.htmlを参照してください。 
+.TP 3
+\-jre\-restrict\-search 
+ユーザー・プライベートなJREをバージョン検索に含めます。 
+.TP 3
+\-no\-jre\-restrict\-search 
+ユーザー・プライベートなJREをバージョン検索から除外します。 
+.TP 3
+\-showversion 
+バージョン情報を表示して続行します。(関連項目: \f3\-version\fP。) 
+.TP 3
+\-splash:imagepath 
+\f2imagepath\fPに指定された画像を含むスプラッシュ画面を表示します。 
+.TP 3
+\-verbose 
+.TP 3
+\-verbose:class 
+クラスがロードされるたびにクラスに関する情報を表示します。 
+.TP 3
+\-verbose:gc 
+ガベージ・コレクション・イベントが発生するたびに報告します。 
+.TP 3
+\-verbose:jni 
+ネイティブ・メソッドの使用およびその他のJava Native Interface(JNI)アクティビティに関する情報を報告します。 
+.TP 3
+\-version 
+バージョン情報を表示して終了します。(関連項目: \f3\-showversion\fP。) 
+.TP 3
+\-version:release 
+コマンドラインに指定されたクラスまたはJARファイルが、\f2release\fPで指定されたバージョンを必要としていることを示します。起動されたjavaコマンドのバージョンがこの指定内容を満たさず、かつ適切な実装がシステム上で見つかった場合には、その適切な実装が使用されます。
+.br
+.br
+\f2release\fPでは、特定のバージョンを指定できるのみでなく、バージョン文字列と呼ばれるバージョンのリストを指定することもできます。バージョン文字列は、いくつかのバージョン範囲を空白で区切った形式の順序付きリストです。バージョン範囲は、バージョンID、バージョンIDの後にアスタリスク(*)を付加したもの、バージョンIDの後にプラス記号(+)を付加したもの、2つのバージョン範囲をアンパサンド(&)で結合したもの、のいずれかになります。アスタリスクはプレフィックス一致を、プラス記号は指定されたバージョン以上を、アンパサンドは2つのバージョン範囲の論理積を、それぞれ意味します。次に例を示します。 
+.nf
+\f3
+.fl
+\-version:"1.6.0_13 1.6*&1.6.0_10+"
+.fl
+\fP
+.fi
+上記の意味は、バージョン1.6.0_13、1.6をバージョンIDプレフィックスに持つ1.6.0_10以上のバージョン、のいずれかをクラスまたはJARファイルが必要としている、ということです。バージョン文字列の厳密な構文や定義については、「Java Network Launching Protocol&API Specification(JSR\-56)」の「Appendix A」を参照してください。
+.br
+.br
+JARファイルの場合は通常、バージョン要件をコマンドラインに指定するよりも、JARファイルのマニフェスト内に指定することが推奨されています。
+.br
+.br
+このオプションの使用に関する重要なポリシー情報については、後述の注意を参照してください。 
+.RE
+
+.LP
+.SS 
+非標準オプション
+.LP
+.RS 3
+.TP 3
+\-X 
+非標準オプションに関する情報を表示して終了します。 
+.TP 3
+\-Xint 
+インタプリタ専用モードで動作します。ネイティブ・コードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot VMに対応するコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。 
+.TP 3
+\-Xbatch 
+バックグラウンド・コンパイルを無効にします。通常、VMでは、バックグラウンド・コンパイルが終了するまで、メソッドをバックグラウンド・タスクとしてコンパイルし、インタプリタ・モードでメソッドを実行します。\f2\-Xbatch\fPフラグを指定すると、バックグラウンド・コンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンド・タスクとして処理されます。 
+.TP 3
+\-Xbootclasspath:bootclasspath 
+ブート・クラス・ファイルを検索するディレクトリ、JARアーカイブおよびZIPアーカイブのリストをコロンで区切って指定します。指定したパスに存在するブート・クラス・ファイルが、JavaプラットフォームJDKに含まれるブート・クラス・ファイルのかわりに使用されます。\f2注意: rt.jar内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environmentバイナリ・コード・ライセンス違反になります。\fP 
+.TP 3
+\-Xbootclasspath/a:path 
+ディレクトリ、JARアーカイブおよびZIPアーカイブのパスをコロンで区切って指定します。パスはデフォルトのブートストラップ・クラス・パスの後に追加されます。 
+.TP 3
+\-Xbootclasspath/p:path 
+ディレクトリ、JARアーカイブおよびZIPアーカイブのパスをコロンで区切って指定します。パスはデフォルトのブートストラップ・クラス・パスの前に追加されます。\f2注意: rt.jar内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environmentバイナリ・コード・ライセンス違反になります。\fP 
+.TP 3
+\-Xcheck:jni 
+Java Native Interface(JNI)機能に対して追加チェックを行います。具体的には、Java仮想マシンはJNIリクエストを処理する前に、JNI関数に渡されるパラメータと、実行環境のデータを検証します。無効なデータが見つかった場合は、ネイティブ・コードに問題があることを示しているため、Java仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。 
+.TP 3
+\-Xfuture 
+クラスとファイルの形式を厳密にチェックします。下位互換性を保つため、JDKの仮想マシンが実行するデフォルトの形式チェックは、JDKソフトウェアのバージョン1.1.xが実行するチェックと同程度の厳密さになっています。\f3\-Xfuture\fPフラグを指定すると、クラス・ファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Javaアプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお薦めします。 
+.TP 3
+\-Xnoclassgc 
+クラスのガベージ・コレクションを無効にします。このオプションを使用すると、ロード済クラスからメモリーが回復されることがなくなるため、全体的なメモリー使用量が増大します。この場合、アプリケーションによってはOutOfMemoryErrorがスローされる可能性があります。 
+.TP 3
+\-Xincgc 
+インクリメンタル・ガベージ・コレクタを有効にします。インクリメンタル・ガベージ・コレクタは、デフォルトでは無効になっています。有効にすると、プログラムの実行中にガベージ・コレクションによる一時停止が発生しなくなります。インクリメンタル・ガベージ・コレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。 
+.TP 3
+\-Xloggc:file 
+\-verbose:gcと同様にガベージ・コレクション・イベントが発生するたびに報告しますが、そのデータを\f2file\fPに記録します。\f2\-verbose:gc\fPを指定したときに報告される情報の他に、報告される各イベントの先頭に、最初のガベージ・コレクション・イベントからの経過時間(秒単位)が付け加えられます。
+.br
+.br
+ネットワークのレスポンス時間によってJVMの実行速度が低下するのを避けるため、このファイルの格納先は、常にローカル・ファイル・システムにしてください。ファイル・システムが満杯になると、ファイルは切り詰められ、そのファイルにデータが引続き記録されます。このオプションと\f2\-verbose:gc\fPの両方がコマンドラインに指定されている場合は、このオプションが優先されます。 
+.TP 3
+\-Xmnsizeまたは\-XX:NewSize 
+若い世代(ナーサリ)のサイズを設定します。 
+.TP 3
+\-Xmsn 
+メモリー割当プールの初期サイズをバイト数で指定します。指定する値は、1MBより大きい1024の倍数にする必要があります。キロバイトを指定するには、文字\f2k\fPまたは\f2K\fPを付けます。メガバイトを指定するには、文字\f2m\fPまたは\f2M\fPを付けます。デフォルト値は、実行時にシステム構成に基づいて選択されます。詳細は、
+.na
+\f2HotSpot Ergonomics\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.htmlを参照してください。
+.br
+.br
+例: 
+.nf
+\f3
+.fl
+       \-Xms6291456
+.fl
+       \-Xms6144k
+.fl
+       \-Xms6m
+.fl
+
+.fl
+\fP
+.fi
+.TP 3
+\-Xmxn 
+メモリー割当プールの最大サイズをバイト数で指定します。指定する値は、2MBより大きい1024の倍数にする必要があります。キロバイトを指定するには、文字\f2k\fPまたは\f2K\fPを付けます。メガバイトを指定するには、文字\f2m\fPまたは\f2M\fPを付けます。デフォルト値は、実行時にシステム構成に基づいて選択されます。詳細は、
+.na
+\f2HotSpot Ergonomics\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.htmlを参照してください。
+.br
+.br
+例: 
+.nf
+\f3
+.fl
+       \-Xmx83886080
+.fl
+       \-Xmx81920k
+.fl
+       \-Xmx80m
+.fl
+
+.fl
+\fP
+.fi
+Solaris 7およびSolaris 8 SPARCプラットフォームの場合のこの値の上限は、およそ4000mからオーバーヘッドの量を引いたものです。Solaris 2.6およびx86プラットフォームの場合の上限は、およそ2000mからオーバーヘッドの量を引いたものです。Linuxプラットフォームの場合の上限は、およそ2000mからオーバーヘッドの量を引いたものです。 
+.TP 3
+\-Xprof 
+実行中のプログラムのプロファイルを生成し、プロファイル・データを標準出力に出力します。このオプションは、プログラム開発用のユーティリティとして提供されています。本番稼働システムでの使用を目的としたものではありません。  
+.TP 3
+\-Xrs 
+Java仮想マシン(JVM)によるオペレーティング・システム・シグナルの使用を減らします。
+.br
+.br
+以前のリリースでは、Javaアプリケーションを秩序正しくシャットダウンするためのシャットダウン・フック機能が追加されました。この機能により、JVMが突然終了した場合でも、シャットダウン時にユーザー・クリーン・アップコード(データベース接続のクローズなど)を実行できるようになりました。
+.br
+.br
+Sun社のJVMは、シグナルをキャッチすることによって、JVMの異常終了のためのシャットダウン・フックを実装します。JVMは、SIGHUP、SIGINTおよびSIGTERMを使用して、シャットダウン・フックの実行を開始します。
+.br
+.br
+JVMは、デバッグの目的でスレッド・スタックをダンプするという、1.2より前からある機能を実現するためにも、同様の機構を使用します。Sun社のJVMは、スレッド・ダンプを実行するためにSIGQUITを使用します。
+.br
+.br
+JVMを埋め込んでいるアプリケーションがSIGINTやSIGTERMなどのシグナルを頻繁にトラップする必要があると、JVMそのもののシグナル・ハンドラの処理に支障が出る可能性があります。\f3\-Xrs\fPコマンドライン・オプションを使用すると、この問題に対処できます。Sun社のJVMに対して\f3\-Xrs\fPを使用すると、SIGINT、SIGTERM、SIGHUPおよびSIGQUITに対するシグナル・マスクはJVMによって変更されず、これらのシグナルに対するシグナル・ハンドラはインストールされません。
+.br
+.br
+\f3\-Xrs\fPを指定した場合、次の2つの影響があります。 
+.RS 3
+.TP 2
+o
+SIGQUITによるスレッド・ダンプは使用できません。 
+.TP 2
+o
+シャットダウン・フック処理の実行は、JVMが終了しようとしている時点でSystem.exit()を呼び出すなどして、ユーザー・コード側で行う必要があります。 
+.RE
+.TP 3
+\-Xssn 
+スレッドのスタック・サイズを設定します。 
+.TP 3
+\-XX:AllocationPrefetchStyle=n 
+割当中に使用されるプリフェッチのスタイルを設定します。デフォルトは2です。
+.br
+.TP 3
+\-XX:+AggressiveOpts 
+積極的な最適化を有効にします。
+.br
+.TP 3
+\-XX:+|\-DisableAttachMechanism 
+このオプションは、ツール(\f2jmap\fPおよび\f2jconsole\fPなど)がJVMに接続できるかどうかを指定します。デフォルトでは、この機能は無効になっています。つまり、接続は有効です。使用例: 
+.nf
+\f3
+.fl
+      java \-XX:+DisableAttachMechanism
+.fl
+\fP
+.fi
+.TP 3
+\-XXLargePageSizeInBytes=n 
+このオプションは、ラージ・ページの最大サイズを指定します。 
+.TP 3
+\-XX:MaxGCPauseMillis=n 
+最大GC休止時間のターゲットを設定します。
+.br
+これはソフト・ゴールのため、JVMは実現のために最善の努力をします。デフォルトで設定されている最大値はありません。 
+.TP 3
+\-XX:NewSize 
+若い世代(ナーサリ)のサイズを設定します。\f3\-Xmn\fP\f4size\fPと同じです。 
+.TP 3
+\-XX:ParallelGCThreads=n 
+パラレル・コレクタ内のGCスレッドの数を設定します。
+.br
+.TP 3
+\-XX:PredictedClassLoadCount=n 
+このオプションでは、最初に\f3UnlockExperimentalVMOptions\fPフラグを設定する必要があります。アプリケーションが多数のクラスをロードする場合で、特に\f3class.forName()\fPが頻繁に使用される場合は\f3PredictedClassLoadCount\fPフラグを使用します。推奨値は、\f3\-verbose:class\fPからの出力に示されているロード済クラスの数です。
+.br
+使用例: 
+.nf
+\f3
+.fl
+      java \-XX:+UnlockExperimentalVMOptions \-XX:PredictedClassLoadCount=60013
+.fl
+\fP
+.fi
+.TP 3
+\-XX:+PrintCompilation 
+HotSpotダイナミック・ランタイム・コンパイラからの詳細出力を印刷します。
+.br
+.TP 3
+\-XX:+PrintGCDetails \-XX:+PrintGCTimeStamps 
+ガベージ・コレクション出力をタイムスタンプとともに印刷します。
+.br
+.TP 3
+\-XX:SoftRefLRUPolicyMSPerMB=0 
+このフラグは、ソフトウェア参照の積極的処理を有効にします。このフラグは、HotSpot GCがソフトウェア参照カウントの影響を受ける場合に使用します。 
+.TP 3
+\-XX:TLABSize=n 
+スレッド・ローカル割当バッファ(TLAB)がHotSpotでデフォルトで有効になっています。HotSpotでは、TLABのサイズを割当パターンに基づいて自動的に決定します。\f3\-XX:TLABSize\fPオプションでTLABのサイズを微調整できます。
+.br
+.TP 3
+\-XX:+UnlockCommercialFeatures 
+このフラグは、商用機能の使用を能動的にロック解除する場合に使用します。商用機能とは、
+.na
+\f2Oracle Java SE Products Webページ\fP @
+.fi
+http://www.oracle.com/technetwork/java/javase/terms/products/index.htmlで規定される製品"Oracle Java SE Advanced"または"Oracle Java SE Suite"です。
+.br
+このフラグが指定されていない場合、デフォルトはJava仮想マシンを使用可能な商用機能なしで実行することです。いったん商用機能を有効にすると、実行時にその使用を無効にすることはできません。 
+.TP 3
+\-XX:+UseAltSigs 
+VMではデフォルトで\f2SIGUSR1\fPおよび\f2SIGUSR2\fPを使用しますが、\f2SIGUSR1\fPおよび\f2SIGUSR2\fPをシグナル連鎖するアプリケーションと競合する場合があります。\f2\-XX:+UseAltSigs\fPオプションは、VMにデフォルトとして\f2SIGUSR1\fPと\f2SIGUSR2\fP以外のシグナルを使用させます。 
+.TP 3
+\-XX:+|\-UseCompressedOops 
+64ビットJVMで圧縮参照を有効にします。
+.br
+このオプションはデフォルトでtrueです。
+.br
+.TP 3
+\-XX:+UseConcMarkSweepGCまたは\-XX:+UseG1GC 
+これらのフラグはConcurrent Mark Sweep (CMS)またはG1ガベージ・コレクションを有効にします。
+.br
+.TP 3
+\-XX:+|\-UseLargePages 
+このフラグは、ラージ・ページ・サポートを有効にする場合に使用します。ラージ・ページは、Solarisではデフォルトで有効になっています。
+.br
+.TP 3
+\-XX:+UseParallelOldGC 
+パラレル・ガベージ・コレクタを有効にします。これはスループットおよび平均レスポンス時間に対して最適化されます。
+.br
+.RE
+
+.LP
+.SH "注意"
+.LP
+.LP
+\f3\-version:\fP\f2release\fPコマンドライン・オプションでは、リリース指定の複雑さに制限はありません。ただし、可能なリリース指定の限られたサブセットのみが適切なサウンド・ポリシーを表現でき、それらのみが完全にサポートされます。それらのポリシーを次に示します。
+.LP
+.RS 3
+.TP 3
+1.
+任意のバージョン。これは、このオプションを使用しないことで表現できます。 
+.TP 3
+2.
+ある特定のバージョンIDよりも大きい任意のバージョン。次に例を示します。 
+.nf
+\f3
+.fl
+"1.6.0_10+"
+.fl
+\fP
+.fi
+この場合、\f21.6.0_10\fPよりも大きい任意のバージョンが使用されます。これは、指定されたバージョンで特定のインタフェースが導入された(あるいはそのバグが修正された)場合に便利です。 
+.TP 3
+3.
+ある特定のバージョンIDよりも大きいバージョンで、そのリリース・ファミリの上限によって制限されるもの。次に例を示します。 
+.nf
+\f3
+.fl
+"1.6.0_10+&1.6*"
+.fl
+\fP
+.fi
+.TP 3
+4.
+上の項目2と項目3の「OR」式。次に例を示します。 
+.nf
+\f3
+.fl
+"1.6.0_10+&1.6* 1.7+"
+.fl
+\fP
+.fi
+これは項目2に似ていますが、ある変更が特定のリリース(1.7)で導入されたが、その同じ変更が以前のリリースのアップデートでも利用可能になった、という場合に便利です。 
+.RE
+
+.LP
+.SH "パフォーマンス・チューニングの例"
+.LP
+.LP
+スループットまたはレスポンス時間の高速化のどちらかを最適化するための、試験的なチューニング・フラグの使用例を次に示します。
+.LP
+.SS 
+スループットを向上するためのチューニング
+.LP
+.nf
+\f3
+.fl
+        java \-d64 \-server \-XX:+AggressiveOpts \-XX:+UseLargePages \-Xmn10g  \-Xms26g \-Xmx26g 
+.fl
+\fP
+.fi
+
+.LP
+.SS 
+レスポンス時間を速くするためのチューニング
+.LP
+.nf
+\f3
+.fl
+        java \-d64 \-XX:+UseG1GC \-Xms26g Xmx26g \-XX:MaxGCPauseMillis=500 \-XX:+PrintGCTimeStamps 
+.fl
+\fP
+.fi
+
+.LP
+.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
+o
+javac(1) 
+.TP 2
+o
+jdb(1) 
+.TP 2
+o
+javah(1) 
+.TP 2
+o
+jar(1) 
+.TP 2
+o
+.na
+\f2Java拡張機能フレームワーク\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/extensions/index.html 
+.TP 2
+o
+.na
+\f2セキュリティ\fP @
+.fi
+http://docs.oracle.com/javase/7/docs/technotes/guides/security/index.html 
+.TP 2
+o
+.na
+\f2HotSpot VM Specific Options\fP @
+.fi
+http://www.oracle.com/technetwork/java/javase/tech/vmoptions\-jsp\-140102.html 
+.RE
+
+.LP
+ 
--- a/src/bsd/doc/man/ja/javac.1	Thu Mar 27 11:23:12 2014 -0700
+++ b/src/bsd/doc/man/ja/javac.1	Sat Apr 19 01:32:17 2014 -0700
@@ -19,6 +19,1222 @@
 ." or visit www.oracle.com if you need additional information or have any
 ." questions.
 ."
-.TH javac 1 "07 May 2011"
+.TH javac 1 "05 Jul 2012"
 
 .LP
+.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
+.nf
+\f3
+.fl
+        \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
+.fl
+
+.fl
+.fi
+
+.LP
+.LP
+引数は順不同です。
+.LP
+.RS 3
+.TP 3
+options 
+コマンドライン・オプション。 
+.TP 3
+sourcefiles 
+コンパイルされる1つ以上のソース・ファイル(MyClass.javaなど)。 
+.TP 3
+classes 
+注釈の処理対象となる1つ以上のクラス(MyPackage.MyClassなど)。 
+.TP 3
+@argfiles 
+オプションとソース・ファイルを列挙した1つ以上のファイル。このファイルの中では\f2\-J\fPオプションは指定できません。 
+.RE
+
+.LP
+.SH "説明"
+.LP
+.LP
+\f3javac\fPツールは、Javaプログラミング言語で記述されたクラスとインタフェースの定義を読み取り、バイトコードのクラス・ファイルにコンパイルします。また、Javaソース・ファイルおよびクラス内の注釈の処理も行います。
+.LP
+.LP
+ソース・コードのファイル名を\f3javac\fPに渡すには、次の2つの方法があります。
+.LP
+.RS 3
+.TP 2
+o
+ソース・ファイルの数が少ない場合は、ファイル名をコマンドラインで直接指定します。 
+.TP 2
+o
+ソース・ファイルの数が多い場合は、ファイル名を空白または改行で区切って、1つのファイルに列挙します。次に、このリスト・ファイル名の先頭に\f3@\fPを付けて、\f3javac\fPのコマンドラインで指定します。 
+.RE
+
+.LP
+.LP
+ソース・コードのファイル名は\f2.java\fP拡張子を、クラスのファイル名は\f2.class\fP拡張子を持っている必要があります。また、ソース・ファイルとクラス・ファイルのどちらも、該当するクラスに対応するルート名を持っている必要があります。たとえば、\f2MyClass\fPという名前のクラスは、\f2MyClass.java\fPという名前のソース・ファイルに記述されます。このソース・ファイルは、\f2MyClass.class\fPという名前のバイトコード・クラス・ファイルにコンパイルされます。
+.LP
+.LP
+内部クラスが定義されていると、追加のクラス・ファイルが生成されます。これらのクラス・ファイルの名前は、\f2MyClass$MyInnerClass.class\fPのように、外部クラス名と内部クラス名を組み合せたものになります。
+.LP
+.LP
+ソース・ファイルは、パッケージ・ツリーを反映したディレクトリ・ツリーに配置する必要があります。たとえば、すべてのソース・ファイルを\f3/workspace\fPに置いている場合、\f2com.mysoft.mypack.MyClass\fPのソース・コードは\f3/workspace/com/mysoft/mypack/MyClass.java\fPにある必要があります。
+.LP
+.LP
+デフォルトでは、コンパイラは、各クラス・ファイルを対応するソース・ファイルと同じディレクトリに格納します。別の出力先ディレクトリを指定するには、\f3\-d\fPを使用します(この後のオプションを参照)。
+.LP
+.SH "オプション"
+.LP
+.LP
+コンパイラには、現在の開発環境でサポートされており、将来のリリースでもサポートされる標準オプションのセットがあります。これ以外の非標準オプションは、現在の仮想マシンおよびコンパイラの実装に固有のオプションで、将来に変更される可能性があります。非標準オプションは、\f3\-X\fPで始まります。
+.LP
+.SS 
+標準オプション
+.LP
+.RS 3
+.TP 3
+\-Akey[=value] 
+注釈プロセッサに渡されるオプション。これらは、javacによって直接解釈されず、個々のプロセッサによって使用されます。\f2key\fPには、1つまたは複数の識別子を「.」で区切ったものを指定してください。 
+.TP 3
+\-cppathまたは\-classpathpath 
+ユーザーのクラス・ファイルおよび(場合によっては)注釈プロセッサやソース・ファイルの検索場所を指定します。このクラス・パスは\f3CLASSPATH\fP環境変数のユーザー・クラス・パスをオーバーライドします。\f3CLASSPATH\fP、\f3\-cp\fP、\f3\-classpath\fPのいずれも指定されていない場合、ユーザー・クラス・パスは、現在のディレクトリになります。詳細は、クラス・パスの設定を参照してください。
+.br
+.br
+\f3\-sourcepath\fPオプションが指定されていない場合は、ソース・ファイルもユーザー・クラス・パスから検索されます。
+.br
+.br
+\f3\-processorpath\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になります。
+.br
+.br
+\f3\-d\fPが指定されなかった場合、\f3javac\fPは各クラス・ファイルを、その生成元となるソース・ファイルと同じディレクトリ内に格納します。
+.br
+.br
+\f3注意:\fP \f3\-d\fPで指定したディレクトリはユーザー・クラス・パスに自動的には追加されません。 
+.TP 3
+\-deprecation 
+推奨されないメンバーやクラスが、使用またはオーバーライドされるたびに説明を表示します。\f3\-deprecation\fPが指定されていない場合、\f3javac\fPは、推奨されないメンバーやクラスを使用またはオーバーライドしているソース・ファイルの要約を表示します。\f3\-deprecation\fPは\f3\-Xlint:deprecation\fPの省略表記です。 
+.TP 3
+\-encoding encoding 
+ソース・ファイルのエンコーディング名(\f2EUC\-JPやUTF\-8\fPなど)を指定します。\f3\-encoding\fPが指定されていない場合は、プラットフォームのデフォルト・コンバータが使用されます。  
+.TP 3
+\-endorseddirs directories 
+承認された標準パスの位置をオーバーライドします。 
+.TP 3
+\-extdirs directories 
+\f2ext\fPディレクトリの位置をオーバーライドします。\f2directories\fP変数には、コロンで区切ったディレクトリのリストを指定します。指定したディレクトリ内の各JARアーカイブから、クラス・ファイルが検索されます。見つかったすべてのJARアーカイブは自動的にクラス・パスの一部になります。
+.br
+.br
+クロスコンパイル(異なる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を使用します。このオプションが指定されなかった場合のデフォルト動作は、クラス・ファイルの自動生成になります。その場合、そのようなクラス・ファイルが生成された時に注釈処理も実行されると、コンパイラから警告が発行されます。このオプションが明示的に設定された場合には、警告は発行されません。型の検索を参照してください。  
+.TP 3
+\-Joption 
+\f3javac\fPが呼び出す\f3java\fP起動ツールに、\f2option\fPを渡します。たとえば、\f3\-J\-Xms48m\fPと指定すると、スタートアップ・メモリーは48Mバイトに設定されます。\f3\-J\fPを使用して、Javaで記述されたアプリケーションを実行する背後のVMにオプションを渡すことは、よく行われています。
+.br
+.br
+\f3注意:\fP \f3CLASSPATH\fP、\f3\-classpath\fP、\f3\-bootclasspath\fPおよび\f3\-extdirs\fPは、\f3javac\fPを実行するために使用するクラスを指定するものでは\f2ありません\fP。このような方法でコンパイラの実装を操作することは、通常は無意味であり、常に危険を伴います。このような方法を使用する必要がある場合は、\f3\-J\fPオプションを使用して、必要なオプションを背後の\f3java\fP起動ツールに渡してください。 
+.TP 3
+\-nowarn 
+警告メッセージを無効にします。これは\f3\-Xlint:none\fPと同じ意味です。 
+.TP 3
+\-proc: {none,only} 
+注釈処理、コンパイル、その両方、のいずれを実行するかを制御します。\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内に格納されます。 
+.TP 3
+\-source release 
+受け付けるソース・コードのバージョンを指定します。\f2release\fPには次の値を指定できます。 
+.RS 3
+.TP 3
+1.3 
+このコンパイラでは、Java SE 1.3以降に導入されたアサーション、総称または他の言語機能をサポート\f2しません\fP。 
+.TP 3
+1.4 
+Java SE 1.4で導入された、アサーションを含むコードを受け付けます。 
+.TP 3
+1.5 
+Java SE 5で導入された総称および他の言語機能を含んだコードを受け付けます。 
+.TP 3
+5 
+1.5と同義です。 
+.TP 3
+1.6 
+Java SE 6では言語に対する変更は導入されませんでした。しかし、ソース・ファイル内のエンコーディング・エラーが、Java SE以前のような「警告」ではなく、「エラー」として報告されるようになりました。 
+.TP 3
+6 
+1.6と同義です。 
+.TP 3
+1.7 
+これがデフォルト値です。Java SE 7で導入された機能を含むコードを受け付けます。 
+.TP 3
+7 
+1.7と同義です。 
+.RE
+.TP 3
+\-sourcepath sourcepath 
+クラスまたはインタフェースの定義を検索するソース・コード・パスを指定します。ユーザー・クラス・パスと同様に、ソース・パスの複数のエントリはコロン(\f3:\fP)で区切ります。ソース・パスのエントリには、ディレクトリ、JARアーカイブまたはZIPアーカイブを指定できます。パッケージを使用している場合は、ディレクトリまたはアーカイブ内のローカル・パス名がパッケージ名を反映している必要があります。
+.br
+.br
+\f3注意:\fP クラス・パスからクラスのみでなくそのソースも見つかった場合、そのクラスは自動再コンパイルの対象になることがあります。型の検索を参照してください。 
+.TP 3
+\-verbose 
+詳細な出力を表示します。ロードされるクラスおよびコンパイルされるソース・ファイルごとの情報が出力されます。 
+.TP 3
+\-version 
+バージョン情報を出力します。  
+.TP 3
+\-Werror 
+警告が発生した場合にコンパイルを終了します。 
+.TP 3
+\-X 
+非標準オプションに関する情報を表示して終了します。 
+.RE
+
+.LP
+.SS 
+クロスコンパイル・オプション
+.LP
+.LP
+デフォルトでは、クラスのコンパイルは、\f3javac\fPが添付されているプラットフォームのブートストラップ・クラスおよび拡張機能クラスに対して行われます。ただし、\f3javac\fPは、異なるJavaプラットフォームに実装されたブートストラップ・クラスおよび拡張機能クラスに対してコンパイルを行う「\f2クロスコンパイル\fP」もサポートしています。クロスコンパイルを行う場合は、\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も可)および\f31.7\fP(\f37\fPも可)です。 
+.LP
+\f3\-target\fPのデフォルトは、次のように\f3\-source\fPの値によって決まります。 
+.RS 3
+.TP 2
+o
+\-sourceが\f3指定されなかった\fP場合、\-targetの値は\f31.7\fPになります。 
+.TP 2
+o
+\-sourceが\f31.2\fPの場合、\-targetの値は\f31.4\fPになります。 
+.TP 2
+o
+\-sourceが\f31.3\fPの場合、\-targetの値は\f31.4\fPになります。 
+.TP 2
+o
+\-sourceが\f31.5\fPの場合、\-targetの値は\f31.7\fPになります。 
+.TP 2
+o
+\-sourceが\f31.6\fPの場合、\-targetの値は\f31.7\fPになります。 
+.TP 2
+o
+\-sourceが\f3それ以外の値の場合はすべて\fP、\f3\-target\fPの値は\f3\-source\fPの値になります。 
+.RE
+.TP 3
+\-bootclasspath bootclasspath 
+指定された一連のブート・クラスに対してクロスコンパイルを行います。ユーザー・クラス・パスと同様に、ブート・クラス・パスの複数のエントリはコロン(\f3:\fP)で区切ります。ブート・クラス・パスのエントリには、ディレクトリ、JARアーカイブまたはZIPアーカイブを指定できます。 
+.RE
+
+.LP
+.SS 
+非標準オプション
+.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 
+すべての警告を無効にします。 
+.TP 3
+\-Xlint:name 
+警告\f2name\fPを有効にします。このオプションで有効にできる警告のリストについては、\-Xlintオプションを使用して有効または無効にできる警告を参照してください。 
+.TP 3
+\-Xlint:\-name 
+警告\f2name\fPを無効にします。このオプションで無効にできる警告のリストについては、\-Xlintオプションを使用して有効または無効にできる警告を参照してください。 
+.TP 3
+\-Xmaxerrs number 
+印刷するエラーの最大数を設定します。 
+.TP 3
+\-Xmaxwarns number 
+印刷する警告の最大数を設定します。 
+.TP 3
+\-Xstdout filename 
+コンパイラのメッセージを、指定されたファイルに送ります。デフォルトでは、コンパイラのメッセージは\f2System.err\fPに送られます。 
+.TP 3
+\-Xprefer:{newer,source} 
+ある型に対してソース・ファイルとクラス・ファイルの両方が見つかった場合、そのどちらのファイルを読み取るかを指定します(型の検索を参照)。\f2\-Xprefer:newer\fPを使用した場合、ある型に対するソース・ファイルとクラス・ファイルの新しい方が読み取られます(デフォルト)。\f2\-Xprefer:source\fPオプションを使用した場合、ソース・ファイルが読み取られます。\f2SOURCE\fPの保存ポリシーを使用して宣言された注釈に任意の注釈プロセッサがアクセスできるようにする場合は、\f2\-Xprefer:source\fPを使用してください。  
+.TP 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
+メソッド\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
+switch (x) {
+.fl
+case 1:
+.fl
+       System.out.println("1");
+.fl
+       //  No break statement here.
+.fl
+case 2:
+.fl
+       System.out.println("2");
+.fl
+}
+.fl
+\fP
+.fi
+このコードのコンパイル時に\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
+この例では、コンパイラは\f2finally\fPブロックに関する警告を生成します。このメソッドが呼び出されると、値\f21\fPではなく\f20\fPが返されます。\f2finally\fPブロックは、\f2try\fPブロックが終了すると必ず実行されます。この例では、制御が\f2catch\fPに移された場合、メソッドは終了します。ただし、\f2finally\fPブロックは実行される必要があるため、制御がすでにこのメソッドの外部に移されていても、このブロックは実行されます。 
+.TP 3
+options 
+コマンドライン・オプションの使用に関する問題について警告します。この種の警告の例については、クロスコンパイルの例を参照してください。 
+.TP 3
+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
+コンパイラは次のような警告を生成します。
+.br
+.br
+\f2warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...'\fP
+.br
+.br
+コンパイラは、varargsメソッドを検出すると、varargsの仮パラメータを配列に変換します。メソッド\f2ClassWithVarargsMethod.varargsMethod\fPでは、コンパイラはvarargsの仮パラメータ\f2String... s\fPを仮パラメータ\f2String[] s\fPに変換します。String[] sは、メソッド\f2ClassWithOverridingMethod.varargsMethod\fPの仮パラメータに対応する配列です。その結果、この例ではコンパイルが行われます。 
+.TP 3
+path 
+コマンドラインでの無効なパス要素と存在しないパス・ディレクトリについて警告します(クラス・パス、ソース・パスなどのパス関連)。このような警告を\f2@SuppressWarnings\fP注釈で抑制することはできません。次に例を示します。 
+.nf
+\f3
+.fl
+javac \-Xlint:path \-classpath /nonexistentpath Example.java
+.fl
+\fP
+.fi
+.TP 3
+processing 
+注釈処理に関する問題について警告します。コンパイラがこの警告を生成するのは、注釈を含むクラスがあるときに、使用している注釈プロセッサでそのタイプの例外を処理できない場合です。単純な注釈プロセッサの例を次に示します。
+.br
+.br
+\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;