提交 81fc8dfa 编写于 作者: Y yhuang

Merge

...@@ -90,3 +90,4 @@ b53f226b1d91473ac54184afa827be07b87e0319 jdk7-b112 ...@@ -90,3 +90,4 @@ b53f226b1d91473ac54184afa827be07b87e0319 jdk7-b112
61d3b9fbb26bdef56cfa41b9af5bc312a22cbeb8 jdk7-b113 61d3b9fbb26bdef56cfa41b9af5bc312a22cbeb8 jdk7-b113
e250cef36ea05e627e7e6f7d75e5e19f529e2ba3 jdk7-b114 e250cef36ea05e627e7e6f7d75e5e19f529e2ba3 jdk7-b114
449bad8d67b5808ecf0f927683acc0a5940f8c85 jdk7-b115 449bad8d67b5808ecf0f927683acc0a5940f8c85 jdk7-b115
1657ed4e1d86c8aa2028ab5a41f9da1ac4a369f8 jdk7-b116
...@@ -465,14 +465,11 @@ JAVA_JAVA_java = \ ...@@ -465,14 +465,11 @@ JAVA_JAVA_java = \
java/security/ProtectionDomain.java \ java/security/ProtectionDomain.java \
java/net/URLClassLoader.java \ java/net/URLClassLoader.java \
java/net/URLConnection.java \ java/net/URLConnection.java \
sun/misc/BootClassLoaderHook.java \
sun/misc/Launcher.java \ sun/misc/Launcher.java \
sun/misc/MetaIndex.java \ sun/misc/MetaIndex.java \
sun/misc/URLClassPath.java \ sun/misc/URLClassPath.java \
sun/misc/Version.java \ sun/misc/Version.java \
sun/net/www/protocol/jar/Handler.java \
sun/net/www/protocol/jar/JarURLConnection.java \
sun/net/www/protocol/file/Handler.java \
sun/net/www/protocol/file/FileURLConnection.java \
sun/misc/FileURLMapper.java \ sun/misc/FileURLMapper.java \
sun/misc/MessageUtils.java \ sun/misc/MessageUtils.java \
sun/misc/GC.java \ sun/misc/GC.java \
...@@ -482,6 +479,10 @@ JAVA_JAVA_java = \ ...@@ -482,6 +479,10 @@ JAVA_JAVA_java = \
sun/misc/JavaIOFileDescriptorAccess.java \ sun/misc/JavaIOFileDescriptorAccess.java \
sun/misc/JavaNioAccess.java \ sun/misc/JavaNioAccess.java \
sun/misc/Perf.java \ sun/misc/Perf.java \
sun/misc/PerfCounter.java sun/misc/PerfCounter.java \
sun/net/www/protocol/jar/Handler.java \
sun/net/www/protocol/jar/JarURLConnection.java \
sun/net/www/protocol/file/Handler.java \
sun/net/www/protocol/file/FileURLConnection.java
FILES_java = $(JAVA_JAVA_java) FILES_java = $(JAVA_JAVA_java)
...@@ -69,5 +69,8 @@ CPPFLAGS += \ ...@@ -69,5 +69,8 @@ CPPFLAGS += \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib
OTHER_CFLAGS += -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES OTHER_CFLAGS += -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES
OTHER_LDLIBS = $(LIBM) -ldl
ifneq ($(PLATFORM), windows)
OTHER_LDLIBS = $(LIBM) -ldl
endif
...@@ -45,7 +45,7 @@ public class BMPImageReaderSpi extends ImageReaderSpi { ...@@ -45,7 +45,7 @@ public class BMPImageReaderSpi extends ImageReaderSpi {
private boolean registered = false; private boolean registered = false;
public BMPImageReaderSpi() { public BMPImageReaderSpi() {
super("Sun Microsystems, Inc.", super("Oracle Corporation",
"1.0", "1.0",
formatNames, formatNames,
entensions, entensions,
......
...@@ -50,7 +50,7 @@ public class BMPImageWriterSpi extends ImageWriterSpi { ...@@ -50,7 +50,7 @@ public class BMPImageWriterSpi extends ImageWriterSpi {
private boolean registered = false; private boolean registered = false;
public BMPImageWriterSpi() { public BMPImageWriterSpi() {
super("Sun Microsystems, Inc.", super("Oracle Corporation",
"1.0", "1.0",
formatNames, formatNames,
entensions, entensions,
......
...@@ -36,7 +36,7 @@ import javax.imageio.stream.ImageInputStream; ...@@ -36,7 +36,7 @@ import javax.imageio.stream.ImageInputStream;
public class GIFImageReaderSpi extends ImageReaderSpi { public class GIFImageReaderSpi extends ImageReaderSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -36,7 +36,7 @@ import com.sun.imageio.plugins.common.PaletteBuilder; ...@@ -36,7 +36,7 @@ import com.sun.imageio.plugins.common.PaletteBuilder;
public class GIFImageWriterSpi extends ImageWriterSpi { public class GIFImageWriterSpi extends ImageWriterSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -169,7 +169,7 @@ public class JPEG { ...@@ -169,7 +169,7 @@ public class JPEG {
public static final int ADOBE_YCCK = 2; public static final int ADOBE_YCCK = 2;
// Spi initialization stuff // Spi initialization stuff
public static final String vendor = "Sun Microsystems, Inc."; public static final String vendor = "Oracle Corporation";
public static final String version = "0.5"; public static final String version = "0.5";
// Names of the formats we can read or write // Names of the formats we can read or write
public static final String [] names = {"JPEG", "jpeg", "JPG", "jpg"}; public static final String [] names = {"JPEG", "jpeg", "JPG", "jpg"};
......
...@@ -36,7 +36,7 @@ import javax.imageio.stream.ImageInputStream; ...@@ -36,7 +36,7 @@ import javax.imageio.stream.ImageInputStream;
public class PNGImageReaderSpi extends ImageReaderSpi { public class PNGImageReaderSpi extends ImageReaderSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -38,7 +38,7 @@ import javax.imageio.stream.ImageOutputStream; ...@@ -38,7 +38,7 @@ import javax.imageio.stream.ImageOutputStream;
public class PNGImageWriterSpi extends ImageWriterSpi { public class PNGImageWriterSpi extends ImageWriterSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -49,7 +49,7 @@ public class WBMPImageReaderSpi extends ImageReaderSpi { ...@@ -49,7 +49,7 @@ public class WBMPImageReaderSpi extends ImageReaderSpi {
private boolean registered = false; private boolean registered = false;
public WBMPImageReaderSpi() { public WBMPImageReaderSpi() {
super("Sun Microsystems, Inc.", super("Oracle Corporation",
"1.0", "1.0",
formatNames, formatNames,
entensions, entensions,
......
...@@ -49,7 +49,7 @@ public class WBMPImageWriterSpi extends ImageWriterSpi { ...@@ -49,7 +49,7 @@ public class WBMPImageWriterSpi extends ImageWriterSpi {
private boolean registered = false; private boolean registered = false;
public WBMPImageWriterSpi() { public WBMPImageWriterSpi() {
super("Sun Microsystems, Inc.", super("Oracle Corporation",
"1.0", "1.0",
formatNames, formatNames,
entensions, entensions,
......
...@@ -33,7 +33,7 @@ import javax.imageio.stream.FileImageInputStream; ...@@ -33,7 +33,7 @@ import javax.imageio.stream.FileImageInputStream;
public class FileImageInputStreamSpi extends ImageInputStreamSpi { public class FileImageInputStreamSpi extends ImageInputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -33,7 +33,7 @@ import javax.imageio.stream.FileImageOutputStream; ...@@ -33,7 +33,7 @@ import javax.imageio.stream.FileImageOutputStream;
public class FileImageOutputStreamSpi extends ImageOutputStreamSpi { public class FileImageOutputStreamSpi extends ImageOutputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -36,7 +36,7 @@ import javax.imageio.stream.MemoryCacheImageInputStream; ...@@ -36,7 +36,7 @@ import javax.imageio.stream.MemoryCacheImageInputStream;
public class InputStreamImageInputStreamSpi extends ImageInputStreamSpi { public class InputStreamImageInputStreamSpi extends ImageInputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -36,7 +36,7 @@ import javax.imageio.stream.MemoryCacheImageOutputStream; ...@@ -36,7 +36,7 @@ import javax.imageio.stream.MemoryCacheImageOutputStream;
public class OutputStreamImageOutputStreamSpi extends ImageOutputStreamSpi { public class OutputStreamImageOutputStreamSpi extends ImageOutputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -34,7 +34,7 @@ import javax.imageio.stream.FileImageInputStream; ...@@ -34,7 +34,7 @@ import javax.imageio.stream.FileImageInputStream;
public class RAFImageInputStreamSpi extends ImageInputStreamSpi { public class RAFImageInputStreamSpi extends ImageInputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -34,7 +34,7 @@ import javax.imageio.stream.FileImageOutputStream; ...@@ -34,7 +34,7 @@ import javax.imageio.stream.FileImageOutputStream;
public class RAFImageOutputStreamSpi extends ImageOutputStreamSpi { public class RAFImageOutputStreamSpi extends ImageOutputStreamSpi {
private static final String vendorName = "Sun Microsystems, Inc."; private static final String vendorName = "Oracle Corporation";
private static final String version = "1.0"; private static final String version = "1.0";
......
...@@ -654,8 +654,8 @@ class Attribute implements Comparable, Constants { ...@@ -654,8 +654,8 @@ class Attribute implements Comparable, Constants {
String layout; String layout;
public FormatException(String message, public FormatException(String message,
int ctype, String name, String layout) { int ctype, String name, String layout) {
super(ATTR_CONTEXT_NAME[ctype]+"."+name super(ATTR_CONTEXT_NAME[ctype]+ " attribute \"" + name + "\"" +
+(message == null? "": (": "+message))); (message == null? "" : (": " + message)));
this.ctype = ctype; this.ctype = ctype;
this.name = name; this.name = name;
this.layout = layout; this.layout = layout;
......
...@@ -30,6 +30,7 @@ import java.util.*; ...@@ -30,6 +30,7 @@ import java.util.*;
import com.sun.java.util.jar.pack.Package.Class; import com.sun.java.util.jar.pack.Package.Class;
import com.sun.java.util.jar.pack.Package.InnerClass; import com.sun.java.util.jar.pack.Package.InnerClass;
import com.sun.java.util.jar.pack.ConstantPool.*; import com.sun.java.util.jar.pack.ConstantPool.*;
import com.sun.tools.classfile.AttributeException;
/** /**
* Reader for a class file that is being incorporated into a package. * Reader for a class file that is being incorporated into a package.
...@@ -246,7 +247,9 @@ class ClassReader implements Constants { ...@@ -246,7 +247,9 @@ class ClassReader implements Constants {
fixups[fptr++] = in.readUnsignedShort(); fixups[fptr++] = in.readUnsignedShort();
break; break;
default: default:
throw new IOException("Bad constant pool tag "+tag); throw new ClassFormatException("Bad constant pool tag " +
tag + " in File: " + cls.file.nameString +
" at pos: " + inPos);
} }
} }
...@@ -403,7 +406,7 @@ class ClassReader implements Constants { ...@@ -403,7 +406,7 @@ class ClassReader implements Constants {
skip(length, "unknown "+name+" attribute in "+h); skip(length, "unknown "+name+" attribute in "+h);
continue; continue;
} else { } else {
String message = "unknown in "+h; String message = " is unknown attribute in class " + h;
throw new Attribute.FormatException(message, ctype, name, throw new Attribute.FormatException(message, ctype, name,
unknownAttrCommand); unknownAttrCommand);
} }
...@@ -415,7 +418,12 @@ class ClassReader implements Constants { ...@@ -415,7 +418,12 @@ class ClassReader implements Constants {
if (a.name() == "Code") { if (a.name() == "Code") {
Class.Method m = (Class.Method) h; Class.Method m = (Class.Method) h;
m.code = new Code(m); m.code = new Code(m);
try {
readCode(m.code); readCode(m.code);
} catch (Instruction.FormatException iie) {
String message = iie.getMessage() + " in " + h;
throw new ClassReader.ClassFormatException(message);
}
} else { } else {
assert(h == cls); assert(h == cls);
readInnerClasses(cls); readInnerClasses(cls);
...@@ -427,6 +435,10 @@ class ClassReader implements Constants { ...@@ -427,6 +435,10 @@ class ClassReader implements Constants {
in.readFully(bytes); in.readFully(bytes);
a = a.addContent(bytes); a = a.addContent(bytes);
} }
if (a.size() == 0 && !a.layout().isEmpty()) {
throw new ClassFormatException(name +
": attribute length cannot be zero, in " + h);
}
h.addAttribute(a); h.addAttribute(a);
if (verbose > 2) if (verbose > 2)
Utils.log.fine("read "+a); Utils.log.fine("read "+a);
...@@ -438,6 +450,7 @@ class ClassReader implements Constants { ...@@ -438,6 +450,7 @@ class ClassReader implements Constants {
code.max_locals = readUnsignedShort(); code.max_locals = readUnsignedShort();
code.bytes = new byte[readInt()]; code.bytes = new byte[readInt()];
in.readFully(code.bytes); in.readFully(code.bytes);
Instruction.opcodeChecker(code.bytes);
int nh = readUnsignedShort(); int nh = readUnsignedShort();
code.setHandlerCount(nh); code.setHandlerCount(nh);
for (int i = 0; i < nh; i++) { for (int i = 0; i < nh; i++) {
...@@ -463,4 +476,10 @@ class ClassReader implements Constants { ...@@ -463,4 +476,10 @@ class ClassReader implements Constants {
cls.innerClasses = ics; // set directly; do not use setInnerClasses. cls.innerClasses = ics; // set directly; do not use setInnerClasses.
// (Later, ics may be transferred to the pkg.) // (Later, ics may be transferred to the pkg.)
} }
class ClassFormatException extends IOException {
public ClassFormatException(String message) {
super(message);
}
}
} }
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
package com.sun.java.util.jar.pack; package com.sun.java.util.jar.pack;
import java.io.IOException;
/** /**
* A parsed bytecode instruction. * A parsed bytecode instruction.
* Provides accessors to various relevant bits. * Provides accessors to various relevant bits.
...@@ -628,4 +630,21 @@ class Instruction implements Constants { ...@@ -628,4 +630,21 @@ class Instruction implements Constants {
} }
} }
} }
public static void opcodeChecker(byte[] code) throws FormatException {
Instruction i = at(code, 0);
while (i != null) {
int opcode = i.getBC();
if (opcode == _xxxunusedxxx || opcode < _nop || opcode > _jsr_w) {
String message = "illegal opcode: " + opcode + " " + i;
throw new FormatException(message);
}
i = i.next();
}
}
static class FormatException extends IOException {
FormatException(String message) {
super(message);
}
}
} }
...@@ -496,15 +496,29 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer { ...@@ -496,15 +496,29 @@ public class PackerImpl extends TLGlobals implements Pack200.Packer {
reader.unknownAttrCommand = unknownAttrCommand; reader.unknownAttrCommand = unknownAttrCommand;
try { try {
reader.read(); reader.read();
} catch (Attribute.FormatException ee) { } catch (IOException ioe) {
String message = "Passing class file uncompressed due to";
if (ioe instanceof Attribute.FormatException) {
Attribute.FormatException ee = (Attribute.FormatException) ioe;
// He passed up the category to us in layout. // He passed up the category to us in layout.
if (ee.layout.equals(Pack200.Packer.PASS)) { if (ee.layout.equals(Pack200.Packer.PASS)) {
Utils.log.warning("Passing class file uncompressed due to unrecognized attribute: "+fname);
Utils.log.info(ee.toString()); Utils.log.info(ee.toString());
Utils.log.warning(message + " unrecognized attribute: " +
fname);
return null; return null;
} }
} else if (ioe instanceof ClassReader.ClassFormatException) {
ClassReader.ClassFormatException ce = (ClassReader.ClassFormatException) ioe;
// %% TODO: Do we invent a new property for this or reuse %%
if (unknownAttrCommand.equals(Pack200.Packer.PASS)) {
Utils.log.info(ce.toString());
Utils.log.warning(message + " unknown class format: " +
fname);
return null;
}
}
// Otherwise, it must be an error. // Otherwise, it must be an error.
throw ee; throw ioe;
} }
pkg.addClass(cls); pkg.addClass(cls);
return cls.file; return cls.file;
......
...@@ -182,11 +182,8 @@ class Utils { ...@@ -182,11 +182,8 @@ class Utils {
} }
public void warning(String msg, Object param) { public void warning(String msg, Object param) {
int verbose = currentPropMap().getInteger(DEBUG_VERBOSE);
if (verbose > 0) {
getLogger().warning(msg, param); getLogger().warning(msg, param);
} }
}
public void warning(String msg) { public void warning(String msg) {
warning(msg, null); warning(msg, null);
...@@ -216,7 +213,9 @@ class Utils { ...@@ -216,7 +213,9 @@ class Utils {
// Returns the Max Version String of this implementation // Returns the Max Version String of this implementation
static String getVersionString() { static String getVersionString() {
return "Pack200, Vendor: Sun Microsystems, Version: " + return "Pack200, Vendor: " +
System.getProperty("java.vendor") +
", Version: " +
Constants.JAVA6_PACKAGE_MAJOR_VERSION + "." + Constants.JAVA6_PACKAGE_MAJOR_VERSION + "." +
Constants.JAVA6_PACKAGE_MINOR_VERSION; Constants.JAVA6_PACKAGE_MINOR_VERSION;
} }
......
...@@ -54,6 +54,7 @@ import sun.net.dns.ResolverConfiguration; // available since 1.4.1 ...@@ -54,6 +54,7 @@ import sun.net.dns.ResolverConfiguration; // available since 1.4.1
public class DnsContextFactory implements InitialContextFactory { public class DnsContextFactory implements InitialContextFactory {
private static final String DEFAULT_URL = "dns:"; private static final String DEFAULT_URL = "dns:";
private static final int DEFAULT_PORT = 53;
public Context getInitialContext(Hashtable<?,?> env) throws NamingException { public Context getInitialContext(Hashtable<?,?> env) throws NamingException {
...@@ -89,7 +90,9 @@ public class DnsContextFactory implements InitialContextFactory { ...@@ -89,7 +90,9 @@ public class DnsContextFactory implements InitialContextFactory {
* Public for use by product test suite. * Public for use by product test suite.
*/ */
public static boolean platformServersAvailable() { public static boolean platformServersAvailable() {
return !ResolverConfiguration.open().nameservers().isEmpty(); return !filterNameServers(
ResolverConfiguration.open().nameservers(), true
).isEmpty();
} }
private static Context urlToContext(String url, Hashtable env) private static Context urlToContext(String url, Hashtable env)
...@@ -142,8 +145,8 @@ public class DnsContextFactory implements InitialContextFactory { ...@@ -142,8 +145,8 @@ public class DnsContextFactory implements InitialContextFactory {
// No server or port given, so look to underlying platform. // No server or port given, so look to underlying platform.
// ResolverConfiguration does some limited caching, so the // ResolverConfiguration does some limited caching, so the
// following is reasonably efficient even if called rapid-fire. // following is reasonably efficient even if called rapid-fire.
List<String> platformServers = List<String> platformServers = filterNameServers(
ResolverConfiguration.open().nameservers(); ResolverConfiguration.open().nameservers(), false);
if (!platformServers.isEmpty()) { if (!platformServers.isEmpty()) {
servers.addAll(platformServers); servers.addAll(platformServers);
continue; // on to next URL (if any, which is unlikely) continue; // on to next URL (if any, which is unlikely)
...@@ -213,4 +216,44 @@ public class DnsContextFactory implements InitialContextFactory { ...@@ -213,4 +216,44 @@ public class DnsContextFactory implements InitialContextFactory {
String url = (String) env.get(Context.PROVIDER_URL); String url = (String) env.get(Context.PROVIDER_URL);
return ((url != null) ? url : DEFAULT_URL); return ((url != null) ? url : DEFAULT_URL);
} }
/**
* Removes any DNS server that's not permitted to access
* @param input the input server[:port] list, must not be null
* @param oneIsEnough return output once there exists one ok
* @return the filtered list, all non-permitted input removed
*/
private static List filterNameServers(List input, boolean oneIsEnough) {
SecurityManager security = System.getSecurityManager();
if (security == null || input == null || input.isEmpty()) {
return input;
} else {
List output = new ArrayList();
for (Object o: input) {
if (o instanceof String) {
String platformServer = (String)o;
int colon = platformServer.indexOf(':',
platformServer.indexOf(']') + 1);
int p = (colon < 0)
? DEFAULT_PORT
: Integer.parseInt(
platformServer.substring(colon + 1));
String s = (colon < 0)
? platformServer
: platformServer.substring(0, colon);
try {
security.checkConnect(s, p);
output.add(platformServer);
if (oneIsEnough) {
return output;
}
} catch (SecurityException se) {
continue;
}
}
}
return output;
}
}
} }
...@@ -1069,7 +1069,7 @@ class RealTimeSequencer extends AbstractMidiDevice implements Sequencer, AutoCon ...@@ -1069,7 +1069,7 @@ class RealTimeSequencer extends AbstractMidiDevice implements Sequencer, AutoCon
private static class RealTimeSequencerInfo extends MidiDevice.Info { private static class RealTimeSequencerInfo extends MidiDevice.Info {
private static final String name = "Real Time Sequencer"; private static final String name = "Real Time Sequencer";
private static final String vendor = "Sun Microsystems"; private static final String vendor = "Oracle Corporation";
private static final String description = "Software sequencer"; private static final String description = "Software sequencer";
private static final String version = "Version 1.0"; private static final String version = "Version 1.0";
......
...@@ -24,9 +24,6 @@ ...@@ -24,9 +24,6 @@
*/ */
package com.sun.net.httpserver; package com.sun.net.httpserver;
import java.net.*;
import java.io.*;
import java.util.*;
/** /**
* BasicAuthenticator provides an implementation of HTTP Basic * BasicAuthenticator provides an implementation of HTTP Basic
...@@ -57,7 +54,6 @@ public abstract class BasicAuthenticator extends Authenticator { ...@@ -57,7 +54,6 @@ public abstract class BasicAuthenticator extends Authenticator {
public Result authenticate (HttpExchange t) public Result authenticate (HttpExchange t)
{ {
HttpContext context = t.getHttpContext();
Headers rmap = (Headers) t.getRequestHeaders(); Headers rmap = (Headers) t.getRequestHeaders();
/* /*
* look for auth token * look for auth token
......
...@@ -25,11 +25,7 @@ ...@@ -25,11 +25,7 @@
package com.sun.net.httpserver; package com.sun.net.httpserver;
import java.net.*; import java.io.IOException;
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import sun.net.www.MessageHeader;
import java.util.*; import java.util.*;
/** /**
...@@ -56,12 +52,10 @@ public abstract class Filter { ...@@ -56,12 +52,10 @@ public abstract class Filter {
/* the last element in the chain must invoke the users /* the last element in the chain must invoke the users
* handler * handler
*/ */
private List<Filter> filters;
private ListIterator<Filter> iter; private ListIterator<Filter> iter;
private HttpHandler handler; private HttpHandler handler;
public Chain (List<Filter> filters, HttpHandler handler) { public Chain (List<Filter> filters, HttpHandler handler) {
this.filters = filters;
iter = filters.listIterator(); iter = filters.listIterator();
this.handler = handler; this.handler = handler;
} }
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
package com.sun.net.httpserver; package com.sun.net.httpserver;
import java.util.*; import java.util.*;
import java.io.*;
/** /**
* HTTP request and response headers are represented by this class which implements * HTTP request and response headers are represented by this class which implements
...@@ -77,9 +76,7 @@ public class Headers implements Map<String,List<String>> { ...@@ -77,9 +76,7 @@ public class Headers implements Map<String,List<String>> {
if (len == 0) { if (len == 0) {
return key; return key;
} }
char[] b = new char [len]; char[] b = key.toCharArray();
String s = null;
b = key.toCharArray();
if (b[0] >= 'a' && b[0] <= 'z') { if (b[0] >= 'a' && b[0] <= 'z') {
b[0] = (char)(b[0] - ('a' - 'A')); b[0] = (char)(b[0] - ('a' - 'A'));
} }
...@@ -88,8 +85,7 @@ public class Headers implements Map<String,List<String>> { ...@@ -88,8 +85,7 @@ public class Headers implements Map<String,List<String>> {
b[i] = (char) (b[i] + ('a' - 'A')); b[i] = (char) (b[i] + ('a' - 'A'));
} }
} }
s = new String (b); return new String(b);
return s;
} }
public int size() {return map.size();} public int size() {return map.size();}
......
...@@ -24,9 +24,7 @@ ...@@ -24,9 +24,7 @@
*/ */
package com.sun.net.httpserver; package com.sun.net.httpserver;
import java.net.*; import java.net.InetSocketAddress;
import java.io.*;
import java.util.*;
import javax.net.ssl.SSLParameters; import javax.net.ssl.SSLParameters;
/** /**
...@@ -90,7 +88,7 @@ public abstract class HttpsParameters { ...@@ -90,7 +88,7 @@ public abstract class HttpsParameters {
* have been set. * have been set.
*/ */
public String[] getCipherSuites() { public String[] getCipherSuites() {
return cipherSuites; return cipherSuites != null ? cipherSuites.clone() : null;
} }
/** /**
...@@ -99,7 +97,7 @@ public abstract class HttpsParameters { ...@@ -99,7 +97,7 @@ public abstract class HttpsParameters {
* @param cipherSuites the array of ciphersuites (or null) * @param cipherSuites the array of ciphersuites (or null)
*/ */
public void setCipherSuites(String[] cipherSuites) { public void setCipherSuites(String[] cipherSuites) {
this.cipherSuites = cipherSuites; this.cipherSuites = cipherSuites != null ? cipherSuites.clone() : null;
} }
/** /**
...@@ -110,7 +108,7 @@ public abstract class HttpsParameters { ...@@ -110,7 +108,7 @@ public abstract class HttpsParameters {
* have been set. * have been set.
*/ */
public String[] getProtocols() { public String[] getProtocols() {
return protocols; return protocols != null ? protocols.clone() : null;
} }
/** /**
...@@ -119,7 +117,7 @@ public abstract class HttpsParameters { ...@@ -119,7 +117,7 @@ public abstract class HttpsParameters {
* @param protocols the array of protocols (or null) * @param protocols the array of protocols (or null)
*/ */
public void setProtocols(String[] protocols) { public void setProtocols(String[] protocols) {
this.protocols = protocols; this.protocols = protocols != null ? protocols.clone() : null;
} }
/** /**
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* DO NOT REMOVE OR ALTER! * DO NOT REMOVE OR ALTER!
*/ */
/* /*
* Copyright 1999-2005 The Apache Software Foundation. * Copyright 1999-2010 The Apache Software Foundation.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -23,66 +23,70 @@ package com.sun.org.apache.xml.internal.security.utils; ...@@ -23,66 +23,70 @@ package com.sun.org.apache.xml.internal.security.utils;
import java.io.OutputStream; import java.io.OutputStream;
/** /**
* A simple Unsynced ByteArryOutputStream * A simple Unsynced ByteArrayOutputStream
* @author raul * @author raul
* *
*/ */
public class UnsyncByteArrayOutputStream extends OutputStream { public class UnsyncByteArrayOutputStream extends OutputStream {
private static ThreadLocal bufCahce = new ThreadLocal() { private static final int INITIAL_SIZE = 8192;
private static ThreadLocal bufCache = new ThreadLocal() {
protected synchronized Object initialValue() { protected synchronized Object initialValue() {
return new byte[8*1024]; return new byte[INITIAL_SIZE];
} }
}; };
byte[] buf;
int size=8*1024;//buf.length; private byte[] buf;
int pos=0; private int size = INITIAL_SIZE;
private int pos = 0;
public UnsyncByteArrayOutputStream() { public UnsyncByteArrayOutputStream() {
buf=(byte[])bufCahce.get(); buf = (byte[])bufCache.get();
} }
/** @inheritDoc */
public void write(byte[] arg0) { public void write(byte[] arg0) {
int newPos=pos+arg0.length; int newPos = pos + arg0.length;
if (newPos>size) { if (newPos > size) {
expandSize(); expandSize(newPos);
} }
System.arraycopy(arg0,0,buf,pos,arg0.length); System.arraycopy(arg0, 0, buf, pos, arg0.length);
pos=newPos; pos = newPos;
} }
/** @inheritDoc */
public void write(byte[] arg0, int arg1, int arg2) { public void write(byte[] arg0, int arg1, int arg2) {
int newPos=pos+arg2; int newPos = pos + arg2;
if (newPos>size) { if (newPos > size) {
expandSize(); expandSize(newPos);
} }
System.arraycopy(arg0,arg1,buf,pos,arg2); System.arraycopy(arg0, arg1, buf, pos, arg2);
pos=newPos; pos = newPos;
} }
/** @inheritDoc */
public void write(int arg0) { public void write(int arg0) {
if (pos>=size) { int newPos = pos + 1;
expandSize(); if (newPos > size) {
expandSize(newPos);
} }
buf[pos++]=(byte)arg0; buf[pos++] = (byte)arg0;
} }
/** @inheritDoc */
public byte[] toByteArray() { public byte[] toByteArray() {
byte result[]=new byte[pos]; byte result[] = new byte[pos];
System.arraycopy(buf,0,result,0,pos); System.arraycopy(buf, 0, result, 0, pos);
return result; return result;
} }
/** @inheritDoc */
public void reset() { public void reset() {
pos=0; pos = 0;
} }
/** @inheritDoc */ private void expandSize(int newPos) {
void expandSize() { int newSize = size;
int newSize=size<<2; while (newPos > newSize) {
byte newBuf[]=new byte[newSize]; newSize = newSize<<2;
System.arraycopy(buf,0,newBuf,0,pos); }
buf=newBuf; byte newBuf[] = new byte[newSize];
size=newSize; System.arraycopy(buf, 0, newBuf, 0, pos);
buf = newBuf;
size = newSize;
} }
} }
...@@ -100,6 +100,12 @@ public abstract class AWTEvent extends EventObject { ...@@ -100,6 +100,12 @@ public abstract class AWTEvent extends EventObject {
transient boolean focusManagerIsDispatching = false; transient boolean focusManagerIsDispatching = false;
transient boolean isPosted; transient boolean isPosted;
/**
* Indicates whether this AWTEvent was generated by the system as
* opposed to by user code.
*/
private transient boolean isSystemGenerated;
/** /**
* The event mask for selecting component events. * The event mask for selecting component events.
*/ */
...@@ -235,6 +241,12 @@ public abstract class AWTEvent extends EventObject { ...@@ -235,6 +241,12 @@ public abstract class AWTEvent extends EventObject {
public void setPosted(AWTEvent ev) { public void setPosted(AWTEvent ev) {
ev.isPosted = true; ev.isPosted = true;
} }
public void setSystemGenerated(AWTEvent ev) {
ev.isSystemGenerated = true;
}
public boolean isSystemGenerated(AWTEvent ev) {
return ev.isSystemGenerated;
}
}); });
} }
...@@ -554,6 +566,7 @@ public abstract class AWTEvent extends EventObject { ...@@ -554,6 +566,7 @@ public abstract class AWTEvent extends EventObject {
} }
} }
} }
that.isSystemGenerated = this.isSystemGenerated;
} }
void dispatched() { void dispatched() {
......
...@@ -71,13 +71,14 @@ public class Canvas extends Component implements Accessible { ...@@ -71,13 +71,14 @@ public class Canvas extends Component implements Accessible {
@Override @Override
void setGraphicsConfiguration(GraphicsConfiguration gc) { void setGraphicsConfiguration(GraphicsConfiguration gc) {
synchronized(getTreeLock()) {
CanvasPeer peer = (CanvasPeer)getPeer(); CanvasPeer peer = (CanvasPeer)getPeer();
if (peer != null) { if (peer != null) {
gc = peer.getAppropriateGraphicsConfiguration(gc); gc = peer.getAppropriateGraphicsConfiguration(gc);
} }
super.setGraphicsConfiguration(gc); super.setGraphicsConfiguration(gc);
} }
}
/** /**
* Construct a name for this component. Called by getName() when the * Construct a name for this component. Called by getName() when the
......
...@@ -4187,7 +4187,7 @@ public class Container extends Component { ...@@ -4187,7 +4187,7 @@ public class Container extends Component {
return true; return true;
} }
for (Container cont = getContainer(); for (Container cont = this;
cont != null && cont.isLightweight(); cont != null && cont.isLightweight();
cont = cont.getContainer()) cont = cont.getContainer())
{ {
......
...@@ -64,6 +64,9 @@ class SequencedEvent extends AWTEvent implements ActiveEvent { ...@@ -64,6 +64,9 @@ class SequencedEvent extends AWTEvent implements ActiveEvent {
public SequencedEvent(AWTEvent nested) { public SequencedEvent(AWTEvent nested) {
super(nested.getSource(), ID); super(nested.getSource(), ID);
this.nested = nested; this.nested = nested;
// All AWTEvents that are wrapped in SequencedEvents are (at
// least currently) implicitly generated by the system
SunToolkit.setSystemGenerated(nested);
synchronized (SequencedEvent.class) { synchronized (SequencedEvent.class) {
list.add(this); list.add(this);
} }
......
...@@ -318,6 +318,12 @@ public final class SplashScreen { ...@@ -318,6 +318,12 @@ public final class SplashScreen {
checkVisible(); checkVisible();
_close(splashPtr); _close(splashPtr);
image = null; image = null;
SplashScreen.markClosed();
}
}
static void markClosed() {
synchronized (SplashScreen.class) {
wasClosed = true; wasClosed = true;
theInstance = null; theInstance = null;
} }
......
...@@ -928,7 +928,10 @@ public class Window extends Container implements Accessible { ...@@ -928,7 +928,10 @@ public class Window extends Container implements Accessible {
return; return;
} }
if (beforeFirstWindowShown.getAndSet(false)) { if (beforeFirstWindowShown.getAndSet(false)) {
// We don't use SplashScreen.getSplashScreen() to avoid instantiating
// the object if it hasn't been requested by user code explicitly
SunToolkit.closeSplashScreen(); SunToolkit.closeSplashScreen();
SplashScreen.markClosed();
} }
} }
......
...@@ -29,9 +29,11 @@ import java.awt.Event; ...@@ -29,9 +29,11 @@ import java.awt.Event;
import java.awt.Component; import java.awt.Component;
import java.awt.GraphicsEnvironment; import java.awt.GraphicsEnvironment;
import java.awt.Toolkit; import java.awt.Toolkit;
import sun.util.logging.PlatformLogger;
import java.util.Arrays; import java.util.Arrays;
import sun.awt.AWTAccessor;
import sun.util.logging.PlatformLogger;
/** /**
* The root event class for all component-level input events. * The root event class for all component-level input events.
* *
...@@ -54,6 +56,7 @@ import java.util.Arrays; ...@@ -54,6 +56,7 @@ import java.util.Arrays;
* @since 1.1 * @since 1.1
*/ */
public abstract class InputEvent extends ComponentEvent { public abstract class InputEvent extends ComponentEvent {
private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent"); private static final PlatformLogger logger = PlatformLogger.getLogger("java.awt.event.InputEvent");
/** /**
...@@ -288,6 +291,12 @@ public abstract class InputEvent extends ComponentEvent { ...@@ -288,6 +291,12 @@ public abstract class InputEvent extends ComponentEvent {
if (!GraphicsEnvironment.isHeadless()) { if (!GraphicsEnvironment.isHeadless()) {
initIDs(); initIDs();
} }
AWTAccessor.setInputEventAccessor(
new AWTAccessor.InputEventAccessor() {
public int[] getButtonDownMasks() {
return InputEvent.getButtonDownMasks();
}
});
} }
/** /**
......
...@@ -129,6 +129,8 @@ public class IndexColorModel extends ColorModel { ...@@ -129,6 +129,8 @@ public class IndexColorModel extends ColorModel {
private boolean allgrayopaque; private boolean allgrayopaque;
private BigInteger validBits; private BigInteger validBits;
private sun.awt.image.BufImgSurfaceData.ICMColorData colorData = null;
private static int[] opaqueBits = {8, 8, 8}; private static int[] opaqueBits = {8, 8, 8};
private static int[] alphaBits = {8, 8, 8, 8}; private static int[] alphaBits = {8, 8, 8, 8};
...@@ -1511,7 +1513,6 @@ public class IndexColorModel extends ColorModel { ...@@ -1511,7 +1513,6 @@ public class IndexColorModel extends ColorModel {
* longer referenced. * longer referenced.
*/ */
public void finalize() { public void finalize() {
sun.awt.image.BufImgSurfaceData.freeNativeICMData(this);
} }
/** /**
......
...@@ -358,6 +358,15 @@ public abstract class SampleModel ...@@ -358,6 +358,15 @@ public abstract class SampleModel
int cnt = 0; int cnt = 0;
Object o = null; Object o = null;
int x1 = x + w;
int y1 = y + h;
if (x < 0 || x1 < x || x1 > width ||
y < 0 || y1 < y || y1 > height)
{
throw new ArrayIndexOutOfBoundsException("Invalid coordinates.");
}
switch(type) { switch(type) {
case DataBuffer.TYPE_BYTE: case DataBuffer.TYPE_BYTE:
...@@ -370,8 +379,8 @@ public abstract class SampleModel ...@@ -370,8 +379,8 @@ public abstract class SampleModel
else else
bdata = (byte[])obj; bdata = (byte[])obj;
for (int i=y; i<y+h; i++) { for (int i=y; i<y1; i++) {
for (int j=x; j<x+w; j++) { for (int j=x; j<x1; j++) {
o = getDataElements(j, i, o, data); o = getDataElements(j, i, o, data);
btemp = (byte[])o; btemp = (byte[])o;
for (int k=0; k<numDataElems; k++) { for (int k=0; k<numDataElems; k++) {
...@@ -393,8 +402,8 @@ public abstract class SampleModel ...@@ -393,8 +402,8 @@ public abstract class SampleModel
else else
sdata = (short[])obj; sdata = (short[])obj;
for (int i=y; i<y+h; i++) { for (int i=y; i<y1; i++) {
for (int j=x; j<x+w; j++) { for (int j=x; j<x1; j++) {
o = getDataElements(j, i, o, data); o = getDataElements(j, i, o, data);
stemp = (short[])o; stemp = (short[])o;
for (int k=0; k<numDataElems; k++) { for (int k=0; k<numDataElems; k++) {
...@@ -416,8 +425,8 @@ public abstract class SampleModel ...@@ -416,8 +425,8 @@ public abstract class SampleModel
else else
idata = (int[])obj; idata = (int[])obj;
for (int i=y; i<y+h; i++) { for (int i=y; i<y1; i++) {
for (int j=x; j<x+w; j++) { for (int j=x; j<x1; j++) {
o = getDataElements(j, i, o, data); o = getDataElements(j, i, o, data);
itemp = (int[])o; itemp = (int[])o;
for (int k=0; k<numDataElems; k++) { for (int k=0; k<numDataElems; k++) {
...@@ -439,8 +448,8 @@ public abstract class SampleModel ...@@ -439,8 +448,8 @@ public abstract class SampleModel
else else
fdata = (float[])obj; fdata = (float[])obj;
for (int i=y; i<y+h; i++) { for (int i=y; i<y1; i++) {
for (int j=x; j<x+w; j++) { for (int j=x; j<x1; j++) {
o = getDataElements(j, i, o, data); o = getDataElements(j, i, o, data);
ftemp = (float[])o; ftemp = (float[])o;
for (int k=0; k<numDataElems; k++) { for (int k=0; k<numDataElems; k++) {
...@@ -462,8 +471,8 @@ public abstract class SampleModel ...@@ -462,8 +471,8 @@ public abstract class SampleModel
else else
ddata = (double[])obj; ddata = (double[])obj;
for (int i=y; i<y+h; i++) { for (int i=y; i<y1; i++) {
for (int j=x; j<x+w; j++) { for (int j=x; j<x1; j++) {
o = getDataElements(j, i, o, data); o = getDataElements(j, i, o, data);
dtemp = (double[])o; dtemp = (double[])o;
for (int k=0; k<numDataElems; k++) { for (int k=0; k<numDataElems; k++) {
......
...@@ -39,8 +39,11 @@ package java.dyn; ...@@ -39,8 +39,11 @@ package java.dyn;
* {@link Linkage#registerBootstrapMethod registerBootstrapMethod}. * {@link Linkage#registerBootstrapMethod registerBootstrapMethod}.
* *
* @author John Rose, JSR 292 EG * @author John Rose, JSR 292 EG
* @since 1.7
*/ */
public class InvokeDynamicBootstrapError extends LinkageError { public class InvokeDynamicBootstrapError extends LinkageError {
private static final long serialVersionUID = 292L;
/** /**
* Constructs an {@code InvokeDynamicBootstrapError} with no detail message. * Constructs an {@code InvokeDynamicBootstrapError} with no detail message.
*/ */
...@@ -63,10 +66,9 @@ public class InvokeDynamicBootstrapError extends LinkageError { ...@@ -63,10 +66,9 @@ public class InvokeDynamicBootstrapError extends LinkageError {
* detail message and cause. * detail message and cause.
* *
* @param s the detail message. * @param s the detail message.
* @param cause the cause. * @param cause the cause, may be {@code null}.
*/ */
public InvokeDynamicBootstrapError(String s, Throwable cause) { public InvokeDynamicBootstrapError(String s, Throwable cause) {
super(s); super(s, cause);
this.initCause(cause);
} }
} }
/* /*
* Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -81,6 +81,8 @@ import java.util.StringTokenizer; ...@@ -81,6 +81,8 @@ import java.util.StringTokenizer;
*/ */
public final class LinkagePermission extends BasicPermission { public final class LinkagePermission extends BasicPermission {
private static final long serialVersionUID = 292L;
/** /**
* Create a new LinkagePermission with the given name. * Create a new LinkagePermission with the given name.
* The name is the symbolic name of the LinkagePermission, such as * The name is the symbolic name of the LinkagePermission, such as
......
/* /*
* Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -35,8 +35,11 @@ package java.dyn; ...@@ -35,8 +35,11 @@ package java.dyn;
* on behalf of the method handle creator, * on behalf of the method handle creator,
* at the time of creation. * at the time of creation.
* @author John Rose, JSR 292 EG * @author John Rose, JSR 292 EG
* @since 1.7
*/ */
public class NoAccessException extends RuntimeException { public class NoAccessException extends RuntimeException {
private static final long serialVersionUID = 292L;
/** /**
* Constructs a {@code NoAccessException} with no detail message. * Constructs a {@code NoAccessException} with no detail message.
*/ */
......
/* /*
* Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -38,8 +38,11 @@ package java.dyn; ...@@ -38,8 +38,11 @@ package java.dyn;
* instead of when the mismatched method handle is called. * instead of when the mismatched method handle is called.
* *
* @author John Rose, JSR 292 EG * @author John Rose, JSR 292 EG
* @since 1.7
*/ */
public class WrongMethodTypeException extends RuntimeException { public class WrongMethodTypeException extends RuntimeException {
private static final long serialVersionUID = 292L;
/** /**
* Constructs a {@code WrongMethodTypeException} with no detail message. * Constructs a {@code WrongMethodTypeException} with no detail message.
*/ */
......
...@@ -44,7 +44,7 @@ or method in any class or interface in this package will cause a ...@@ -44,7 +44,7 @@ or method in any class or interface in this package will cause a
For overviews, tutorials, examples, guides, and tool documentation, For overviews, tutorials, examples, guides, and tool documentation,
please see: please see:
<ul> <ul>
<li><a href="../../../guide/serialization">Serialization Enhancements</a> <li><a href="../../../technotes/guides/serialization">Serialization Enhancements</a>
</ul> </ul>
@since JDK1.0 @since JDK1.0
......
/* /*
* Copyright (c) 1994, 2009, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -100,8 +100,11 @@ import sun.security.util.SecurityConstants; ...@@ -100,8 +100,11 @@ import sun.security.util.SecurityConstants;
* themselves at their class initialization time by invoking the * themselves at their class initialization time by invoking the
* {@link * {@link
* #registerAsParallelCapable <tt>ClassLoader.registerAsParallelCapable</tt>} * #registerAsParallelCapable <tt>ClassLoader.registerAsParallelCapable</tt>}
* method. In environments in which the delegation model is not strictly * method. Note that the <tt>ClassLoader</tt> class is registered as parallel
* hierarchical, class loaders need to be parallel capable, otherise class * capable by default. However, its subclasses still need to register themselves
* if they are parallel capable. <br>
* In environments in which the delegation model is not strictly
* hierarchical, class loaders need to be parallel capable, otherwise class
* loading can lead to deadlocks because the loader lock is held for the * loading can lead to deadlocks because the loader lock is held for the
* duration of the class loading process (see {@link #loadClass * duration of the class loading process (see {@link #loadClass
* <tt>loadClass</tt>} methods). * <tt>loadClass</tt>} methods).
...@@ -1218,14 +1221,14 @@ public abstract class ClassLoader { ...@@ -1218,14 +1221,14 @@ public abstract class ClassLoader {
private static native Class<? extends ClassLoader> getCaller(int index); private static native Class<? extends ClassLoader> getCaller(int index);
/** /**
* Registers the caller class loader as parallel capable. * Registers the caller as parallel capable.</p>
* In order for the registration to succeed, all super classes * The registration succeeds if and only if all of the following
* of the caller class loader must also be registered as * conditions are met: <br>
* parallel capable when this method is called. </p> * 1. no instance of the caller has been created</p>
* Note that once a class loader is registered as * 2. all of the super classes (except class Object) of the caller are
* parallel capable, there is no way to change it back. * registered as parallel capable</p>
* In addition, registration should be done statically before * Note that once a class loader is registered as parallel capable, there
* any instance of the caller classloader being constructed. </p> * is no way to change it back. </p>
* *
* @return true if the caller is successfully registered as * @return true if the caller is successfully registered as
* parallel capable and false if otherwise. * parallel capable and false if otherwise.
......
...@@ -586,25 +586,13 @@ public final class Integer extends Number implements Comparable<Integer> { ...@@ -586,25 +586,13 @@ public final class Integer extends Number implements Comparable<Integer> {
* Cache to support the object identity semantics of autoboxing for values between * Cache to support the object identity semantics of autoboxing for values between
* -128 and 127 (inclusive) as required by JLS. * -128 and 127 (inclusive) as required by JLS.
* *
* The cache is initialized on first usage. During VM initialization the * The cache is initialized on first usage. The size of the cache
* getAndRemoveCacheProperties method may be used to get and remove any system * may be controlled by the -XX:AutoBoxCacheMax=<size> option.
* properites that configure the cache size. At this time, the size of the * During VM initialization, java.lang.Integer.IntegerCache.high property
* cache may be controlled by the -XX:AutoBoxCacheMax=<size> option. * may be set and saved in the private system properties in the
* sun.misc.VM class.
*/ */
// value of java.lang.Integer.IntegerCache.high property (obtained during VM init)
private static String integerCacheHighPropValue;
static void getAndRemoveCacheProperties() {
if (!sun.misc.VM.isBooted()) {
Properties props = System.getProperties();
integerCacheHighPropValue =
(String)props.remove("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null)
System.setProperties(props); // remove from system props
}
}
private static class IntegerCache { private static class IntegerCache {
static final int low = -128; static final int low = -128;
static final int high; static final int high;
...@@ -613,6 +601,8 @@ public final class Integer extends Number implements Comparable<Integer> { ...@@ -613,6 +601,8 @@ public final class Integer extends Number implements Comparable<Integer> {
static { static {
// high value may be configured by property // high value may be configured by property
int h = 127; int h = 127;
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
if (integerCacheHighPropValue != null) { if (integerCacheHighPropValue != null) {
int i = parseInt(integerCacheHighPropValue); int i = parseInt(integerCacheHighPropValue);
i = Math.max(i, 127); i = Math.max(i, 127);
......
/* /*
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
package java.lang; package java.lang;
/** /**
* Subclasses of <code>LinkageError</code> indicate that a class has * Subclasses of {@code LinkageError} indicate that a class has
* some dependency on another class; however, the latter class has * some dependency on another class; however, the latter class has
* incompatibly changed after the compilation of the former class. * incompatibly changed after the compilation of the former class.
* *
...@@ -39,14 +39,14 @@ class LinkageError extends Error { ...@@ -39,14 +39,14 @@ class LinkageError extends Error {
private static final long serialVersionUID = 3579600108157160122L; private static final long serialVersionUID = 3579600108157160122L;
/** /**
* Constructs a <code>LinkageError</code> with no detail message. * Constructs a {@code LinkageError} with no detail message.
*/ */
public LinkageError() { public LinkageError() {
super(); super();
} }
/** /**
* Constructs a <code>LinkageError</code> with the specified detail * Constructs a {@code LinkageError} with the specified detail
* message. * message.
* *
* @param s the detail message. * @param s the detail message.
...@@ -54,4 +54,16 @@ class LinkageError extends Error { ...@@ -54,4 +54,16 @@ class LinkageError extends Error {
public LinkageError(String s) { public LinkageError(String s) {
super(s); super(s);
} }
/**
* Constructs a {@code LinkageError} with the specified detail
* message and cause.
*
* @param s the detail message.
* @param cause the cause, may be {@code null}
* @since 1.7
*/
public LinkageError(String s, Throwable cause) {
super(s, cause);
}
} }
...@@ -53,7 +53,13 @@ import sun.reflect.annotation.AnnotationType; ...@@ -53,7 +53,13 @@ import sun.reflect.annotation.AnnotationType;
*/ */
public final class System { public final class System {
/* First thing---register the natives */ /* register the natives via the static initializer.
*
* VM will invoke the initializeSystemClass method to complete
* the initialization for this class separated from clinit.
* Note that to use properties set by the VM, see the constraints
* described in the initializeSystemClass method.
*/
private static native void registerNatives(); private static native void registerNatives();
static { static {
registerNatives(); registerNatives();
...@@ -1096,17 +1102,21 @@ public final class System { ...@@ -1096,17 +1102,21 @@ public final class System {
* Initialize the system class. Called after thread initialization. * Initialize the system class. Called after thread initialization.
*/ */
private static void initializeSystemClass() { private static void initializeSystemClass() {
props = new Properties(); // There are certain system configurations that may be controlled by
initProperties(props); // VM options such as the maximum amount of direct memory and
// Integer cache size used to support the object identity semantics
// of autoboxing. Typically, the library will obtain these values
// from the properties set by the VM. If the properties are for
// internal implementation use only, these properties should be
// removed from the system properties.
//
// See java.lang.Integer.IntegerCache and the
// sun.misc.VM.saveAndRemoveProperties method for example.
props = initSystemProperties();
lineSeparator = props.getProperty("line.separator"); lineSeparator = props.getProperty("line.separator");
sun.misc.Version.init(); sun.misc.Version.init();
// Gets and removes system properties that configure the Integer
// cache used to support the object identity semantics of autoboxing.
// At this time, the size of the cache may be controlled by the
// vm option -XX:AutoBoxCacheMax=<size>.
Integer.getAndRemoveCacheProperties();
FileInputStream fdIn = new FileInputStream(FileDescriptor.in); FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out); FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err); FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
...@@ -1127,17 +1137,6 @@ public final class System { ...@@ -1127,17 +1137,6 @@ public final class System {
// classes are used. // classes are used.
sun.misc.VM.initializeOSEnvironment(); sun.misc.VM.initializeOSEnvironment();
// Set the maximum amount of direct memory. This value is controlled
// by the vm option -XX:MaxDirectMemorySize=<size>. This method acts
// as an initializer only if it is called before sun.misc.VM.booted().
sun.misc.VM.maxDirectMemory();
// Set a boolean to determine whether ClassLoader.loadClass accepts
// array syntax. This value is controlled by the system property
// "sun.lang.ClassLoader.allowArraySyntax". This method acts as
// an initializer only if it is called before sun.misc.VM.booted().
sun.misc.VM.allowArraySyntax();
// Subsystems that are invoked during initialization can invoke // Subsystems that are invoked during initialization can invoke
// sun.misc.VM.isBooted() in order to avoid doing things that should // sun.misc.VM.isBooted() in order to avoid doing things that should
// wait until the application class loader has been set up. // wait until the application class loader has been set up.
...@@ -1152,6 +1151,18 @@ public final class System { ...@@ -1152,6 +1151,18 @@ public final class System {
setJavaLangAccess(); setJavaLangAccess();
} }
private static Properties initSystemProperties() {
Properties props = new Properties();
initProperties(props); // initialized by the VM
// Save a private copy of the system properties object that
// can only be accessed by the internal implementation. Remove
// certain system properties that are not intended for public access.
sun.misc.VM.saveAndRemoveProperties(props);
return props;
}
private static void setJavaLangAccess() { private static void setJavaLangAccess() {
// Allow privileged classes outside of java.lang // Allow privileged classes outside of java.lang
sun.misc.SharedSecrets.setJavaLangAccess(new sun.misc.JavaLangAccess(){ sun.misc.SharedSecrets.setJavaLangAccess(new sun.misc.JavaLangAccess(){
......
...@@ -399,6 +399,8 @@ abstract public class HttpURLConnection extends URLConnection { ...@@ -399,6 +399,8 @@ abstract public class HttpURLConnection extends URLConnection {
* @param method the HTTP method * @param method the HTTP method
* @exception ProtocolException if the method cannot be reset or if * @exception ProtocolException if the method cannot be reset or if
* the requested method isn't valid for HTTP. * the requested method isn't valid for HTTP.
* @exception SecurityException if a security manager is set and the
* "allowHttpTrace" NetPermission is not granted.
* @see #getRequestMethod() * @see #getRequestMethod()
*/ */
public void setRequestMethod(String method) throws ProtocolException { public void setRequestMethod(String method) throws ProtocolException {
...@@ -412,6 +414,12 @@ abstract public class HttpURLConnection extends URLConnection { ...@@ -412,6 +414,12 @@ abstract public class HttpURLConnection extends URLConnection {
for (int i = 0; i < methods.length; i++) { for (int i = 0; i < methods.length; i++) {
if (methods[i].equals(method)) { if (methods[i].equals(method)) {
if (method.equals("TRACE")) {
SecurityManager s = System.getSecurityManager();
if (s != null) {
s.checkPermission(new NetPermission("allowHttpTrace"));
}
}
this.method = method; this.method = method;
return; return;
} }
......
...@@ -54,43 +54,22 @@ import java.util.StringTokenizer; ...@@ -54,43 +54,22 @@ import java.util.StringTokenizer;
* <th>What the Permission Allows</th> * <th>What the Permission Allows</th>
* <th>Risks of Allowing this Permission</th> * <th>Risks of Allowing this Permission</th>
* </tr> * </tr>
*
* <tr>
* <td>setDefaultAuthenticator</td>
* <td>The ability to set the
* way authentication information is retrieved when
* a proxy or HTTP server asks for authentication</td>
* <td>Malicious
* code can set an authenticator that monitors and steals user
* authentication input as it retrieves the input from the user.</td>
* </tr>
*
* <tr> * <tr>
* <td>requestPasswordAuthentication</td> * <td>allowHttpTrace</td>
* <td>The ability * <td>The ability to use the HTTP TRACE method in HttpURLConnection.</td>
* to ask the authenticator registered with the system for * <td>Malicious code using HTTP TRACE could get access to security sensitive
* a password</td> * information in the HTTP headers (such as cookies) that it might not
* <td>Malicious code may steal this password.</td> * otherwise have access to.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
* <td>specifyStreamHandler</td> * <td>getCookieHandler</td>
* <td>The ability * <td>The ability to get the cookie handler that processes highly
* to specify a stream handler when constructing a URL</td> * security sensitive cookie information for an Http session.</td>
* <td>Malicious code may create a URL with resources that it would * <td>Malicious code can get a cookie handler to obtain access to
normally not have access to (like file:/foo/fum/), specifying a * highly security sensitive cookie information. Some web servers
stream handler that gets the actual bytes from someplace it does * use cookies to save user private information such as access
have access to. Thus it might be able to trick the system into * control information, or to track user browsing habit.</td>
creating a ProtectionDomain/CodeSource for a class even though
that class really didn't come from that location.</td>
* </tr>
*
* <tr>
* <td>setProxySelector</td>
* <td>The ability to set the proxy selector used to make decisions
* on which proxies to use when making network connections.</td>
* <td>Malicious code can set a ProxySelector that directs network
* traffic to an arbitrary network host.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
...@@ -103,6 +82,22 @@ that class really didn't come from that location.</td> ...@@ -103,6 +82,22 @@ that class really didn't come from that location.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
* <td>getResponseCache</td>
* <td>The ability to get the response cache that provides
* access to a local response cache.</td>
* <td>Malicious code getting access to the local response cache
* could access security sensitive information.</td>
* </tr>
*
* <tr>
* <td>requestPasswordAuthentication</td>
* <td>The ability
* to ask the authenticator registered with the system for
* a password</td>
* <td>Malicious code may steal this password.</td>
* </tr>
*
* <tr>
* <td>setCookieHandler</td> * <td>setCookieHandler</td>
* <td>The ability to set the cookie handler that processes highly * <td>The ability to set the cookie handler that processes highly
* security sensitive cookie information for an Http session.</td> * security sensitive cookie information for an Http session.</td>
...@@ -113,13 +108,21 @@ that class really didn't come from that location.</td> ...@@ -113,13 +108,21 @@ that class really didn't come from that location.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
* <td>getCookieHandler</td> * <td>setDefaultAuthenticator</td>
* <td>The ability to get the cookie handler that processes highly * <td>The ability to set the
* security sensitive cookie information for an Http session.</td> * way authentication information is retrieved when
* <td>Malicious code can get a cookie handler to obtain access to * a proxy or HTTP server asks for authentication</td>
* highly security sensitive cookie information. Some web servers * <td>Malicious
* use cookies to save user private information such as access * code can set an authenticator that monitors and steals user
* control information, or to track user browsing habit.</td> * authentication input as it retrieves the input from the user.</td>
* </tr>
*
* <tr>
* <td>setProxySelector</td>
* <td>The ability to set the proxy selector used to make decisions
* on which proxies to use when making network connections.</td>
* <td>Malicious code can set a ProxySelector that directs network
* traffic to an arbitrary network host.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
...@@ -132,13 +135,16 @@ that class really didn't come from that location.</td> ...@@ -132,13 +135,16 @@ that class really didn't come from that location.</td>
* </tr> * </tr>
* *
* <tr> * <tr>
* <td>getResponseCache</td> * <td>specifyStreamHandler</td>
* <td>The ability to get the response cache that provides * <td>The ability
* access to a local response cache.</td> * to specify a stream handler when constructing a URL</td>
* <td>Malicious code getting access to the local response cache * <td>Malicious code may create a URL with resources that it would
* could access security sensitive information.</td> normally not have access to (like file:/foo/fum/), specifying a
stream handler that gets the actual bytes from someplace it does
have access to. Thus it might be able to trick the system into
creating a ProtectionDomain/CodeSource for a class even though
that class really didn't come from that location.</td>
* </tr> * </tr>
*
* </table> * </table>
* *
* @see java.security.BasicPermission * @see java.security.BasicPermission
......
...@@ -86,7 +86,9 @@ public final class NetworkInterface { ...@@ -86,7 +86,9 @@ public final class NetworkInterface {
* If there is a security manager, its <code>checkConnect</code> * If there is a security manager, its <code>checkConnect</code>
* method is called for each InetAddress. Only InetAddresses where * method is called for each InetAddress. Only InetAddresses where
* the <code>checkConnect</code> doesn't throw a SecurityException * the <code>checkConnect</code> doesn't throw a SecurityException
* will be returned in the Enumeration. * will be returned in the Enumeration. However, if the caller has the
* {@link NetPermission}("getNetworkInformation") permission, then all
* InetAddresses are returned.
* @return an Enumeration object with all or a subset of the InetAddresses * @return an Enumeration object with all or a subset of the InetAddresses
* bound to this network interface * bound to this network interface
*/ */
...@@ -99,11 +101,19 @@ public final class NetworkInterface { ...@@ -99,11 +101,19 @@ public final class NetworkInterface {
checkedAddresses() { checkedAddresses() {
local_addrs = new InetAddress[addrs.length]; local_addrs = new InetAddress[addrs.length];
boolean trusted = true;
SecurityManager sec = System.getSecurityManager(); SecurityManager sec = System.getSecurityManager();
if (sec != null) {
try {
sec.checkPermission(new NetPermission("getNetworkInformation"));
} catch (SecurityException e) {
trusted = false;
}
}
for (int j=0; j<addrs.length; j++) { for (int j=0; j<addrs.length; j++) {
try { try {
if (sec != null) { if (sec != null && !trusted) {
sec.checkConnect(addrs[j].getHostAddress(), -1); sec.checkConnect(addrs[j].getHostAddress(), -1);
} }
local_addrs[count++] = addrs[j]; local_addrs[count++] = addrs[j];
...@@ -402,13 +412,29 @@ public final class NetworkInterface { ...@@ -402,13 +412,29 @@ public final class NetworkInterface {
/** /**
* Returns the hardware address (usually MAC) of the interface if it * Returns the hardware address (usually MAC) of the interface if it
* has one and if it can be accessed given the current privileges. * has one and if it can be accessed given the current privileges.
* If a security manager is set, then the caller must have
* the permission {@link NetPermission}("getNetworkInformation").
*
* @return a byte array containing the address, or <code>null</code> if
* the address doesn't exist, is not accessible or a security
* manager is set and the caller does not have the permission
* NetPermission("getNetworkInformation")
* *
* @return a byte array containing the address or <code>null</code> if
* the address doesn't exist or is not accessible.
* @exception SocketException if an I/O error occurs. * @exception SocketException if an I/O error occurs.
* @since 1.6 * @since 1.6
*/ */
public byte[] getHardwareAddress() throws SocketException { public byte[] getHardwareAddress() throws SocketException {
SecurityManager sec = System.getSecurityManager();
if (sec != null) {
try {
sec.checkPermission(new NetPermission("getNetworkInformation"));
} catch (SecurityException e) {
if (!getInetAddresses().hasMoreElements()) {
// don't have connect permission to any local address
return null;
}
}
}
for (InetAddress addr : addrs) { for (InetAddress addr : addrs) {
if (addr instanceof Inet4Address) { if (addr instanceof Inet4Address) {
return getMacAddr0(((Inet4Address)addr).getAddress(), name, index); return getMacAddr0(((Inet4Address)addr).getAddress(), name, index);
...@@ -523,11 +549,10 @@ public final class NetworkInterface { ...@@ -523,11 +549,10 @@ public final class NetworkInterface {
} }
public int hashCode() { public int hashCode() {
int count = 0; int count = name == null? 0: name.hashCode();
if (addrs != null) { Enumeration<InetAddress> addrs = getInetAddresses();
for (int i = 0; i < addrs.length; i++) { while (addrs.hasMoreElements()) {
count += addrs[i].hashCode(); count += addrs.nextElement().hashCode();
}
} }
return count; return count;
} }
......
...@@ -622,7 +622,7 @@ class Bits { // package-private ...@@ -622,7 +622,7 @@ class Bits { // package-private
// initialization if it is launched with "-XX:MaxDirectMemorySize=<size>". // initialization if it is launched with "-XX:MaxDirectMemorySize=<size>".
private static volatile long maxMemory = VM.maxDirectMemory(); private static volatile long maxMemory = VM.maxDirectMemory();
private static volatile long reservedMemory; private static volatile long reservedMemory;
private static volatile long usedMemory; private static volatile long totalCapacity;
private static volatile long count; private static volatile long count;
private static boolean memoryLimitSet = false; private static boolean memoryLimitSet = false;
...@@ -630,15 +630,17 @@ class Bits { // package-private ...@@ -630,15 +630,17 @@ class Bits { // package-private
// freed. They allow the user to control the amount of direct memory // freed. They allow the user to control the amount of direct memory
// which a process may access. All sizes are specified in bytes. // which a process may access. All sizes are specified in bytes.
static void reserveMemory(long size, int cap) { static void reserveMemory(long size, int cap) {
synchronized (Bits.class) { synchronized (Bits.class) {
if (!memoryLimitSet && VM.isBooted()) { if (!memoryLimitSet && VM.isBooted()) {
maxMemory = VM.maxDirectMemory(); maxMemory = VM.maxDirectMemory();
memoryLimitSet = true; memoryLimitSet = true;
} }
if (size <= maxMemory - reservedMemory) { // -XX:MaxDirectMemorySize limits the total capacity rather than the
// actual memory usage, which will differ when buffers are page
// aligned.
if (cap <= maxMemory - totalCapacity) {
reservedMemory += size; reservedMemory += size;
usedMemory += cap; totalCapacity += cap;
count++; count++;
return; return;
} }
...@@ -652,10 +654,10 @@ class Bits { // package-private ...@@ -652,10 +654,10 @@ class Bits { // package-private
Thread.currentThread().interrupt(); Thread.currentThread().interrupt();
} }
synchronized (Bits.class) { synchronized (Bits.class) {
if (reservedMemory + size > maxMemory) if (totalCapacity + cap > maxMemory)
throw new OutOfMemoryError("Direct buffer memory"); throw new OutOfMemoryError("Direct buffer memory");
reservedMemory += size; reservedMemory += size;
usedMemory += cap; totalCapacity += cap;
count++; count++;
} }
...@@ -664,7 +666,7 @@ class Bits { // package-private ...@@ -664,7 +666,7 @@ class Bits { // package-private
static synchronized void unreserveMemory(long size, int cap) { static synchronized void unreserveMemory(long size, int cap) {
if (reservedMemory > 0) { if (reservedMemory > 0) {
reservedMemory -= size; reservedMemory -= size;
usedMemory -= cap; totalCapacity -= cap;
count--; count--;
assert (reservedMemory > -1); assert (reservedMemory > -1);
} }
...@@ -689,7 +691,7 @@ class Bits { // package-private ...@@ -689,7 +691,7 @@ class Bits { // package-private
} }
@Override @Override
public long getTotalCapacity() { public long getTotalCapacity() {
return Bits.usedMemory; return Bits.totalCapacity;
} }
@Override @Override
public long getMemoryUsed() { public long getMemoryUsed() {
......
...@@ -29,6 +29,7 @@ package java.nio; ...@@ -29,6 +29,7 @@ package java.nio;
import sun.misc.Cleaner; import sun.misc.Cleaner;
import sun.misc.Unsafe; import sun.misc.Unsafe;
import sun.misc.VM;
import sun.nio.ch.DirectBuffer; import sun.nio.ch.DirectBuffer;
...@@ -114,8 +115,9 @@ class Direct$Type$Buffer$RW$$BO$ ...@@ -114,8 +115,9 @@ class Direct$Type$Buffer$RW$$BO$
Direct$Type$Buffer$RW$(int cap) { // package-private Direct$Type$Buffer$RW$(int cap) { // package-private
#if[rw] #if[rw]
super(-1, 0, cap, cap, false); super(-1, 0, cap, cap, false);
boolean pa = VM.isDirectMemoryPageAligned();
int ps = Bits.pageSize(); int ps = Bits.pageSize();
int size = cap + ps; long size = Math.max(1L, (long)cap + (pa ? ps : 0));
Bits.reserveMemory(size, cap); Bits.reserveMemory(size, cap);
long base = 0; long base = 0;
...@@ -126,7 +128,7 @@ class Direct$Type$Buffer$RW$$BO$ ...@@ -126,7 +128,7 @@ class Direct$Type$Buffer$RW$$BO$
throw x; throw x;
} }
unsafe.setMemory(base, size, (byte) 0); unsafe.setMemory(base, size, (byte) 0);
if (base % ps != 0) { if (pa && (base % ps != 0)) {
// Round up to page boundary // Round up to page boundary
address = base + ps - (base & (ps - 1)); address = base + ps - (base & (ps - 1));
} else { } else {
......
/* /*
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -61,8 +61,8 @@ public class CertificateRevokedException extends CertificateException { ...@@ -61,8 +61,8 @@ public class CertificateRevokedException extends CertificateException {
*/ */
private final CRLReason reason; private final CRLReason reason;
/** /**
* @serial the name of the authority that signed the certificate's * @serial the <code>X500Principal</code> that represents the name of the
* revocation status information * authority that signed the certificate's revocation status information
*/ */
private final X500Principal authority; private final X500Principal authority;
...@@ -79,8 +79,9 @@ public class CertificateRevokedException extends CertificateException { ...@@ -79,8 +79,9 @@ public class CertificateRevokedException extends CertificateException {
* @param extensions a map of X.509 Extensions. Each key is an OID String * @param extensions a map of X.509 Extensions. Each key is an OID String
* that maps to the corresponding Extension. The map is copied to * that maps to the corresponding Extension. The map is copied to
* prevent subsequent modification. * prevent subsequent modification.
* @param authority the name of the authority that signed the certificate's * @param authority the <code>X500Principal</code> that represents the name
* revocation status information * of the authority that signed the certificate's revocation status
* information
* @throws NullPointerException if <code>revocationDate</code>, * @throws NullPointerException if <code>revocationDate</code>,
* <code>reason</code>, <code>authority</code>, or * <code>reason</code>, <code>authority</code>, or
* <code>extensions</code> is <code>null</code> * <code>extensions</code> is <code>null</code>
...@@ -121,8 +122,8 @@ public class CertificateRevokedException extends CertificateException { ...@@ -121,8 +122,8 @@ public class CertificateRevokedException extends CertificateException {
* Returns the name of the authority that signed the certificate's * Returns the name of the authority that signed the certificate's
* revocation status information. * revocation status information.
* *
* @return the name of the authority that signed the certificate's * @return the <code>X500Principal</code> that represents the name of the
* revocation status information * authority that signed the certificate's revocation status information
*/ */
public X500Principal getAuthorityName() { public X500Principal getAuthorityName() {
return authority; return authority;
......
...@@ -335,9 +335,15 @@ public class RuleBasedCollator extends Collator{ ...@@ -335,9 +335,15 @@ public class RuleBasedCollator extends Collator{
* collation rules. Returns information about whether a string is less * collation rules. Returns information about whether a string is less
* than, greater than or equal to another string in a language. * than, greater than or equal to another string in a language.
* This can be overriden in a subclass. * This can be overriden in a subclass.
*
* @exception NullPointerException if <code>source</code> or <code>target</code> is null.
*/ */
public synchronized int compare(String source, String target) public synchronized int compare(String source, String target)
{ {
if (source == null || target == null) {
throw new NullPointerException();
}
// The basic algorithm here is that we use CollationElementIterators // The basic algorithm here is that we use CollationElementIterators
// to step through both the source and target strings. We compare each // to step through both the source and target strings. We compare each
// collation element in the source string against the corresponding one // collation element in the source string against the corresponding one
......
...@@ -97,7 +97,8 @@ public class Arrays { ...@@ -97,7 +97,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(int[] a, int fromIndex, int toIndex) { public static void sort(int[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -136,7 +137,8 @@ public class Arrays { ...@@ -136,7 +137,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(long[] a, int fromIndex, int toIndex) { public static void sort(long[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -175,7 +177,8 @@ public class Arrays { ...@@ -175,7 +177,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(short[] a, int fromIndex, int toIndex) { public static void sort(short[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -214,7 +217,8 @@ public class Arrays { ...@@ -214,7 +217,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(char[] a, int fromIndex, int toIndex) { public static void sort(char[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -253,7 +257,8 @@ public class Arrays { ...@@ -253,7 +257,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(byte[] a, int fromIndex, int toIndex) { public static void sort(byte[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -308,7 +313,8 @@ public class Arrays { ...@@ -308,7 +313,8 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(float[] a, int fromIndex, int toIndex) { public static void sort(float[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/** /**
...@@ -363,12 +369,12 @@ public class Arrays { ...@@ -363,12 +369,12 @@ public class Arrays {
* if {@code fromIndex < 0} or {@code toIndex > a.length} * if {@code fromIndex < 0} or {@code toIndex > a.length}
*/ */
public static void sort(double[] a, int fromIndex, int toIndex) { public static void sort(double[] a, int fromIndex, int toIndex) {
DualPivotQuicksort.sort(a, fromIndex, toIndex); rangeCheck(a.length, fromIndex, toIndex);
DualPivotQuicksort.sort(a, fromIndex, toIndex - 1);
} }
/* /*
* Sorting of complex type arrays. * Sorting of complex type arrays.
*
*/ */
/** /**
......
...@@ -1715,6 +1715,7 @@ public final class Locale implements Cloneable, Serializable { ...@@ -1715,6 +1715,7 @@ public final class Locale implements Cloneable, Serializable {
OpenListResourceBundle bundle = LocaleData.getLocaleNames(inLocale); OpenListResourceBundle bundle = LocaleData.getLocaleNames(inLocale);
String languageName = getDisplayLanguage(inLocale); String languageName = getDisplayLanguage(inLocale);
String scriptName = getDisplayScript(inLocale);
String countryName = getDisplayCountry(inLocale); String countryName = getDisplayCountry(inLocale);
String[] variantNames = getDisplayVariantArray(bundle, inLocale); String[] variantNames = getDisplayVariantArray(bundle, inLocale);
...@@ -1735,25 +1736,40 @@ public final class Locale implements Cloneable, Serializable { ...@@ -1735,25 +1736,40 @@ public final class Locale implements Cloneable, Serializable {
String mainName = null; String mainName = null;
String[] qualifierNames = null; String[] qualifierNames = null;
// The main name is the language, or if there is no language, the country. // The main name is the language, or if there is no language, the script,
// If there is neither language nor country (an anomalous situation) then // then if no script, the country. If there is no language/script/country
// the display name is simply the variant's display name. // (an anomalous situation) then the display name is simply the variant's
// display name.
if (languageName.length() == 0 && scriptName.length() == 0 && countryName.length() == 0) {
if (variantNames.length == 0) {
return "";
} else {
return formatList(variantNames, listPattern, listCompositionPattern);
}
}
ArrayList<String> names = new ArrayList<String>(4);
if (languageName.length() != 0) { if (languageName.length() != 0) {
mainName = languageName; names.add(languageName);
if (countryName.length() != 0) {
qualifierNames = new String[variantNames.length + 1];
System.arraycopy(variantNames, 0, qualifierNames, 1, variantNames.length);
qualifierNames[0] = countryName;
} }
else qualifierNames = variantNames; if (scriptName.length() != 0) {
names.add(scriptName);
} }
else if (countryName.length() != 0) { if (countryName.length() != 0) {
mainName = countryName; names.add(countryName);
qualifierNames = variantNames;
} }
else { if (variantNames.length != 0) {
return formatList(variantNames, listPattern, listCompositionPattern); for (String var : variantNames) {
names.add(var);
} }
}
// The first one in the main name
mainName = names.get(0);
// Others are qualifiers
int numNames = names.size();
qualifierNames = (numNames > 1) ?
names.subList(1, numNames).toArray(new String[numNames - 1]) : new String[0];
// Create an array whose first element is the number of remaining // Create an array whose first element is the number of remaining
// elements. This serves as a selector into a ChoiceFormat pattern from // elements. This serves as a selector into a ChoiceFormat pattern from
...@@ -1941,7 +1957,7 @@ public final class Locale implements Cloneable, Serializable { ...@@ -1941,7 +1957,7 @@ public final class Locale implements Cloneable, Serializable {
* @serialField variant String * @serialField variant String
* variant subtags separated by LOWLINE characters. (See <a href="java/util/Locale.html#getVariant()">getVariant()</a>) * variant subtags separated by LOWLINE characters. (See <a href="java/util/Locale.html#getVariant()">getVariant()</a>)
* @serialField hashcode int * @serialField hashcode int
* deprectated, for forward compatibility only * deprecated, for forward compatibility only
* @serialField script String * @serialField script String
* script subtag in title case (See <a href="java/util/Locale.html#getScript()">getScript()</a>) * script subtag in title case (See <a href="java/util/Locale.html#getScript()">getScript()</a>)
* @serialField extensions String * @serialField extensions String
...@@ -1979,7 +1995,7 @@ public final class Locale implements Cloneable, Serializable { ...@@ -1979,7 +1995,7 @@ public final class Locale implements Cloneable, Serializable {
} }
/** /**
* Deserialize this <code>Locale</code>. * Deserializes this <code>Locale</code>.
* @param in the <code>ObjectInputStream</code> to read * @param in the <code>ObjectInputStream</code> to read
* @throws IOException * @throws IOException
* @throws ClassNotFoundException * @throws ClassNotFoundException
......
...@@ -705,7 +705,7 @@ class Properties extends Hashtable<Object,Object> { ...@@ -705,7 +705,7 @@ class Properties extends Hashtable<Object,Object> {
* <code>Strings</code>. * <code>Strings</code>.
*/ */
@Deprecated @Deprecated
public synchronized void save(OutputStream out, String comments) { public void save(OutputStream out, String comments) {
try { try {
store(out, comments); store(out, comments);
} catch (IOException e) { } catch (IOException e) {
...@@ -890,7 +890,7 @@ class Properties extends Hashtable<Object,Object> { ...@@ -890,7 +890,7 @@ class Properties extends Hashtable<Object,Object> {
* @see #loadFromXML(InputStream) * @see #loadFromXML(InputStream)
* @since 1.5 * @since 1.5
*/ */
public synchronized void storeToXML(OutputStream os, String comment) public void storeToXML(OutputStream os, String comment)
throws IOException throws IOException
{ {
if (os == null) if (os == null)
...@@ -929,8 +929,7 @@ class Properties extends Hashtable<Object,Object> { ...@@ -929,8 +929,7 @@ class Properties extends Hashtable<Object,Object> {
* @see #loadFromXML(InputStream) * @see #loadFromXML(InputStream)
* @since 1.5 * @since 1.5
*/ */
public synchronized void storeToXML(OutputStream os, String comment, public void storeToXML(OutputStream os, String comment, String encoding)
String encoding)
throws IOException throws IOException
{ {
if (os == null) if (os == null)
......
/* /*
* Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -302,60 +302,94 @@ abstract public class TimeZone implements Serializable, Cloneable { ...@@ -302,60 +302,94 @@ abstract public class TimeZone implements Serializable, Cloneable {
} }
/** /**
* Returns a name of this time zone suitable for presentation to the user * Returns a long standard time name of this {@code TimeZone} suitable for
* in the default locale. * presentation to the user in the default locale.
* This method returns the long name, not including daylight savings. *
* If the display name is not available for the locale, * <p>This method is equivalent to:
* then this method returns a string in the * <pre><blockquote>
* <a href="#NormalizedCustomID">normalized custom ID format</a>. * getDisplayName(false, {@link #LONG},
* Locale.getDefault({@link Locale.Category#DISPLAY}))
* </blockquote></pre>
*
* @return the human-readable name of this time zone in the default locale. * @return the human-readable name of this time zone in the default locale.
* @since 1.2 * @since 1.2
* @see #getDisplayName(boolean, int, Locale)
* @see Locale#getDefault(Locale.Category)
* @see Locale.Category
*/ */
public final String getDisplayName() { public final String getDisplayName() {
return getDisplayName(false, LONG, Locale.getDefault(Locale.Category.DISPLAY)); return getDisplayName(false, LONG,
Locale.getDefault(Locale.Category.DISPLAY));
} }
/** /**
* Returns a name of this time zone suitable for presentation to the user * Returns a long standard time name of this {@code TimeZone} suitable for
* in the specified locale. * presentation to the user in the specified {@code locale}.
* This method returns the long name, not including daylight savings. *
* If the display name is not available for the locale, * <p>This method is equivalent to:
* then this method returns a string in the * <pre><blockquote>
* <a href="#NormalizedCustomID">normalized custom ID format</a>. * getDisplayName(false, {@link #LONG}, locale)
* </blockquote></pre>
*
* @param locale the locale in which to supply the display name. * @param locale the locale in which to supply the display name.
* @return the human-readable name of this time zone in the given locale. * @return the human-readable name of this time zone in the given locale.
* @exception NullPointerException if {@code locale} is {@code null}.
* @since 1.2 * @since 1.2
* @see #getDisplayName(boolean, int, Locale)
*/ */
public final String getDisplayName(Locale locale) { public final String getDisplayName(Locale locale) {
return getDisplayName(false, LONG, locale); return getDisplayName(false, LONG, locale);
} }
/** /**
* Returns a name of this time zone suitable for presentation to the user * Returns a name in the specified {@code style} of this {@code TimeZone}
* in the default locale. * suitable for presentation to the user in the default locale. If the
* If the display name is not available for the locale, then this * specified {@code daylight} is {@code true}, a daylight saving time name
* method returns a string in the * is returned. Otherwise, a standard time name is returned.
* <a href="#NormalizedCustomID">normalized custom ID format</a>. *
* @param daylight if true, return the daylight savings name. * <p>This method is equivalent to:
* @param style either <code>LONG</code> or <code>SHORT</code> * <pre><blockquote>
* getDisplayName(daylight, style,
* Locale.getDefault({@link Locale.Category#DISPLAY}))
* </blockquote></pre>
*
* @param daylight if {@code true}, return the daylight saving time name.
* @param style either {@link #LONG} or {@link #SHORT}
* @return the human-readable name of this time zone in the default locale. * @return the human-readable name of this time zone in the default locale.
* @exception IllegalArgumentException if {@code style} is invalid.
* @since 1.2 * @since 1.2
* @see #getDisplayName(boolean, int, Locale)
* @see Locale#getDefault(Locale.Category)
* @see Locale.Category
*/ */
public final String getDisplayName(boolean daylight, int style) { public final String getDisplayName(boolean daylight, int style) {
return getDisplayName(daylight, style, Locale.getDefault(Locale.Category.DISPLAY)); return getDisplayName(daylight, style,
Locale.getDefault(Locale.Category.DISPLAY));
} }
/** /**
* Returns a name of this time zone suitable for presentation to the user * Returns a name in the specified {@code style} of this {@code TimeZone}
* in the specified locale. * suitable for presentation to the user in the specified {@code
* If the display name is not available for the locale, * locale}. If the specified {@code daylight} is {@code true}, a daylight
* then this method returns a string in the * saving time name is returned. Otherwise, a standard time name is
* <a href="#NormalizedCustomID">normalized custom ID format</a>. * returned.
* @param daylight if true, return the daylight savings name. *
* @param style either <code>LONG</code> or <code>SHORT</code> * <p>When looking up a time zone name, the {@linkplain
* ResourceBundle.Control#getCandidateLocales(String,Locale) default
* <code>Locale</code> search path of <code>ResourceBundle</code>} derived
* from the specified {@code locale} is used. (No {@linkplain
* ResourceBundle.Control#getFallbackLocale(String,Locale) fallback
* <code>Locale</code>} search is performed.) If a time zone name in any
* {@code Locale} of the search path, including {@link Locale#ROOT}, is
* found, the name is returned. Otherwise, a string in the
* <a href="#NormalizedCustomID">normalized custom ID format</a> is returned.
*
* @param daylight if {@code true}, return the daylight saving time name.
* @param style either {@link #LONG} or {@link #SHORT}
* @param locale the locale in which to supply the display name. * @param locale the locale in which to supply the display name.
* @return the human-readable name of this time zone in the given locale. * @return the human-readable name of this time zone in the given locale.
* @exception IllegalArgumentException style is invalid. * @exception IllegalArgumentException if {@code style} is invalid.
* @exception NullPointerException if {@code locale} is {@code null}.
* @since 1.2 * @since 1.2
*/ */
public String getDisplayName(boolean daylight, int style, Locale locale) { public String getDisplayName(boolean daylight, int style, Locale locale) {
......
...@@ -141,15 +141,14 @@ class XMLUtils { ...@@ -141,15 +141,14 @@ class XMLUtils {
comments.appendChild(doc.createTextNode(comment)); comments.appendChild(doc.createTextNode(comment));
} }
Set keys = props.keySet(); synchronized (props) {
Iterator i = keys.iterator(); for (String key : props.stringPropertyNames()) {
while(i.hasNext()) {
String key = (String)i.next();
Element entry = (Element)properties.appendChild( Element entry = (Element)properties.appendChild(
doc.createElement("entry")); doc.createElement("entry"));
entry.setAttribute("key", key); entry.setAttribute("key", key);
entry.appendChild(doc.createTextNode(props.getProperty(key))); entry.appendChild(doc.createTextNode(props.getProperty(key)));
} }
}
emitDocument(doc, os, encoding); emitDocument(doc, os, encoding);
} }
......
...@@ -85,8 +85,7 @@ class ZipFile implements ZipConstants, Closeable { ...@@ -85,8 +85,7 @@ class ZipFile implements ZipConstants, Closeable {
static { static {
// A system prpperty to disable mmap use to avoid vm crash when // A system prpperty to disable mmap use to avoid vm crash when
// in-use zip file is accidently overwritten by others. // in-use zip file is accidently overwritten by others.
String prop = AccessController.doPrivileged( String prop = sun.misc.VM.getSavedProperty("sun.zip.disableMemoryMapping");
new GetPropertyAction("sun.zip.disableMemoryMapping"));
usemmap = (prop == null || usemmap = (prop == null ||
!(prop.length() == 0 || prop.equalsIgnoreCase("true"))); !(prop.length() == 0 || prop.equalsIgnoreCase("true")));
} }
......
...@@ -63,7 +63,7 @@ import com.sun.media.sound.JDK13Services; ...@@ -63,7 +63,7 @@ import com.sun.media.sound.JDK13Services;
* <p>Properties can be used to specify the default mixer * <p>Properties can be used to specify the default mixer
* for specific line types. * for specific line types.
* Both system properties and a properties file are considered. * Both system properties and a properties file are considered.
* In the Sun reference implementation, the properties file is * In the Oracle reference implementation, the properties file is
* &quot;lib/sound.properties&quot; in the JRE * &quot;lib/sound.properties&quot; in the JRE
* directory. If a property exists both as a system property and in the * directory. If a property exists both as a system property and in the
* properties file, the system property takes precedence. If none is * properties file, the system property takes precedence. If none is
......
...@@ -28,6 +28,7 @@ package javax.sql.rowset; ...@@ -28,6 +28,7 @@ package javax.sql.rowset;
import java.security.AccessController; import java.security.AccessController;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ServiceConfigurationError;
import java.util.ServiceLoader; import java.util.ServiceLoader;
/** /**
...@@ -255,14 +256,20 @@ public class RowSetProvider { ...@@ -255,14 +256,20 @@ public class RowSetProvider {
* Use the ServiceLoader mechanism to load the default RowSetFactory * Use the ServiceLoader mechanism to load the default RowSetFactory
* @return default RowSetFactory Implementation * @return default RowSetFactory Implementation
*/ */
static private RowSetFactory loadViaServiceLoader() { static private RowSetFactory loadViaServiceLoader() throws SQLException {
RowSetFactory theFactory = null; RowSetFactory theFactory = null;
trace("***in loadViaServiceLoader()"); try {
trace("***in loadViaServiceLoader():");
for (RowSetFactory factory : ServiceLoader.load(javax.sql.rowset.RowSetFactory.class)) { for (RowSetFactory factory : ServiceLoader.load(javax.sql.rowset.RowSetFactory.class)) {
trace(" Loading done by the java.util.ServiceLoader :" + factory.getClass().getName()); trace(" Loading done by the java.util.ServiceLoader :" + factory.getClass().getName());
theFactory = factory; theFactory = factory;
break; break;
} }
} catch (ServiceConfigurationError e) {
throw new SQLException(
"RowSetFactory: Error locating RowSetFactory using Service "
+ "Loader API: " + e, e);
}
return theFactory; return theFactory;
} }
......
...@@ -652,7 +652,10 @@ public class SyncFactory { ...@@ -652,7 +652,10 @@ public class SyncFactory {
* required * required
* @throws java.lang.SecurityException if a security manager exists and its * @throws java.lang.SecurityException if a security manager exists and its
* {@code checkPermission} method denies calling {@code setLogger} * {@code checkPermission} method denies calling {@code setLogger}
* @throws java.util.logging.LoggingPermission if a security manager exists and its
* {@code checkPermission} method denies calling {@code setLevel}
* @see SecurityManager#checkPermission * @see SecurityManager#checkPermission
* @see LoggingPermission
*/ */
public static void setLogger(Logger logger, Level level) { public static void setLogger(Logger logger, Level level) {
// singleton // singleton
......
...@@ -29,6 +29,7 @@ import sun.awt.AWTAccessor; ...@@ -29,6 +29,7 @@ import sun.awt.AWTAccessor;
import javax.swing.plaf.LayerUI; import javax.swing.plaf.LayerUI;
import javax.swing.border.Border; import javax.swing.border.Border;
import javax.accessibility.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
...@@ -149,7 +150,7 @@ import java.security.PrivilegedAction; ...@@ -149,7 +150,7 @@ import java.security.PrivilegedAction;
*/ */
public final class JLayer<V extends Component> public final class JLayer<V extends Component>
extends JComponent extends JComponent
implements Scrollable, PropertyChangeListener { implements Scrollable, PropertyChangeListener, Accessible {
private V view; private V view;
// this field is necessary because JComponent.ui is transient // this field is necessary because JComponent.ui is transient
// when layerUI is serializable // when layerUI is serializable
...@@ -665,6 +666,22 @@ public final class JLayer<V extends Component> ...@@ -665,6 +666,22 @@ public final class JLayer<V extends Component>
} }
} }
/**
* Gets the AccessibleContext associated with this {@code JLayer}.
*
* @return the AccessibleContext associated with this {@code JLayer}.
*/
public AccessibleContext getAccessibleContext() {
if (accessibleContext == null) {
accessibleContext = new AccessibleJComponent() {
public AccessibleRole getAccessibleRole() {
return AccessibleRole.PANEL;
}
};
}
return accessibleContext;
}
/** /**
* static AWTEventListener to be shared with all AbstractLayerUIs * static AWTEventListener to be shared with all AbstractLayerUIs
*/ */
......
...@@ -2491,7 +2491,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable ...@@ -2491,7 +2491,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
* The default value of this property is defined by the look * The default value of this property is defined by the look
* and feel implementation. * and feel implementation.
* <p> * <p>
* This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/whatis/beanDefinition.html">JavaBeans</a> bound property. * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">JavaBeans</a> bound property.
* *
* @param selectionForeground the <code>Color</code> to use in the foreground * @param selectionForeground the <code>Color</code> to use in the foreground
* for selected list items * for selected list items
...@@ -2529,7 +2529,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable ...@@ -2529,7 +2529,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
* The default value of this property is defined by the look * The default value of this property is defined by the look
* and feel implementation. * and feel implementation.
* <p> * <p>
* This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/whatis/beanDefinition.html">JavaBeans</a> bound property. * This is a <a href="http://java.sun.com/docs/books/tutorial/javabeans/properties/bound.html">JavaBeans</a> bound property.
* *
* @param selectionBackground the <code>Color</code> to use for the background * @param selectionBackground the <code>Color</code> to use for the background
* of selected cells * of selected cells
......
...@@ -52,6 +52,7 @@ import java.security.AccessControlContext; ...@@ -52,6 +52,7 @@ import java.security.AccessControlContext;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import sun.reflect.misc.MethodUtil; import sun.reflect.misc.MethodUtil;
import sun.reflect.misc.ReflectUtil;
import sun.util.CoreResourceBundleControl; import sun.util.CoreResourceBundleControl;
/** /**
...@@ -1078,6 +1079,9 @@ public class UIDefaults extends Hashtable<Object,Object> ...@@ -1078,6 +1079,9 @@ public class UIDefaults extends Hashtable<Object,Object>
// In order to pick up the security policy in effect at the // In order to pick up the security policy in effect at the
// time of creation we use a doPrivileged with the // time of creation we use a doPrivileged with the
// AccessControlContext that was in place when this was created. // AccessControlContext that was in place when this was created.
if (acc == null && System.getSecurityManager() != null) {
throw new SecurityException("null AccessControlContext");
}
return AccessController.doPrivileged(new PrivilegedAction<Object>() { return AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() { public Object run() {
try { try {
...@@ -1093,7 +1097,9 @@ public class UIDefaults extends Hashtable<Object,Object> ...@@ -1093,7 +1097,9 @@ public class UIDefaults extends Hashtable<Object,Object>
cl = ClassLoader.getSystemClassLoader(); cl = ClassLoader.getSystemClassLoader();
} }
} }
ReflectUtil.checkPackageAccess(className);
c = Class.forName(className, true, (ClassLoader)cl); c = Class.forName(className, true, (ClassLoader)cl);
checkAccess(c.getModifiers());
if (methodName != null) { if (methodName != null) {
Class[] types = getClassArray(args); Class[] types = getClassArray(args);
Method m = c.getMethod(methodName, types); Method m = c.getMethod(methodName, types);
...@@ -1101,6 +1107,7 @@ public class UIDefaults extends Hashtable<Object,Object> ...@@ -1101,6 +1107,7 @@ public class UIDefaults extends Hashtable<Object,Object>
} else { } else {
Class[] types = getClassArray(args); Class[] types = getClassArray(args);
Constructor constructor = c.getConstructor(types); Constructor constructor = c.getConstructor(types);
checkAccess(constructor.getModifiers());
return constructor.newInstance(args); return constructor.newInstance(args);
} }
} catch(Exception e) { } catch(Exception e) {
...@@ -1115,6 +1122,13 @@ public class UIDefaults extends Hashtable<Object,Object> ...@@ -1115,6 +1122,13 @@ public class UIDefaults extends Hashtable<Object,Object>
}, acc); }, acc);
} }
private void checkAccess(int modifiers) {
if(System.getSecurityManager() != null &&
!Modifier.isPublic(modifiers)) {
throw new SecurityException("Resource is not accessible");
}
}
/* /*
* Coerce the array of class types provided into one which * Coerce the array of class types provided into one which
* looks the way the Reflection APIs expect. This is done * looks the way the Reflection APIs expect. This is done
......
...@@ -141,6 +141,22 @@ public class BasicFileChooserUI extends FileChooserUI { ...@@ -141,6 +141,22 @@ public class BasicFileChooserUI extends FileChooserUI {
private JPanel accessoryPanel = null; private JPanel accessoryPanel = null;
private Handler handler; private Handler handler;
/**
* Creates a {@code BasicFileChooserUI} implementation
* for the specified component. By default
* the {@code BasicLookAndFeel} class uses
* {@code createUI} methods of all basic UIs classes
* to instantiate UIs.
*
* @param c the {@code JFileChooser} which needs a UI
* @return the {@code BasicFileChooserUI} object
*
* @see UIDefaults#getUI(JComponent)
* @since 1.7
*/
public static ComponentUI createUI(JComponent c) {
return new BasicFileChooserUI((JFileChooser) c);
}
public BasicFileChooserUI(JFileChooser b) { public BasicFileChooserUI(JFileChooser b) {
} }
......
...@@ -269,6 +269,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel implements Serializab ...@@ -269,6 +269,7 @@ public abstract class BasicLookAndFeel extends LookAndFeel implements Serializab
"InternalFrameUI", basicPackageName + "BasicInternalFrameUI", "InternalFrameUI", basicPackageName + "BasicInternalFrameUI",
"DesktopPaneUI", basicPackageName + "BasicDesktopPaneUI", "DesktopPaneUI", basicPackageName + "BasicDesktopPaneUI",
"DesktopIconUI", basicPackageName + "BasicDesktopIconUI", "DesktopIconUI", basicPackageName + "BasicDesktopIconUI",
"FileChooserUI", basicPackageName + "BasicFileChooserUI",
"OptionPaneUI", basicPackageName + "BasicOptionPaneUI", "OptionPaneUI", basicPackageName + "BasicOptionPaneUI",
"PanelUI", basicPackageName + "BasicPanelUI", "PanelUI", basicPackageName + "BasicPanelUI",
"ViewportUI", basicPackageName + "BasicViewportUI", "ViewportUI", basicPackageName + "BasicViewportUI",
......
/* /*
* Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -24,6 +24,8 @@ ...@@ -24,6 +24,8 @@
*/ */
package javax.swing.text.html; package javax.swing.text.html;
import sun.awt.AppContext;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
...@@ -369,7 +371,11 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible { ...@@ -369,7 +371,11 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible {
* if desired. * if desired.
*/ */
public void setStyleSheet(StyleSheet s) { public void setStyleSheet(StyleSheet s) {
defaultStyles = s; if (s == null) {
AppContext.getAppContext().remove(DEFAULT_STYLES_KEY);
} else {
AppContext.getAppContext().put(DEFAULT_STYLES_KEY, s);
}
} }
/** /**
...@@ -379,8 +385,12 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible { ...@@ -379,8 +385,12 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible {
* instances. * instances.
*/ */
public StyleSheet getStyleSheet() { public StyleSheet getStyleSheet() {
AppContext appContext = AppContext.getAppContext();
StyleSheet defaultStyles = (StyleSheet) appContext.get(DEFAULT_STYLES_KEY);
if (defaultStyles == null) { if (defaultStyles == null) {
defaultStyles = new StyleSheet(); defaultStyles = new StyleSheet();
appContext.put(DEFAULT_STYLES_KEY, defaultStyles);
try { try {
InputStream is = HTMLEditorKit.getResourceAsStream(DEFAULT_CSS); InputStream is = HTMLEditorKit.getResourceAsStream(DEFAULT_CSS);
Reader r = new BufferedReader( Reader r = new BufferedReader(
...@@ -620,7 +630,7 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible { ...@@ -620,7 +630,7 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible {
private static final ViewFactory defaultFactory = new HTMLFactory(); private static final ViewFactory defaultFactory = new HTMLFactory();
MutableAttributeSet input; MutableAttributeSet input;
private static StyleSheet defaultStyles = null; private static final Object DEFAULT_STYLES_KEY = new Object();
private LinkController linkHandler = new LinkController(); private LinkController linkHandler = new LinkController();
private static Parser defaultParser = null; private static Parser defaultParser = null;
private Cursor defaultCursor = DefaultCursor; private Cursor defaultCursor = DefaultCursor;
......
/* /*
* Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
package javax.swing.text.html.parser; package javax.swing.text.html.parser;
import sun.awt.AppContext;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
...@@ -314,13 +316,14 @@ class DTD implements DTDConstants { ...@@ -314,13 +316,14 @@ class DTD implements DTDConstants {
} }
/** /**
* The hashtable of DTDs. * The hashtable key of DTDs in AppContext.
*/ */
static Hashtable<String, DTD> dtdHash = new Hashtable<String, DTD>(); private static final Object DTD_HASH_KEY = new Object();
public static void putDTDHash(String name, DTD dtd) { public static void putDTDHash(String name, DTD dtd) {
dtdHash.put(name, dtd); getDtdHash().put(name, dtd);
} }
/** /**
* Returns a DTD with the specified <code>name</code>. If * Returns a DTD with the specified <code>name</code>. If
* a DTD with that name doesn't exist, one is created * a DTD with that name doesn't exist, one is created
...@@ -332,13 +335,27 @@ class DTD implements DTDConstants { ...@@ -332,13 +335,27 @@ class DTD implements DTDConstants {
*/ */
public static DTD getDTD(String name) throws IOException { public static DTD getDTD(String name) throws IOException {
name = name.toLowerCase(); name = name.toLowerCase();
DTD dtd = dtdHash.get(name); DTD dtd = getDtdHash().get(name);
if (dtd == null) if (dtd == null)
dtd = new DTD(name); dtd = new DTD(name);
return dtd; return dtd;
} }
private static Hashtable<String, DTD> getDtdHash() {
AppContext appContext = AppContext.getAppContext();
Hashtable<String, DTD> result = (Hashtable<String, DTD>) appContext.get(DTD_HASH_KEY);
if (result == null) {
result = new Hashtable<String, DTD>();
appContext.put(DTD_HASH_KEY, result);
}
return result;
}
/** /**
* Recreates a DTD from an archived format. * Recreates a DTD from an archived format.
* @param in the <code>DataInputStream</code> to read from * @param in the <code>DataInputStream</code> to read from
......
/* /*
* Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
package javax.swing.text.html.parser; package javax.swing.text.html.parser;
import sun.awt.AppContext;
import javax.swing.text.html.HTMLEditorKit; import javax.swing.text.html.HTMLEditorKit;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.IOException; import java.io.IOException;
...@@ -33,7 +35,6 @@ import java.io.DataInputStream; ...@@ -33,7 +35,6 @@ import java.io.DataInputStream;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.Reader; import java.io.Reader;
import java.io.Serializable; import java.io.Serializable;
import java.lang.reflect.Method;
/** /**
* Responsible for starting up a new DocumentParser * Responsible for starting up a new DocumentParser
...@@ -45,9 +46,13 @@ import java.lang.reflect.Method; ...@@ -45,9 +46,13 @@ import java.lang.reflect.Method;
public class ParserDelegator extends HTMLEditorKit.Parser implements Serializable { public class ParserDelegator extends HTMLEditorKit.Parser implements Serializable {
private static DTD dtd = null; private static final Object DTD_KEY = new Object();
protected static synchronized void setDefaultDTD() { protected static synchronized void setDefaultDTD() {
AppContext appContext = AppContext.getAppContext();
DTD dtd = (DTD) appContext.get(DTD_KEY);
if (dtd == null) { if (dtd == null) {
DTD _dtd = null; DTD _dtd = null;
// (PENDING) Hate having to hard code! // (PENDING) Hate having to hard code!
...@@ -59,6 +64,8 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl ...@@ -59,6 +64,8 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl
System.out.println("Throw an exception: could not get default dtd: " + nm); System.out.println("Throw an exception: could not get default dtd: " + nm);
} }
dtd = createDTD(_dtd, nm); dtd = createDTD(_dtd, nm);
appContext.put(DTD_KEY, dtd);
} }
} }
...@@ -81,13 +88,11 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl ...@@ -81,13 +88,11 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl
public ParserDelegator() { public ParserDelegator() {
if (dtd == null) {
setDefaultDTD(); setDefaultDTD();
} }
}
public void parse(Reader r, HTMLEditorKit.ParserCallback cb, boolean ignoreCharSet) throws IOException { public void parse(Reader r, HTMLEditorKit.ParserCallback cb, boolean ignoreCharSet) throws IOException {
new DocumentParser(dtd).parse(r, cb, ignoreCharSet); new DocumentParser((DTD) AppContext.getAppContext().get(DTD_KEY)).parse(r, cb, ignoreCharSet);
} }
/** /**
...@@ -113,8 +118,6 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl ...@@ -113,8 +118,6 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl
private void readObject(ObjectInputStream s) private void readObject(ObjectInputStream s)
throws ClassNotFoundException, IOException { throws ClassNotFoundException, IOException {
s.defaultReadObject(); s.defaultReadObject();
if (dtd == null) {
setDefaultDTD(); setDefaultDTD();
} }
}
} }
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
package sun.awt; package sun.awt;
import java.awt.*; import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
...@@ -301,6 +302,24 @@ public final class AWTAccessor { ...@@ -301,6 +302,24 @@ public final class AWTAccessor {
* Marks the event as posted. * Marks the event as posted.
*/ */
void setPosted(AWTEvent ev); void setPosted(AWTEvent ev);
/**
* Sets the flag on this AWTEvent indicating that it was
* generated by the system.
*/
void setSystemGenerated(AWTEvent ev);
/**
* Indicates whether this AWTEvent was generated by the system.
*/
boolean isSystemGenerated(AWTEvent ev);
}
public interface InputEventAccessor {
/*
* Accessor for InputEvent.getButtonDownMasks()
*/
int[] getButtonDownMasks();
} }
/* /*
...@@ -435,6 +454,11 @@ public final class AWTAccessor { ...@@ -435,6 +454,11 @@ public final class AWTAccessor {
*/ */
private static AWTEventAccessor awtEventAccessor; private static AWTEventAccessor awtEventAccessor;
/*
* The java.awt.event.InputEvent class accessor object.
*/
private static InputEventAccessor inputEventAccessor;
/* /*
* The java.awt.Frame class accessor object. * The java.awt.Frame class accessor object.
*/ */
...@@ -517,6 +541,23 @@ public final class AWTAccessor { ...@@ -517,6 +541,23 @@ public final class AWTAccessor {
return awtEventAccessor; return awtEventAccessor;
} }
/*
* Set an accessor object for the java.awt.event.InputEvent class.
*/
public static void setInputEventAccessor(InputEventAccessor iea) {
inputEventAccessor = iea;
}
/*
* Retrieve the accessor object for the java.awt.event.InputEvent class.
*/
public static InputEventAccessor getInputEventAccessor() {
if (inputEventAccessor == null) {
unsafe.ensureClassInitialized(InputEvent.class);
}
return inputEventAccessor;
}
/* /*
* Set an accessor object for the java.awt.Frame class. * Set an accessor object for the java.awt.Frame class.
*/ */
......
...@@ -313,6 +313,11 @@ public abstract class SunToolkit extends Toolkit ...@@ -313,6 +313,11 @@ public abstract class SunToolkit extends Toolkit
*/ */
public static AppContext createNewAppContext() { public static AppContext createNewAppContext() {
ThreadGroup threadGroup = Thread.currentThread().getThreadGroup(); ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
// Create appContext before initialization of EventQueue, so all
// the calls to AppContext.getAppContext() from EventQueue ctor
// return correct values
AppContext appContext = new AppContext(threadGroup);
EventQueue eventQueue; EventQueue eventQueue;
String eqName = System.getProperty("AWT.EventQueueClass", String eqName = System.getProperty("AWT.EventQueueClass",
"java.awt.EventQueue"); "java.awt.EventQueue");
...@@ -322,7 +327,6 @@ public abstract class SunToolkit extends Toolkit ...@@ -322,7 +327,6 @@ public abstract class SunToolkit extends Toolkit
System.err.println("Failed loading " + eqName + ": " + e); System.err.println("Failed loading " + eqName + ": " + e);
eventQueue = new EventQueue(); eventQueue = new EventQueue();
} }
AppContext appContext = new AppContext(threadGroup);
appContext.put(AppContext.EVENT_QUEUE_KEY, eventQueue); appContext.put(AppContext.EVENT_QUEUE_KEY, eventQueue);
PostEventQueue postEventQueue = new PostEventQueue(eventQueue); PostEventQueue postEventQueue = new PostEventQueue(eventQueue);
...@@ -587,6 +591,12 @@ public abstract class SunToolkit extends Toolkit ...@@ -587,6 +591,12 @@ public abstract class SunToolkit extends Toolkit
if (event == null) { if (event == null) {
throw new NullPointerException(); throw new NullPointerException();
} }
// All events posted via this method are system-generated.
// Placing the following call here reduces considerably the
// number of places throughout the toolkit that would
// otherwise have to be modified to precisely identify
// system-generated events.
setSystemGenerated(event);
AppContext eventContext = targetToAppContext(event.getSource()); AppContext eventContext = targetToAppContext(event.getSource());
if (eventContext != null && !eventContext.equals(appContext)) { if (eventContext != null && !eventContext.equals(appContext)) {
log.fine("Event posted on wrong app context : " + event); log.fine("Event posted on wrong app context : " + event);
...@@ -2089,6 +2099,25 @@ public abstract class SunToolkit extends Toolkit ...@@ -2089,6 +2099,25 @@ public abstract class SunToolkit extends Toolkit
} }
return isInstanceOf(cls.getSuperclass(), type); return isInstanceOf(cls.getSuperclass(), type);
} }
///////////////////////////////////////////////////////////////////////////
//
// The following methods help set and identify whether a particular
// AWTEvent object was produced by the system or by user code. As of this
// writing the only consumer is the Java Plug-In, although this information
// could be useful to more clients and probably should be formalized in
// the public API.
//
///////////////////////////////////////////////////////////////////////////
public static void setSystemGenerated(AWTEvent e) {
AWTAccessor.getAWTEventAccessor().setSystemGenerated(e);
}
public static boolean isSystemGenerated(AWTEvent e) {
return AWTAccessor.getAWTEventAccessor().isSystemGenerated(e);
}
} // class SunToolkit } // class SunToolkit
......
...@@ -49,7 +49,7 @@ public class BufImgSurfaceData extends SurfaceData { ...@@ -49,7 +49,7 @@ public class BufImgSurfaceData extends SurfaceData {
private BufferedImageGraphicsConfig graphicsConfig; private BufferedImageGraphicsConfig graphicsConfig;
RenderLoops solidloops; RenderLoops solidloops;
private static native void initIDs(Class ICM); private static native void initIDs(Class ICM, Class ICMColorData);
private static final int DCM_RGBX_RED_MASK = 0xff000000; private static final int DCM_RGBX_RED_MASK = 0xff000000;
private static final int DCM_RGBX_GREEN_MASK = 0x00ff0000; private static final int DCM_RGBX_GREEN_MASK = 0x00ff0000;
...@@ -67,7 +67,7 @@ public class BufImgSurfaceData extends SurfaceData { ...@@ -67,7 +67,7 @@ public class BufImgSurfaceData extends SurfaceData {
private static final int DCM_ARGBBM_BLUE_MASK = 0x000000ff; private static final int DCM_ARGBBM_BLUE_MASK = 0x000000ff;
static { static {
initIDs(IndexColorModel.class); initIDs(IndexColorModel.class, ICMColorData.class);
} }
public static SurfaceData createData(BufferedImage bufImg) { public static SurfaceData createData(BufferedImage bufImg) {
...@@ -403,7 +403,7 @@ public class BufImgSurfaceData extends SurfaceData { ...@@ -403,7 +403,7 @@ public class BufImgSurfaceData extends SurfaceData {
// their pixels are immediately retrievable anyway. // their pixels are immediately retrievable anyway.
} }
public static native void freeNativeICMData(IndexColorModel icm); private static native void freeNativeICMData(long pData);
/** /**
* Returns destination Image associated with this SurfaceData. * Returns destination Image associated with this SurfaceData.
...@@ -411,4 +411,19 @@ public class BufImgSurfaceData extends SurfaceData { ...@@ -411,4 +411,19 @@ public class BufImgSurfaceData extends SurfaceData {
public Object getDestination() { public Object getDestination() {
return bufImg; return bufImg;
} }
public static final class ICMColorData {
private long pData = 0L;
private ICMColorData(long pData) {
this.pData = pData;
}
public void finalize() {
if (pData != 0L) {
BufImgSurfaceData.freeNativeICMData(pData);
pData = 0L;
}
}
}
} }
...@@ -25,13 +25,18 @@ ...@@ -25,13 +25,18 @@
package sun.jkernel; package sun.jkernel;
import java.io.*; import java.io.*;
import java.net.URLStreamHandlerFactory;
import java.net.URL;
import java.net.MalformedURLException;
import java.security.*; import java.security.*;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.jar.*; import java.util.jar.*;
import java.util.zip.*; import java.util.zip.*;
import sun.misc.Launcher;
import sun.misc.BootClassLoaderHook; import sun.misc.BootClassLoaderHook;
import sun.misc.Launcher;
import sun.misc.URLClassPath;
import sun.net.www.ParseUtil;
/** /**
* Handles the downloading of additional JRE components. The bootstrap class * Handles the downloading of additional JRE components. The bootstrap class
...@@ -658,16 +663,15 @@ public class DownloadManager extends BootClassLoaderHook { ...@@ -658,16 +663,15 @@ public class DownloadManager extends BootClassLoaderHook {
return getAppDataLocalLow() + getKernelJREDir(); return getAppDataLocalLow() + getKernelJREDir();
} }
/** // To be revisited:
* Returns an array of JAR files which have been added to the boot strap // How DownloadManager maintains its bootstrap class path.
* class path since the JVM was first booted. // sun.misc.Launcher.getBootstrapClassPath() returns
*/ // DownloadManager.getBootstrapClassPath() instead.
public static synchronized File[] getAdditionalBootStrapPaths() { //
return additionalBootStrapPaths != null ? additionalBootStrapPaths : // So should no longer need to lock the Launcher.class.
new File[0]; // In addition, additionalBootStrapPaths is not really needed
} // if it obtains the initial bootclasspath during DownloadManager's
// initialization.
private static void addEntryToBootClassPath(File path) { private static void addEntryToBootClassPath(File path) {
// Must acquire these locks in this order // Must acquire these locks in this order
synchronized(Launcher.class) { synchronized(Launcher.class) {
...@@ -678,11 +682,42 @@ public class DownloadManager extends BootClassLoaderHook { ...@@ -678,11 +682,42 @@ public class DownloadManager extends BootClassLoaderHook {
0, additionalBootStrapPaths.length); 0, additionalBootStrapPaths.length);
newBootStrapPaths[newBootStrapPaths.length - 1] = path; newBootStrapPaths[newBootStrapPaths.length - 1] = path;
additionalBootStrapPaths = newBootStrapPaths; additionalBootStrapPaths = newBootStrapPaths;
Launcher.flushBootstrapClassPath(); if (bootstrapClassPath != null)
bootstrapClassPath.addURL(getFileURL(path));
}
}
} }
/**
* Returns the kernel's bootstrap class path which includes the additional
* JARs downloaded
*/
private static URLClassPath bootstrapClassPath = null;
private synchronized static
URLClassPath getBootClassPath(URLClassPath bcp,
URLStreamHandlerFactory factory)
{
if (bootstrapClassPath == null) {
bootstrapClassPath = new URLClassPath(bcp.getURLs(), factory);
for (File path : additionalBootStrapPaths) {
bootstrapClassPath.addURL(getFileURL(path));
} }
} }
return bootstrapClassPath;
}
private static URL getFileURL(File file) {
try {
file = file.getCanonicalFile();
} catch (IOException e) {}
try {
return ParseUtil.fileToEncodedURL(file);
} catch (MalformedURLException e) {
// Should never happen since we specify the protocol...
throw new InternalError();
}
}
/** /**
* Scan through java.ext.dirs to see if the lib/ext directory is included. * Scan through java.ext.dirs to see if the lib/ext directory is included.
...@@ -1680,8 +1715,10 @@ public class DownloadManager extends BootClassLoaderHook { ...@@ -1680,8 +1715,10 @@ public class DownloadManager extends BootClassLoaderHook {
} }
} }
public File[] getAdditionalBootstrapPaths() { public URLClassPath getBootstrapClassPath(URLClassPath bcp,
return DownloadManager.getAdditionalBootStrapPaths(); URLStreamHandlerFactory factory)
{
return DownloadManager.getBootClassPath(bcp, factory);
} }
public boolean isCurrentThreadPrefetching() { public boolean isCurrentThreadPrefetching() {
......
...@@ -49,7 +49,7 @@ java.launcher.opt.footer =\ -cp <class search path of directories and zip ...@@ -49,7 +49,7 @@ java.launcher.opt.footer =\ -cp <class search path of directories and zip
\ -version:<value>\n\ \ -version:<value>\n\
\ require the specified version to run\n\ \ require the specified version to run\n\
\ -showversion print product version and continue\n\ \ -showversion print product version and continue\n\
\ -jre-restrict-search | -jre-no-restrict-search\n\ \ -jre-restrict-search | -no-jre-restrict-search\n\
\ include/exclude user private JREs in the version search\n\ \ include/exclude user private JREs in the version search\n\
\ -? -help print this help message\n\ \ -? -help print this help message\n\
\ -X print help on non-standard options\n\ \ -X print help on non-standard options\n\
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ Standard-VM ist {0}, ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ Standard-VM ist {0},
java.launcher.ergo.message2 =\ da Sie auf einem Server-Class-Computer ausf\u00fchren.\n java.launcher.ergo.message2 =\ da Sie auf einem Server-Class-Computer ausf\u00fchren.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien>\n\ -classpath <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien >\n\ A {0} getrennte Liste von Verzeichnissen, JAR-Archiven,\n\ und ZIP-Archiven f\u00fcr die Suche nach Klassendateien .\n\ -D<Name>=<Wert>\n\ Systemeigenschaft festlegen\n\ -verbose[:class|gc|jni]\n\ ausf\u00fchrliche Ausgabe aktivieren\n\ -version Produktversion drucken und beenden\n\ -version:<Wert>\n\ angegebene Version zum Ausf\u00fchren erforderlich \n\ -showversion Produktversion drucken und fortfahren\n\ -jre-restrict-search | -jre-no-restrict-search\n\ private JREs der Benutzer in Versionssuche ein-/ausschlie\u00dfen\n\ -? -help diese Hilfemeldung drucken\n\ -X Hilfe zu nicht standardm\u00e4\u00dfigen Optionen drucken\n\ -ea[:<Paketname>...|:<Klassenname>]\n\ -enableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t aktivieren\n\ -da[:<Paketname>...|:<Klassenname>]\n\ -disableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t deaktivieren\n\ -esa | --enablesystemassertions\n\ System-Assertions aktivieren\n\ -dsa | --disablesystemassertions\n\ System-Assertions deaktivieren\n\ -agentlib:<Name der Bibliothek>[=<Optionen>]\n\ systemeigene Agent-Bibliothek laden <Name der Bibliothek>, z.B. -agentlib:hprof\n\ siehe auch, -agentlib:jdwp=help und -agentlib:hprof=help\n\ -agentpath:<Pfadname>[=<Optionen>]\n\ systemeigene Agent-Bibliothek \u00fcber vollst\u00e4ndigen Pfadnamen laden\n\ -javaagent:<Jar-Pfad>[=<Optionen>]\n\ Java Programmierungs-Sprachagenten laden, siehe java.lang.instrument\n\ -splash:<Bildpfad>\n\ Eingangsbildschirm mit spezifiziertem Bild anzeigen\nWeitere Informationen finden Sie unter http://java.sun.com/javase/reference. java.launcher.opt.footer =\ -cp <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien>\n\ -classpath <Pfad zur Klassensuche von Verzeichnissen und Zip-/Jar-Dateien >\n\ A {0} getrennte Liste von Verzeichnissen, JAR-Archiven,\n\ und ZIP-Archiven f\u00fcr die Suche nach Klassendateien .\n\ -D<Name>=<Wert>\n\ Systemeigenschaft festlegen\n\ -verbose[:class|gc|jni]\n\ ausf\u00fchrliche Ausgabe aktivieren\n\ -version Produktversion drucken und beenden\n\ -version:<Wert>\n\ angegebene Version zum Ausf\u00fchren erforderlich \n\ -showversion Produktversion drucken und fortfahren\n\ -jre-restrict-search | -no-jre-restrict-search\n\ private JREs der Benutzer in Versionssuche ein-/ausschlie\u00dfen\n\ -? -help diese Hilfemeldung drucken\n\ -X Hilfe zu nicht standardm\u00e4\u00dfigen Optionen drucken\n\ -ea[:<Paketname>...|:<Klassenname>]\n\ -enableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t aktivieren\n\ -da[:<Paketname>...|:<Klassenname>]\n\ -disableassertions[:<Paketname>...|:<Klassenname>]\n\ Assertions mit spezifizierter Granularit\u00e4t deaktivieren\n\ -esa | --enablesystemassertions\n\ System-Assertions aktivieren\n\ -dsa | --disablesystemassertions\n\ System-Assertions deaktivieren\n\ -agentlib:<Name der Bibliothek>[=<Optionen>]\n\ systemeigene Agent-Bibliothek laden <Name der Bibliothek>, z.B. -agentlib:hprof\n\ siehe auch, -agentlib:jdwp=help und -agentlib:hprof=help\n\ -agentpath:<Pfadname>[=<Optionen>]\n\ systemeigene Agent-Bibliothek \u00fcber vollst\u00e4ndigen Pfadnamen laden\n\ -javaagent:<Jar-Pfad>[=<Optionen>]\n\ Java Programmierungs-Sprachagenten laden, siehe java.lang.instrument\n\ -splash:<Bildpfad>\n\ Eingangsbildschirm mit spezifiziertem Bild anzeigen\nWeitere Informationen finden Sie unter http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed gemischte Ausf\u00fchrung des Modus (Standard)\n\ -Xint nur interpretierte Ausf\u00fchrung des Modus\n\ -Xbootclasspath:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ Suchpfad f\u00fcr Bootstrap-Klassen und Ressourcen einrichten\n\ -Xbootclasspath/a:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an das Ende des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xbootclasspath/p:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an den Beginn des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xnoclassgc Klassen-Speicherbereinigung deaktivieren\n\ -Xincgc inkrementelle Speicherbereinigung aktivieren\n\ -Xloggc:<Datei> GC-Status f\u00fcr eine Datei mit Zeitstempeln einrichten\n\ -Xbatch Hintergrund-Kompilation deaktivieren\n\ -Xms<Gr\u00f6\u00dfe> anf\u00e4ngliche Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xmx<Gr\u00f6\u00dfe> maximale Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xss<Gr\u00f6\u00dfe> Gr\u00f6\u00dfe des Java Thread-Stack einstellen\n\ -Xprof CPU-Profildaten ausgeben\n\ -Xfuture genaueste Pr\u00fcfungen aktivieren und zuk\u00fcnftige Standards absehen\n\ -Xrs Verwendung von OS-Signalen durch Java/VM reduzieren (siehe Dokumentation)\n\ -Xcheck:jni zus\u00e4tzliche Pr\u00fcfungen f\u00fcr JNI- Funktionen ausf\u00fchren\n\ -Xshare:off Nicht versuchen, freigegebene Klassendaten zu verwenden\n\ -Xshare:auto Freigegebene Klassendaten verwenden, wenn m\u00f6glich (Standard)\n\ -Xshare:on Nutzung freigegebener Daten ist erforderlich, ansonsten schl\u00e4gt der Vorgang fehl.\n\nDie -X-Optionen sind kein Standard und k\u00f6nnen \u00c4nderungen unterliegen.\n java.launcher.X.usage=\ -Xmixed gemischte Ausf\u00fchrung des Modus (Standard)\n\ -Xint nur interpretierte Ausf\u00fchrung des Modus\n\ -Xbootclasspath:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ Suchpfad f\u00fcr Bootstrap-Klassen und Ressourcen einrichten\n\ -Xbootclasspath/a:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an das Ende des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xbootclasspath/p:<Verzeichnisse und Zip-/Jar-Dateien, die durch {0} getrennt sind>\n\ an den Beginn des Bootstrap-Klassenpfads anh\u00e4ngen\n\ -Xnoclassgc Klassen-Speicherbereinigung deaktivieren\n\ -Xincgc inkrementelle Speicherbereinigung aktivieren\n\ -Xloggc:<Datei> GC-Status f\u00fcr eine Datei mit Zeitstempeln einrichten\n\ -Xbatch Hintergrund-Kompilation deaktivieren\n\ -Xms<Gr\u00f6\u00dfe> anf\u00e4ngliche Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xmx<Gr\u00f6\u00dfe> maximale Java Heap-Gr\u00f6\u00dfe einstellen\n\ -Xss<Gr\u00f6\u00dfe> Gr\u00f6\u00dfe des Java Thread-Stack einstellen\n\ -Xprof CPU-Profildaten ausgeben\n\ -Xfuture genaueste Pr\u00fcfungen aktivieren und zuk\u00fcnftige Standards absehen\n\ -Xrs Verwendung von OS-Signalen durch Java/VM reduzieren (siehe Dokumentation)\n\ -Xcheck:jni zus\u00e4tzliche Pr\u00fcfungen f\u00fcr JNI- Funktionen ausf\u00fchren\n\ -Xshare:off Nicht versuchen, freigegebene Klassendaten zu verwenden\n\ -Xshare:auto Freigegebene Klassendaten verwenden, wenn m\u00f6glich (Standard)\n\ -Xshare:on Nutzung freigegebener Daten ist erforderlich, ansonsten schl\u00e4gt der Vorgang fehl.\n\nDie -X-Optionen sind kein Standard und k\u00f6nnen \u00c4nderungen unterliegen.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La m\u00e1quina virtual predete ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La m\u00e1quina virtual predete
java.launcher.ergo.message2 =\ porque est\u00e1 trabajando en una m\u00e1quina de clase servidor.\n java.launcher.ergo.message2 =\ porque est\u00e1 trabajando en una m\u00e1quina de clase servidor.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n\ -classpath <class search path of directories and zip/jar files>\n\ Una {0} lista de directorios, archivos JAR,\n\ y archivos ZIP en los que buscar los archivos de clase.\n\ -D<name>=<value>\n\ establecer una propiedad de sistema\n\ -verbose[:class|gc|jni]\n\ permitir la salida detallada\n\ -version imprimir versi\u00f3n del producto y salir\n\ -version:<value>\n\ solicitar la versi\u00f3n especificada para ejecutar\n\ -showversion imprimir versi\u00f3n del producto y continuar\n\ -jre-restrict-search | -jre-no-restrict-search\n\ incluir/excluir JRE privados del usuario en la b\u00fasqueda de la versi\u00f3n\n\ -? -help imprimir este mensaje de ayuda\n\ -X imprimir ayuda en las opciones no est\u00e1ndar\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ permitir afirmaciones con granularidad especificada\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ desactivar afirmaciones con granularidad especificada\n\ -esa | -enablesystemassertions\n\ permitir afirmaciones del sistema\n\ -dsa | -disablesystemassertions\n\ desactivar afirmaciones del sistema\n\ -agentlib:<libname>[=<options>]\n\ cargar biblioteca de agente nativo<libname>, por ejemplo -agentlib:hprof\n\ consulte tambi\u00e9n, -agentlib:jdwp=help y -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ cargar biblioteca de agente nativo por ruta completa\n\ -javaagent:<jarpath>[=<options>]\n\ cargar agente del lenguaje de programaci\u00f3n Java, consulte java.lang.instrument\n\ -splash:<imagepath>\n\ mostrar pantalla de bienvenida con imagen especificada\nConsulte http://java.sun.com/javase/reference para m\u00e1s informaci\u00f3n. java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n\ -classpath <class search path of directories and zip/jar files>\n\ Una {0} lista de directorios, archivos JAR,\n\ y archivos ZIP en los que buscar los archivos de clase.\n\ -D<name>=<value>\n\ establecer una propiedad de sistema\n\ -verbose[:class|gc|jni]\n\ permitir la salida detallada\n\ -version imprimir versi\u00f3n del producto y salir\n\ -version:<value>\n\ solicitar la versi\u00f3n especificada para ejecutar\n\ -showversion imprimir versi\u00f3n del producto y continuar\n\ -jre-restrict-search | -no-jre-restrict-search\n\ incluir/excluir JRE privados del usuario en la b\u00fasqueda de la versi\u00f3n\n\ -? -help imprimir este mensaje de ayuda\n\ -X imprimir ayuda en las opciones no est\u00e1ndar\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ permitir afirmaciones con granularidad especificada\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ desactivar afirmaciones con granularidad especificada\n\ -esa | -enablesystemassertions\n\ permitir afirmaciones del sistema\n\ -dsa | -disablesystemassertions\n\ desactivar afirmaciones del sistema\n\ -agentlib:<libname>[=<options>]\n\ cargar biblioteca de agente nativo<libname>, por ejemplo -agentlib:hprof\n\ consulte tambi\u00e9n, -agentlib:jdwp=help y -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ cargar biblioteca de agente nativo por ruta completa\n\ -javaagent:<jarpath>[=<options>]\n\ cargar agente del lenguaje de programaci\u00f3n Java, consulte java.lang.instrument\n\ -splash:<imagepath>\n\ mostrar pantalla de bienvenida con imagen especificada\nConsulte http://java.sun.com/javase/reference para m\u00e1s informaci\u00f3n.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed modo mixto de ejecuci\u00f3n (predeterminado)\n\ -Xint s\u00f3lo modo de ejecuci\u00f3n interpretado\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ definir ruta de b\u00fasqueda para clases y recursos de la rutina de carga\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al final de la ruta de clase de la rutina de carga\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al principio de la ruta de clase de la rutina de carga\n\ -Xnoclassgc desactivar recolecci\u00f3n de residuos de clase\n\ -Xincgc permitir recolecci\u00f3n de residuos incremental\n\ -Xloggc:<file> registrar estado de GC en un archivo con marcas de tiempo\n\ -Xbatch desactivar recopilaci\u00f3n de fondos\n\ -Xms<size> definir tama\u00f1o del mont\u00f3n de Java inicial\n\ -Xmx<size> definir tama\u00f1o m\u00e1ximo del mont\u00f3n de Java\n\ -Xss<size> definir tama\u00f1o de la pila del subproceso de java\n\ -Xprof salida de datos del perfil de la cpu\n\ -Xfuture permitir comprobaciones m\u00e1s estrictas para los procesos predeterminados futuros\n\ -Xrs reducir el uso de se\u00f1ales del SO por parte de Java o la m\u00e1quina virtual (consulte la documentaci\u00f3n)\n\ -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n\ -Xshare:off no intentar utilizar datos de clase compartidos\n\ -Xshare:auto utilizar datos de clase compartidos siempre que sea posible (predeterminado)\n\ -Xshare:on solicitar el uso obligatorio de datos de clase compartidos.\n\nLas opciones "-X" no son est\u00e1ndar y pueden sufrir modificaciones sin previo aviso.\n java.launcher.X.usage=\ -Xmixed modo mixto de ejecuci\u00f3n (predeterminado)\n\ -Xint s\u00f3lo modo de ejecuci\u00f3n interpretado\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ definir ruta de b\u00fasqueda para clases y recursos de la rutina de carga\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al final de la ruta de clase de la rutina de carga\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ a\u00f1adir al principio de la ruta de clase de la rutina de carga\n\ -Xnoclassgc desactivar recolecci\u00f3n de residuos de clase\n\ -Xincgc permitir recolecci\u00f3n de residuos incremental\n\ -Xloggc:<file> registrar estado de GC en un archivo con marcas de tiempo\n\ -Xbatch desactivar recopilaci\u00f3n de fondos\n\ -Xms<size> definir tama\u00f1o del mont\u00f3n de Java inicial\n\ -Xmx<size> definir tama\u00f1o m\u00e1ximo del mont\u00f3n de Java\n\ -Xss<size> definir tama\u00f1o de la pila del subproceso de java\n\ -Xprof salida de datos del perfil de la cpu\n\ -Xfuture permitir comprobaciones m\u00e1s estrictas para los procesos predeterminados futuros\n\ -Xrs reducir el uso de se\u00f1ales del SO por parte de Java o la m\u00e1quina virtual (consulte la documentaci\u00f3n)\n\ -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n\ -Xshare:off no intentar utilizar datos de clase compartidos\n\ -Xshare:auto utilizar datos de clase compartidos siempre que sea posible (predeterminado)\n\ -Xshare:on solicitar el uso obligatorio de datos de clase compartidos.\n\nLas opciones "-X" no son est\u00e1ndar y pueden sufrir modificaciones sin previo aviso.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La machine virtuelle par d\u00e ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La machine virtuelle par d\u00e
java.launcher.ergo.message2 =\ car vous utilisez une machine de type serveur.\n java.launcher.ergo.message2 =\ car vous utilisez une machine de type serveur.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ -classpath <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ Une liste s\u00e9par\u00e9e {0} de r\u00e9pertoires, archives JAR\n\ et archives ZIP dans laquelle rechercher des fichiers de classe.\n\ -D<nom>=<valeur>\n\ d\u00e9finir une propri\u00e9t\u00e9 syst\u00e8me\n\ -verbose[:class|gc|jni]\n\ activer une sortie d\u00e9taill\u00e9ee\n\ -version imprimer la version du produit et quitter\n\ -version:<valeur>\n\ utiliser la version sp\u00e9cifi\u00e9e pour l''ex\u00e9cution\n\ -showversion imprimer la version du produit et continuer\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inclure/exclure les JRE priv\u00e9s d''utilisateur dans la recherche de version\n\ -? -help imprimer ce message d''aide\n\ -X imprimer l''aide relative aux options non standard\n\ -ea[:<nom du package>...|:<nom de la classe>]\n\ -enableassertions[:<nom du package>...|:<nom de la classe>]\n\ activer les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -da[:<nom du package>...|:<nom de la classe>]\n\ -disableassertions[:<nom du package>...|:<nom de la classe>]\n\ d\u00e9sactiver les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -esa | -enablesystemassertions\n\ activer les assertions syst\u00e8me\n\ -dsa | -disablesystemassertions\n\ d\u00e9sactiver les assertions syst\u00e8me\n\ -agentlib:<nom de la biblioth\u00e8que>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs<nom de la biblioth\u00e8que>, par exemple -agentlib:hprof\n\ voir \u00e9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n\ -agentpath:<nom du chemin>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs en indiquant le chemin complet\n\ -javaagent:<chemin jar>[=<options>]\n\ charger l''agent de langage de programmation Java, voir java.lang.instrument\n\ -splash:<chemin de l''image>\n\ afficher l''\u00e9cran de bienvenue avec l''image sp\u00e9cifi\u00e9e\nPour plus de d\u00e9tails, reportez-vous \u00e0 la page http://java.sun.com/javase/reference. java.launcher.opt.footer =\ -cp <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ -classpath <chemin de recherche de classe des r\u00e9pertoires et fichiers zip/jar>\n\ Une liste s\u00e9par\u00e9e {0} de r\u00e9pertoires, archives JAR\n\ et archives ZIP dans laquelle rechercher des fichiers de classe.\n\ -D<nom>=<valeur>\n\ d\u00e9finir une propri\u00e9t\u00e9 syst\u00e8me\n\ -verbose[:class|gc|jni]\n\ activer une sortie d\u00e9taill\u00e9ee\n\ -version imprimer la version du produit et quitter\n\ -version:<valeur>\n\ utiliser la version sp\u00e9cifi\u00e9e pour l''ex\u00e9cution\n\ -showversion imprimer la version du produit et continuer\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inclure/exclure les JRE priv\u00e9s d''utilisateur dans la recherche de version\n\ -? -help imprimer ce message d''aide\n\ -X imprimer l''aide relative aux options non standard\n\ -ea[:<nom du package>...|:<nom de la classe>]\n\ -enableassertions[:<nom du package>...|:<nom de la classe>]\n\ activer les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -da[:<nom du package>...|:<nom de la classe>]\n\ -disableassertions[:<nom du package>...|:<nom de la classe>]\n\ d\u00e9sactiver les assertions avec la granularit\u00e9 sp\u00e9cifi\u00e9e\n\ -esa | -enablesystemassertions\n\ activer les assertions syst\u00e8me\n\ -dsa | -disablesystemassertions\n\ d\u00e9sactiver les assertions syst\u00e8me\n\ -agentlib:<nom de la biblioth\u00e8que>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs<nom de la biblioth\u00e8que>, par exemple -agentlib:hprof\n\ voir \u00e9galement, -agentlib:jdwp=help et -agentlib:hprof=help\n\ -agentpath:<nom du chemin>[=<options>]\n\ charger la biblioth\u00e8que d''agents natifs en indiquant le chemin complet\n\ -javaagent:<chemin jar>[=<options>]\n\ charger l''agent de langage de programmation Java, voir java.lang.instrument\n\ -splash:<chemin de l''image>\n\ afficher l''\u00e9cran de bienvenue avec l''image sp\u00e9cifi\u00e9e\nPour plus de d\u00e9tails, reportez-vous \u00e0 la page http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed ex\u00e9cution du mode compil\u00e9 (par d\u00e9faut)\n\ -Xint ex\u00e9cution du mode interpr\u00e9t\u00e9 uniquement\n\ -Xbootclasspath:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ d\u00e9finir le chemin de recherche pour les classes et ressources bootstrap\n\ -Xbootclasspath/a:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter \u00e0 la fin du chemin de la classe bootstrap\n\ -Xbootclasspath/p:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter au d\u00e9but du chemin de la classe bootstrap\n\ -Xnoclassgc d\u00e9sactiver la collection d''informations parasites sur la classe\n\ -Xincgc activer la collection incr\u00e9mentielle d''informations parasites\n\ -Xloggc:<fichier> enregistrer le statut GC dans un fichier horodat\u00e9\n\ -Xbatch d\u00e9sactiver la compilation d''arri\u00e8re-plans\n\ -Xms<taille> d\u00e9finir la taille initiale des tas Java\n\ -Xmx<taille> d\u00e9finir la taille maximale des tas Java\n\ -Xss<taille> d\u00e9finir la taille des piles de fil Java\n\ -Xprof \u00e9mettre des donn\u00e9es de profilage d''UC\n\ -Xfuture activer des contr\u00f4les plus stricts, en anticipant les erreurs futures\n\ -Xrs r\u00e9duire l''utilisation des signaux d''OS par Java/la machine virtuelle (reportez-vous \u00e0 la documentation)\n\ -Xcheck:jni effectuer des contr\u00f4les suppl\u00e9mentaires pour les fonctions JNI\n\ -Xshare:off ne pas tenter d''utiliser les donn\u00e9es de classe partag\u00e9es\n\ -Xshare:auto utiliser les donn\u00e9es de classe partag\u00e9es si possible (par d\u00e9faut)\n\ -Xshare:on forcer l''utilisation de donn\u00e9es de classe partag\u00e9es, sinon \u00e9chec.\n\nLes options\u00a0X ne sont pas standard et sont sujettes \u00e0 modification sans pr\u00e9avis.\n java.launcher.X.usage=\ -Xmixed ex\u00e9cution du mode compil\u00e9 (par d\u00e9faut)\n\ -Xint ex\u00e9cution du mode interpr\u00e9t\u00e9 uniquement\n\ -Xbootclasspath:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ d\u00e9finir le chemin de recherche pour les classes et ressources bootstrap\n\ -Xbootclasspath/a:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter \u00e0 la fin du chemin de la classe bootstrap\n\ -Xbootclasspath/p:<r\u00e9pertoires et fichiers zip/jar s\u00e9par\u00e9s par {0}>\n\ ajouter au d\u00e9but du chemin de la classe bootstrap\n\ -Xnoclassgc d\u00e9sactiver la collection d''informations parasites sur la classe\n\ -Xincgc activer la collection incr\u00e9mentielle d''informations parasites\n\ -Xloggc:<fichier> enregistrer le statut GC dans un fichier horodat\u00e9\n\ -Xbatch d\u00e9sactiver la compilation d''arri\u00e8re-plans\n\ -Xms<taille> d\u00e9finir la taille initiale des tas Java\n\ -Xmx<taille> d\u00e9finir la taille maximale des tas Java\n\ -Xss<taille> d\u00e9finir la taille des piles de fil Java\n\ -Xprof \u00e9mettre des donn\u00e9es de profilage d''UC\n\ -Xfuture activer des contr\u00f4les plus stricts, en anticipant les erreurs futures\n\ -Xrs r\u00e9duire l''utilisation des signaux d''OS par Java/la machine virtuelle (reportez-vous \u00e0 la documentation)\n\ -Xcheck:jni effectuer des contr\u00f4les suppl\u00e9mentaires pour les fonctions JNI\n\ -Xshare:off ne pas tenter d''utiliser les donn\u00e9es de classe partag\u00e9es\n\ -Xshare:auto utiliser les donn\u00e9es de classe partag\u00e9es si possible (par d\u00e9faut)\n\ -Xshare:on forcer l''utilisation de donn\u00e9es de classe partag\u00e9es, sinon \u00e9chec.\n\nLes options\u00a0X ne sont pas standard et sont sujettes \u00e0 modification sans pr\u00e9avis.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La macchina virtuale predefinit ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ La macchina virtuale predefinit
java.launcher.ergo.message2 =\ perch\u00e9 l'esecuzione avviene su una macchina di classe server.\n java.launcher.ergo.message2 =\ perch\u00e9 l'esecuzione avviene su una macchina di classe server.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <percorso di ricerca classe di directory e file zip/jar>\n\ -classpath <percorso di ricerca classe di directory e file zip/jar>\n\ Elenco separato da {0} di directory, archivi JAR\n\ e archivi ZIP in cui cercare i file di classe.\n\ -D<nome>=<valore>\n\ imposta una propriet\u00e0 di sistema\n\ -verbose[:class|gc|jni]\n\ attiva l''output dettagliato\n\ -version stampa la versione del prodotto ed esce\n\ -version:<valore>\n\ richiede la versione specificata per l''esecuzione\n\ -showversion stampa la versione del prodotto e procede\n\ -jre-restrict-search | -jre-no-restrict-search\n\ consente di includere/escludere JRE privati dell''utente nella ricerca della versione\n\ -? -help stampa il presente messaggio della Guida\n\ -X stampa la Guida delle opzioni non standard\n\ -ea[:<nomepacchetto>...|:<nomeclasse>]\n\ -enableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ attiva le asserzioni con la granularit\u00e0 specificata\n\ -da[:<nomepacchetto>...|:<nomeclasse>]\n\ -disableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ disattiva le asserzioni con la granularit\u00e0 specificata\n\ -esa | -enablesystemassertions\n\ attiva le asserzioni di sistema\n\ -dsa | -disablesystemassertions\n\ disattiva le asserzioni di sistema\n\ -agentlib:<nomelibreria>[=<opzioni>]\n\ carica la libreria agente nativa <nomelibreria>, ad es. -agentlib:hprof\n\ vedere anche, -agentlib:jdwp=help e -agentlib:hprof=help\n\ -agentpath:<percorso>[=<opzioni>]\n\ carica la libreria agente nativa in base al percorso completo\n\ -javaagent:<percorsojar>[=<opzioni>]\n\ carica l''agente del linguaggio di programmazione Java, vedere java.lang.instrument\n\ -splash:<percorsoimmagine>\n\ mostra la schermata iniziale con l''immagine specificata\nPer ulteriori informazioni, visitare http://java.sun.com/javase/reference. java.launcher.opt.footer =\ -cp <percorso di ricerca classe di directory e file zip/jar>\n\ -classpath <percorso di ricerca classe di directory e file zip/jar>\n\ Elenco separato da {0} di directory, archivi JAR\n\ e archivi ZIP in cui cercare i file di classe.\n\ -D<nome>=<valore>\n\ imposta una propriet\u00e0 di sistema\n\ -verbose[:class|gc|jni]\n\ attiva l''output dettagliato\n\ -version stampa la versione del prodotto ed esce\n\ -version:<valore>\n\ richiede la versione specificata per l''esecuzione\n\ -showversion stampa la versione del prodotto e procede\n\ -jre-restrict-search | -no-jre-restrict-search\n\ consente di includere/escludere JRE privati dell''utente nella ricerca della versione\n\ -? -help stampa il presente messaggio della Guida\n\ -X stampa la Guida delle opzioni non standard\n\ -ea[:<nomepacchetto>...|:<nomeclasse>]\n\ -enableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ attiva le asserzioni con la granularit\u00e0 specificata\n\ -da[:<nomepacchetto>...|:<nomeclasse>]\n\ -disableassertions[:<nomepacchetto>...|:<nomeclasse>]\n\ disattiva le asserzioni con la granularit\u00e0 specificata\n\ -esa | -enablesystemassertions\n\ attiva le asserzioni di sistema\n\ -dsa | -disablesystemassertions\n\ disattiva le asserzioni di sistema\n\ -agentlib:<nomelibreria>[=<opzioni>]\n\ carica la libreria agente nativa <nomelibreria>, ad es. -agentlib:hprof\n\ vedere anche, -agentlib:jdwp=help e -agentlib:hprof=help\n\ -agentpath:<percorso>[=<opzioni>]\n\ carica la libreria agente nativa in base al percorso completo\n\ -javaagent:<percorsojar>[=<opzioni>]\n\ carica l''agente del linguaggio di programmazione Java, vedere java.lang.instrument\n\ -splash:<percorsoimmagine>\n\ mostra la schermata iniziale con l''immagine specificata\nPer ulteriori informazioni, visitare http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00e0 mista (predefinita)\n\ -Xint solo esecuzione in modalit\u00e0 interpretata\n\ -Xbootclasspath:<directory e file zip/jar separati da {0}>\n\ imposta il percorso di ricerca per classi e risorse di bootstrap\n\ -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n\ accoda alla fine del percorso della classe di bootstrap\n\ -Xbootclasspath/p:<directory e file zip/jar separati da {0}>\n\ antepone al percorso della classe di bootsrap\n\ -Xnoclassgc disattiva Garbage Collection per la classe\n\ -Xincgc attiva Garbage Collection incrementale\n\ -Xloggc:<file> registra lo stato GC in un file con timestamp\n\ -Xbatch disattiva la compilazione in background\n\ -Xms<dimensione> imposta la dimensione heap Java iniziale\n\ -Xmx<dimensione> imposta la dimensione heap Java massima\n\ -Xss<dimensione> imposta la dimensione dello stack del thread Java\n\ -Xprof dati di profilo della CPU di output\n\ -Xfuture attiva verifiche pi\u00f9 dettagliate, anticipa le impostazioni predefinite future\n\ -Xrs riduce l''uso di segnali OS da parte di Java o della macchina virtuale (vedere la documentazione)\n\ -Xcheck:jni esegue verifiche aggiuntive per le funzioni JNI\n\ -Xshare:off esclude l''utilizzo di dati classe condivisi\n\ -Xshare:auto imposta l''utilizzo di dati classe condivisi ogni volta che \u00e8 possibile (impostazione predefinita)\n\ -Xshare:on richiede l''utilizzo di dati classe condivisi, in caso contrario origina un errore.\n\nLe opzioni -X sono non standard e soggette a modifiche senza preavviso.\n java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00e0 mista (predefinita)\n\ -Xint solo esecuzione in modalit\u00e0 interpretata\n\ -Xbootclasspath:<directory e file zip/jar separati da {0}>\n\ imposta il percorso di ricerca per classi e risorse di bootstrap\n\ -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n\ accoda alla fine del percorso della classe di bootstrap\n\ -Xbootclasspath/p:<directory e file zip/jar separati da {0}>\n\ antepone al percorso della classe di bootsrap\n\ -Xnoclassgc disattiva Garbage Collection per la classe\n\ -Xincgc attiva Garbage Collection incrementale\n\ -Xloggc:<file> registra lo stato GC in un file con timestamp\n\ -Xbatch disattiva la compilazione in background\n\ -Xms<dimensione> imposta la dimensione heap Java iniziale\n\ -Xmx<dimensione> imposta la dimensione heap Java massima\n\ -Xss<dimensione> imposta la dimensione dello stack del thread Java\n\ -Xprof dati di profilo della CPU di output\n\ -Xfuture attiva verifiche pi\u00f9 dettagliate, anticipa le impostazioni predefinite future\n\ -Xrs riduce l''uso di segnali OS da parte di Java o della macchina virtuale (vedere la documentazione)\n\ -Xcheck:jni esegue verifiche aggiuntive per le funzioni JNI\n\ -Xshare:off esclude l''utilizzo di dati classe condivisi\n\ -Xshare:auto imposta l''utilizzo di dati classe condivisi ogni volta che \u00e8 possibile (impostazione predefinita)\n\ -Xshare:on richiede l''utilizzo di dati classe condivisi, in caso contrario origina un errore.\n\nLe opzioni -X sono non standard e soggette a modifiche senza preavviso.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u30c7\u30d5\u30a9\u30eb\u30c8 ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u30c7\u30d5\u30a9\u30eb\u30c8
java.launcher.ergo.message2 =\ \u7406\u7531\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30af\u30e9\u30b9\u306e\u30de\u30b7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\n java.launcher.ergo.message2 =\ \u7406\u7531\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30af\u30e9\u30b9\u306e\u30de\u30b7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ -classpath <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001JAR \u30a2\u30fc\u30ab\u30a4\u30d6\u3001\n\ \u304a\u3088\u3073 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e {0} \u3067\u5206\u5272\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3002\n\ -D<name>=<value>\n\ \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u8a2d\u5b9a\n\ -verbose[:class|gc|jni]\n\ \u8a73\u7d30\u51fa\u529b\u306e\u6709\u52b9\u5316\n\ -version \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d42\u4e86\n\ -version:<value>\n\ \u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8981\u6c42\n\ -showversion \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d99\u7d9a\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u30d0\u30fc\u30b8\u30e7\u30f3\u691c\u7d22\u306b\u30e6\u30fc\u30b6\u30fc\u306e\u975e\u516c\u958b JRE \u3092\u542b\u3081\u308b\u304b\u9664\u5916\u3059\u308b\u304b\u3092\u5207\u308a\u66ff\u3048\u308b\n\ -? -help \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5370\u5237\n\ -X \u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d8\u30eb\u30d7\u3092\u5370\u5237\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -esa | -enablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -dsa | -disablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -agentlib:<libname>[=<options>]\n\ \u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea <libname> (\u4f8b: -agentlib:hprof) \u3092\u30ed\u30fc\u30c9\n\ \u95a2\u9023\u9805\u76ee\u3001 -agentlib:jdwp=help and -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u5b8c\u5168\u306a\u30d1\u30b9\u540d\u3067\u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ed\u30fc\u30c9\n\ -javaagent:<jarpath>[=<options>]\n\ Java \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30ed\u30fc\u30c9\u3002java.lang.instrument \u3092\u53c2\u7167\n\ -splash:<imagepath>\n\ \u6307\u5b9a\u3057\u305f\u753b\u50cf\u306e\u30b9\u30d7\u30e9\u30c3\u30b7\u30e5\u753b\u9762\u3092\u8868\u793a\n\u8a73\u7d30\u306f http://java.sun.com/javase/reference \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002 java.launcher.opt.footer =\ -cp <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ -classpath <\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304a\u3088\u3073 ZIP/JAR \u30d5\u30a1\u30a4\u30eb\u306e\u30af\u30e9\u30b9\u691c\u7d22\u30d1\u30b9>\n\ \u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u691c\u7d22\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3001JAR \u30a2\u30fc\u30ab\u30a4\u30d6\u3001\n\ \u304a\u3088\u3073 ZIP \u30a2\u30fc\u30ab\u30a4\u30d6\u306e {0} \u3067\u5206\u5272\u3055\u308c\u305f\u30ea\u30b9\u30c8\u3002\n\ -D<name>=<value>\n\ \u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u8a2d\u5b9a\n\ -verbose[:class|gc|jni]\n\ \u8a73\u7d30\u51fa\u529b\u306e\u6709\u52b9\u5316\n\ -version \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d42\u4e86\n\ -version:<value>\n\ \u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8981\u6c42\n\ -showversion \u88fd\u54c1\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5370\u5237\u3057\u3066\u7d99\u7d9a\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u30d0\u30fc\u30b8\u30e7\u30f3\u691c\u7d22\u306b\u30e6\u30fc\u30b6\u30fc\u306e\u975e\u516c\u958b JRE \u3092\u542b\u3081\u308b\u304b\u9664\u5916\u3059\u308b\u304b\u3092\u5207\u308a\u66ff\u3048\u308b\n\ -? -help \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5370\u5237\n\ -X \u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d8\u30eb\u30d7\u3092\u5370\u5237\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u6307\u5b9a\u3057\u305f\u7c92\u5ea6\u3067\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -esa | -enablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u6709\u52b9\u5316\n\ -dsa | -disablesystemassertions\n\ \u30b7\u30b9\u30c6\u30e0\u30a2\u30b5\u30fc\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -agentlib:<libname>[=<options>]\n\ \u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea <libname> (\u4f8b: -agentlib:hprof) \u3092\u30ed\u30fc\u30c9\n\ \u95a2\u9023\u9805\u76ee\u3001 -agentlib:jdwp=help and -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u5b8c\u5168\u306a\u30d1\u30b9\u540d\u3067\u30cd\u30a4\u30c6\u30a3\u30d6\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30ed\u30fc\u30c9\n\ -javaagent:<jarpath>[=<options>]\n\ Java \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u30ed\u30fc\u30c9\u3002java.lang.instrument \u3092\u53c2\u7167\n\ -splash:<imagepath>\n\ \u6307\u5b9a\u3057\u305f\u753b\u50cf\u306e\u30b9\u30d7\u30e9\u30c3\u30b7\u30e5\u753b\u9762\u3092\u8868\u793a\n\u8a73\u7d30\u306f http://java.sun.com/javase/reference \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u30e2\u30fc\u30c9\u3067\u306e\u5b9f\u884c (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xint \u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30bf\u30e2\u30fc\u30c9\u3067\u306e\u307f\u5b9f\u884c\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u304a\u3088\u3073\u30ea\u30bd\u30fc\u30b9\u306e\u691c\u7d22\u30d1\u30b9\u3092\u8a2d\u5b9a\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u672b\u5c3e\u306b\u8ffd\u52a0\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u5192\u982d\u306b\u8ffd\u52a0\n\ -Xnoclassgc \u30af\u30e9\u30b9\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xincgc \u5897\u5206\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xloggc:<file> \u30d5\u30a1\u30a4\u30eb\u306e GC \u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u4ed8\u304d\u3067\u8a18\u9332\n\ -Xbatch \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u7121\u52b9\u5316\n\ -Xms<size> \u521d\u671f Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xmx<size> \u6700\u5927 Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xss<size> Java \u30b9\u30ec\u30c3\u30c9\u30b9\u30bf\u30c3\u30af\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xprof CPU \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30c7\u30fc\u30bf\u3092\u51fa\u529b\n\ -Xfuture \u4eca\u5f8c\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3059\u308b\u6700\u3082\u53b3\u683c\u306a\u30c1\u30a7\u30c3\u30af\u3092\u6709\u52b9\u5316\n\ -Xrs Java/VM \u306e OS \u30b7\u30b0\u30ca\u30eb\u4f7f\u7528\u3092\u524a\u6e1b (\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u53c2\u7167)\n\ -Xcheck:jni JNI \u95a2\u6570\u306e\u8ffd\u52a0\u30c1\u30a7\u30c3\u30af\u3092\u5b9f\u884c\n\ -Xshare:off \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8a66\u884c\u3057\u306a\u3044\n\ -Xshare:auto \u53ef\u80fd\u306a\u5834\u5408\u306f\u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u3092\u4f7f\u7528 (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xshare:on \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8981\u6c42 (\u305d\u3046\u3057\u306a\u3044\u3068\u969c\u5bb3\u304c\u767a\u751f\u3059\u308b\u5834\u5408)\n\n-X \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u975e\u6a19\u6e96\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001\u4e88\u544a\u306a\u304f\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\n java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u30e2\u30fc\u30c9\u3067\u306e\u5b9f\u884c (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xint \u30a4\u30f3\u30bf\u30fc\u30d7\u30ea\u30bf\u30e2\u30fc\u30c9\u3067\u306e\u307f\u5b9f\u884c\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u304a\u3088\u3073\u30ea\u30bd\u30fc\u30b9\u306e\u691c\u7d22\u30d1\u30b9\u3092\u8a2d\u5b9a\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u672b\u5c3e\u306b\u8ffd\u52a0\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\u30af\u30e9\u30b9\u306e\u30d1\u30b9\u306e\u5192\u982d\u306b\u8ffd\u52a0\n\ -Xnoclassgc \u30af\u30e9\u30b9\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xincgc \u5897\u5206\u30ac\u30fc\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u7121\u52b9\u5316\n\ -Xloggc:<file> \u30d5\u30a1\u30a4\u30eb\u306e GC \u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u4ed8\u304d\u3067\u8a18\u9332\n\ -Xbatch \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u7121\u52b9\u5316\n\ -Xms<size> \u521d\u671f Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xmx<size> \u6700\u5927 Java \u30d2\u30fc\u30d7\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xss<size> Java \u30b9\u30ec\u30c3\u30c9\u30b9\u30bf\u30c3\u30af\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\ -Xprof CPU \u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u30c7\u30fc\u30bf\u3092\u51fa\u529b\n\ -Xfuture \u4eca\u5f8c\u30c7\u30d5\u30a9\u30eb\u30c8\u3068\u3059\u308b\u6700\u3082\u53b3\u683c\u306a\u30c1\u30a7\u30c3\u30af\u3092\u6709\u52b9\u5316\n\ -Xrs Java/VM \u306e OS \u30b7\u30b0\u30ca\u30eb\u4f7f\u7528\u3092\u524a\u6e1b (\u30de\u30cb\u30e5\u30a2\u30eb\u3092\u53c2\u7167)\n\ -Xcheck:jni JNI \u95a2\u6570\u306e\u8ffd\u52a0\u30c1\u30a7\u30c3\u30af\u3092\u5b9f\u884c\n\ -Xshare:off \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8a66\u884c\u3057\u306a\u3044\n\ -Xshare:auto \u53ef\u80fd\u306a\u5834\u5408\u306f\u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u3092\u4f7f\u7528 (\u30c7\u30d5\u30a9\u30eb\u30c8)\n\ -Xshare:on \u5171\u6709\u30af\u30e9\u30b9\u30c7\u30fc\u30bf\u306e\u4f7f\u7528\u3092\u8981\u6c42 (\u305d\u3046\u3057\u306a\u3044\u3068\u969c\u5bb3\u304c\u767a\u751f\u3059\u308b\u5834\u5408)\n\n-X \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u975e\u6a19\u6e96\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u3001\u4e88\u544a\u306a\u304f\u5909\u66f4\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \uae30\ubcf8 VM\uc740 {0}\uc784 ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \uae30\ubcf8 VM\uc740 {0}\uc784
java.launcher.ergo.message2 =\ \uadf8 \uc774\uc720\ub294 \uc11c\ubc84 \ud074\ub798\uc2a4 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589 \uc911\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.\n java.launcher.ergo.message2 =\ \uadf8 \uc774\uc720\ub294 \uc11c\ubc84 \ud074\ub798\uc2a4 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc2e4\ud589 \uc911\uc774\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ -classpath <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uae30 \uc704\ud55c \ub514\ub809\ud1a0\ub9ac, JAR \uc544\uce74\uc774\ube0c \ubc0f\n\ ZIP \uc544\uce74\uc774\ube0c\uc758 {0} \uad6c\ubd84\ub41c \ubaa9\ub85d\uc785\ub2c8\ub2e4.\n\ -D<name>=<value>\n\ \uc2dc\uc2a4\ud15c \ub4f1\ub85d \uc815\ubcf4 \uc124\uc815\n\ -verbose[:class|gc|jni]\n\ \ucd94\uac00 \ucd9c\ub825 \uc0ac\uc6a9\n\ -version \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uc885\ub8cc\n\ -version:<value>\n\ \uc2e4\ud589\ud558\ub824\uba74 \uc9c0\uc815\ud55c \ubc84\uc804 \ud544\uc694\n\ -showversion \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uacc4\uc18d\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \ubc84\uc804 \uac80\uc0c9\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uac1c\uc778 JRE \ud3ec\ud568/\uc81c\uc678\n\ -? -help \uc774 \ub3c4\uc6c0\ub9d0 \uba54\uc2dc\uc9c0 \uc778\uc1c4\n\ -X \ube44\ud45c\uc900 \uc635\uc158\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 \uc778\uc1c4\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -esa | -enablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9\n\ -dsa | -disablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -agentlib:<libname>[=<options>]\n\ \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac <libname> \ub85c\ub4dc, \uc608: -agentlib:hprof\n\ \ucc38\uc870: -agentlib:jdwp=help \ubc0f -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \uc804\uccb4 \uacbd\ub85c \uc774\ub984\uc73c\ub85c \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub85c\ub4dc\n\ -javaagent:<jarpath>[=<options>]\n\ Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc5d0\uc774\uc804\ud2b8 \ub85c\ub4dc, java.lang.instrument \ucc38\uc870\n\ -splash:<imagepath>\n\ \uc9c0\uc815\ud55c \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud50c\ub798\uc2dc \ud654\uba74 \ud45c\uc2dc\n\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http://java.sun.com/javase/reference\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. java.launcher.opt.footer =\ -cp <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ -classpath <\ub514\ub809\ud1a0\ub9ac \ubc0f zip/jar \ud30c\uc77c\uc758 \ud074\ub798\uc2a4 \uac80\uc0c9 \uacbd\ub85c>\n\ \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \uac80\uc0c9\ud558\uae30 \uc704\ud55c \ub514\ub809\ud1a0\ub9ac, JAR \uc544\uce74\uc774\ube0c \ubc0f\n\ ZIP \uc544\uce74\uc774\ube0c\uc758 {0} \uad6c\ubd84\ub41c \ubaa9\ub85d\uc785\ub2c8\ub2e4.\n\ -D<name>=<value>\n\ \uc2dc\uc2a4\ud15c \ub4f1\ub85d \uc815\ubcf4 \uc124\uc815\n\ -verbose[:class|gc|jni]\n\ \ucd94\uac00 \ucd9c\ub825 \uc0ac\uc6a9\n\ -version \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uc885\ub8cc\n\ -version:<value>\n\ \uc2e4\ud589\ud558\ub824\uba74 \uc9c0\uc815\ud55c \ubc84\uc804 \ud544\uc694\n\ -showversion \uc81c\ud488 \ubc84\uc804\uc744 \uc778\uc1c4\ud558\uace0 \uacc4\uc18d\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \ubc84\uc804 \uac80\uc0c9\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uac1c\uc778 JRE \ud3ec\ud568/\uc81c\uc678\n\ -? -help \uc774 \ub3c4\uc6c0\ub9d0 \uba54\uc2dc\uc9c0 \uc778\uc1c4\n\ -X \ube44\ud45c\uc900 \uc635\uc158\uc5d0 \ub300\ud55c \ub3c4\uc6c0\ub9d0 \uc778\uc1c4\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \uc9c0\uc815\ud55c \uc815\ubc00\ub3c4\uc758 \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -esa | -enablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9\n\ -dsa | -disablesystemassertions\n\ \uc2dc\uc2a4\ud15c \uba85\uc81c \uc0ac\uc6a9 \uc548 \ud568\n\ -agentlib:<libname>[=<options>]\n\ \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac <libname> \ub85c\ub4dc, \uc608: -agentlib:hprof\n\ \ucc38\uc870: -agentlib:jdwp=help \ubc0f -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \uc804\uccb4 \uacbd\ub85c \uc774\ub984\uc73c\ub85c \uc6d0\uc2dc \uc5d0\uc774\uc804\ud2b8 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub85c\ub4dc\n\ -javaagent:<jarpath>[=<options>]\n\ Java \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4 \uc5d0\uc774\uc804\ud2b8 \ub85c\ub4dc, java.lang.instrument \ucc38\uc870\n\ -splash:<imagepath>\n\ \uc9c0\uc815\ud55c \uc774\ubbf8\uc9c0\uc758 \uc2a4\ud50c\ub798\uc2dc \ud654\uba74 \ud45c\uc2dc\n\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 http://java.sun.com/javase/reference\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \ud63c\ud569 \ubaa8\ub4dc \uc2e4\ud589(\uae30\ubcf8\uac12)\n\ -Xint \ud574\uc11d\ub41c \ubaa8\ub4dc \uc2e4\ud589 \uc804\uc6a9\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4\uc640 \uc790\uc6d0\uc758 \uac80\uc0c9 \uacbd\ub85c \uc124\uc815\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \ub05d\uc5d0 \ucd94\uac00\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \uc55e\uc5d0 \ucd94\uac00\n\ -Xnoclassgc \ud074\ub798\uc2a4 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9 \uc548 \ud568\n\ -Xincgc \uc99d\ubd84 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9\n\ -Xloggc:<file> GC \uc0c1\ud0dc\ub97c \ud0c0\uc784 \uc2a4\ud0ec\ud504\uc640 \ud568\uaed8 \ud30c\uc77c\uc5d0 \ub85c\uadf8\n\ -Xbatch \ubc31\uadf8\ub77c\uc6b4\ub4dc \ucef4\ud30c\uc77c \uc0ac\uc6a9 \uc548 \ud568\n\ -Xms<size> \ucd08\uae30 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xmx<size> \ucd5c\ub300 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xss<size> java \uc2a4\ub808\ub4dc \uc2a4\ud0dd \ud06c\uae30 \uc124\uc815\n\ -Xprof cpu \ud504\ub85c\ud30c\uc77c\ub9c1 \ub370\uc774\ud130 \ucd9c\ub825\n\ -Xfuture \ubbf8\ub798 \uae30\ubcf8\uac12\uc744 \uc608\uce21\ud558\uc5ec \uac00\uc7a5 \uc5c4\uaca9\ud55c \uac80\uc0ac \uc0ac\uc6a9\n\ -Xrs Java/VM\uc5d0 \uc758\ud55c OS \uc2e0\ud638 \uc0ac\uc6a9 \uac10\uc18c(\uc124\uba85\uc11c \ucc38\uc870)\n\ -Xcheck:jni JNI \uae30\ub2a5\uc5d0 \ub300\ud55c \ucd94\uac00\uc801\uc778 \uac80\uc0ac \uc218\ud589\n\ -Xshare:off \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\uc758 \uc0ac\uc6a9\uc744 \uc2dc\ub3c4\ud558\uc9c0 \uc54a\uc74c\n\ -Xshare:auto \uac00\ub2a5\ud55c \uacbd\uc6b0 \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130 \uc0ac\uc6a9(\uae30\ubcf8\uac12)\n\ -Xshare:on \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uba70 \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc2e4\ud328.\n\n-X \uc635\uc158\uc740 \ud45c\uc900\uc774 \uc544\ub2c8\uba70 \uc54c\ub9bc \uc5c6\uc774 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n java.launcher.X.usage=\ -Xmixed \ud63c\ud569 \ubaa8\ub4dc \uc2e4\ud589(\uae30\ubcf8\uac12)\n\ -Xint \ud574\uc11d\ub41c \ubaa8\ub4dc \uc2e4\ud589 \uc804\uc6a9\n\ -Xbootclasspath:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4\uc640 \uc790\uc6d0\uc758 \uac80\uc0c9 \uacbd\ub85c \uc124\uc815\n\ -Xbootclasspath/a:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \ub05d\uc5d0 \ucd94\uac00\n\ -Xbootclasspath/p:<directories and zip/jar files separated by {0}>\n\ \ubd80\ud2b8\uc2a4\ud2b8\ub7a9 \ud074\ub798\uc2a4 \uacbd\ub85c \uc55e\uc5d0 \ucd94\uac00\n\ -Xnoclassgc \ud074\ub798\uc2a4 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9 \uc548 \ud568\n\ -Xincgc \uc99d\ubd84 \uac00\ube44\uc9c0 \uceec\ub809\uc158 \uc0ac\uc6a9\n\ -Xloggc:<file> GC \uc0c1\ud0dc\ub97c \ud0c0\uc784 \uc2a4\ud0ec\ud504\uc640 \ud568\uaed8 \ud30c\uc77c\uc5d0 \ub85c\uadf8\n\ -Xbatch \ubc31\uadf8\ub77c\uc6b4\ub4dc \ucef4\ud30c\uc77c \uc0ac\uc6a9 \uc548 \ud568\n\ -Xms<size> \ucd08\uae30 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xmx<size> \ucd5c\ub300 Java \ud799 \ud06c\uae30 \uc124\uc815\n\ -Xss<size> java \uc2a4\ub808\ub4dc \uc2a4\ud0dd \ud06c\uae30 \uc124\uc815\n\ -Xprof cpu \ud504\ub85c\ud30c\uc77c\ub9c1 \ub370\uc774\ud130 \ucd9c\ub825\n\ -Xfuture \ubbf8\ub798 \uae30\ubcf8\uac12\uc744 \uc608\uce21\ud558\uc5ec \uac00\uc7a5 \uc5c4\uaca9\ud55c \uac80\uc0ac \uc0ac\uc6a9\n\ -Xrs Java/VM\uc5d0 \uc758\ud55c OS \uc2e0\ud638 \uc0ac\uc6a9 \uac10\uc18c(\uc124\uba85\uc11c \ucc38\uc870)\n\ -Xcheck:jni JNI \uae30\ub2a5\uc5d0 \ub300\ud55c \ucd94\uac00\uc801\uc778 \uac80\uc0ac \uc218\ud589\n\ -Xshare:off \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\uc758 \uc0ac\uc6a9\uc744 \uc2dc\ub3c4\ud558\uc9c0 \uc54a\uc74c\n\ -Xshare:auto \uac00\ub2a5\ud55c \uacbd\uc6b0 \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130 \uc0ac\uc6a9(\uae30\ubcf8\uac12)\n\ -Xshare:on \uacf5\uc720\ub41c \ud074\ub798\uc2a4 \ub370\uc774\ud130\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\uba70 \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc2e4\ud328.\n\n-X \uc635\uc158\uc740 \ud45c\uc900\uc774 \uc544\ub2c8\uba70 \uc54c\ub9bc \uc5c6\uc774 \ubcc0\uacbd\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ Standard-VM \u00e4r {0} ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ Standard-VM \u00e4r {0}
java.launcher.ergo.message2 =\ eftersom du k\u00f6r p\u00e5 en dator med server-klass.\n java.launcher.ergo.message2 =\ eftersom du k\u00f6r p\u00e5 en dator med server-klass.\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filers>\n\ -classpath <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filer>\n\ en med {0} avgr\u00e4nsad lista \u00f6ver kataloger, JAR-arkiv\n\ och ZIP-arkiv f\u00f6r s\u00f6kning efter klassfiler.\n\ -D<namn>=<v\u00e4rde>\n\ ange en systemegenskap\n\ -verbose[:klass|gc|jni]\n\ visa mer text\n\ -version skriv ut produktversionen och avsluta\n\ -version:<value>\n\ kr\u00e4ver den angivna versionen f\u00f6r att kunna k\u00f6ras\n\ -showversion skriv ut produktversion och forts\u00e4tt\n\ -jre-restrict-search | -jre-no-restrict-search\n\ inkludera/exkludera anv\u00e4ndarens privata JRE-filer i versionss\u00f6kningen\n\ -? -help skriver ut det h\u00e4r hj\u00e4lpmeddelandet\n\ -X skriv ut hj\u00e4lp f\u00f6r alternativ som inte \u00e4r standard\n\ -ea[:<paketnamn>...|:<klassnamn>]\n\ -enableassertions[:<paketnamn>...|:<klassnamn>]\n\ aktivera bekr\u00e4ftelser med angiven precision\n\ -da[:<paketnamn>...|:<klassnamn>]\n\ -disableassertions[:<paketnamn>...|:<klassnamn>]\n\ inaktivera bekr\u00e4ftelser med angiven precision\n\ -esa | -enablesystemassertions\n\ aktivera systembekr\u00e4ftelser\n\ -dsa | -disablesystemassertions\n\ inaktivera systembekr\u00e4ftelser\n\ -agentlib:<biblnamn>[=<alternativ>]\n\ l\u00e4s in det interna agentbiblioteket <biblnamn>, t.ex. -agentlib:hprof\n\ se \u00e4ven, -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:<filnamn>[=<alternativ>]\n\ l\u00e4s in internt agentbibliotek utifr\u00e5n fullst\u00e4ndig s\u00f6kv\u00e4g\n\ -javaagent:<jar-s\u00f6kv\u00e4g>[=<alternativ>]\n\ l\u00e4s in agenten f\u00f6r programmeringsspr\u00e5ket Java, se java.lang.instrument\n\ -splash:<bilds\u00f6kv\u00e4g>\n\ visa v\u00e4lkomstf\u00f6nster med angiven bild\nMer information finns p\u00e5 http://java.sun.com/javase/reference. java.launcher.opt.footer =\ -cp <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filers>\n\ -classpath <klass\u00f6kv\u00e4g till kataloger och zip-/jar-filer>\n\ en med {0} avgr\u00e4nsad lista \u00f6ver kataloger, JAR-arkiv\n\ och ZIP-arkiv f\u00f6r s\u00f6kning efter klassfiler.\n\ -D<namn>=<v\u00e4rde>\n\ ange en systemegenskap\n\ -verbose[:klass|gc|jni]\n\ visa mer text\n\ -version skriv ut produktversionen och avsluta\n\ -version:<value>\n\ kr\u00e4ver den angivna versionen f\u00f6r att kunna k\u00f6ras\n\ -showversion skriv ut produktversion och forts\u00e4tt\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inkludera/exkludera anv\u00e4ndarens privata JRE-filer i versionss\u00f6kningen\n\ -? -help skriver ut det h\u00e4r hj\u00e4lpmeddelandet\n\ -X skriv ut hj\u00e4lp f\u00f6r alternativ som inte \u00e4r standard\n\ -ea[:<paketnamn>...|:<klassnamn>]\n\ -enableassertions[:<paketnamn>...|:<klassnamn>]\n\ aktivera bekr\u00e4ftelser med angiven precision\n\ -da[:<paketnamn>...|:<klassnamn>]\n\ -disableassertions[:<paketnamn>...|:<klassnamn>]\n\ inaktivera bekr\u00e4ftelser med angiven precision\n\ -esa | -enablesystemassertions\n\ aktivera systembekr\u00e4ftelser\n\ -dsa | -disablesystemassertions\n\ inaktivera systembekr\u00e4ftelser\n\ -agentlib:<biblnamn>[=<alternativ>]\n\ l\u00e4s in det interna agentbiblioteket <biblnamn>, t.ex. -agentlib:hprof\n\ se \u00e4ven, -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:<filnamn>[=<alternativ>]\n\ l\u00e4s in internt agentbibliotek utifr\u00e5n fullst\u00e4ndig s\u00f6kv\u00e4g\n\ -javaagent:<jar-s\u00f6kv\u00e4g>[=<alternativ>]\n\ l\u00e4s in agenten f\u00f6r programmeringsspr\u00e5ket Java, se java.lang.instrument\n\ -splash:<bilds\u00f6kv\u00e4g>\n\ visa v\u00e4lkomstf\u00f6nster med angiven bild\nMer information finns p\u00e5 http://java.sun.com/javase/reference.
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed k\u00f6rning i blandat l\u00e4ge (standard)\n\ -Xint endast k\u00f6rning i tolkat l\u00e4ge\n\ -Xbootclasspath:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ ange s\u00f6kv\u00e4g f\u00f6r bootstrap-klasser och -resurser\n\ -Xbootclasspath/a:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till p\u00e5 slutet av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xbootclasspath/p:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till i b\u00f6rjan av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xnoclassgc inaktivera skr\u00e4pinsamling f\u00f6r klass\n\ -Xincgc aktivera inkrementell skr\u00e4pinsaming\n\ -Xloggc:<file> logga GC-status till en fil med tidsst\u00e4mpel\n\ -Xbatch inaktivera kompilering i bakgrunden\n\ -Xms<size> st\u00e4ll in ursprunglig heapstorlek f\u00f6r Java\n\ -Xmx<size> st\u00e4ll in st\u00f6rsta heapstorlek f\u00f6r Java\n\ -Xss<size> st\u00e4ll in tr\u00e5dstackens storlek f\u00f6r Java\n\ -Xprof visa profileringsdata om processorn\n\ -Xfuture aktivera de mest rigor\u00f6sa kontrollerna och f\u00f6regrip framtida standardl\u00e4ge\n\ -Xrs minska anv\u00e4ndningen av signaler fr\u00e5n operativsystemet i Java/VM (mer information finns i dokumentationen)\n\ -Xcheck:jni utf\u00f6r ytterligare kontroller f\u00f6r JNI-funktioner\n\ -Xshare:off f\u00f6rs\u00f6k inte att anv\u00e4nda delade klassdata\n\ -Xshare:auto anv\u00e4nd om m\u00f6jligt delade klassdata (standard)\n\ -Xshare:on kr\u00e4v att delade klassdata anv\u00e4nds, skicka fel om s\u00e5 inte \u00e4r fallet.\n\n -X-alternativen betraktas inte som standard och kan \u00e4ndras utan att detta meddelas.\n java.launcher.X.usage=\ -Xmixed k\u00f6rning i blandat l\u00e4ge (standard)\n\ -Xint endast k\u00f6rning i tolkat l\u00e4ge\n\ -Xbootclasspath:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ ange s\u00f6kv\u00e4g f\u00f6r bootstrap-klasser och -resurser\n\ -Xbootclasspath/a:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till p\u00e5 slutet av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xbootclasspath/p:<kataloger och zip-/jar-filer som avgr\u00e4nsas med {0}>\n\ l\u00e4gg till i b\u00f6rjan av s\u00f6kv\u00e4gen till bootstrap-klassen\n\ -Xnoclassgc inaktivera skr\u00e4pinsamling f\u00f6r klass\n\ -Xincgc aktivera inkrementell skr\u00e4pinsaming\n\ -Xloggc:<file> logga GC-status till en fil med tidsst\u00e4mpel\n\ -Xbatch inaktivera kompilering i bakgrunden\n\ -Xms<size> st\u00e4ll in ursprunglig heapstorlek f\u00f6r Java\n\ -Xmx<size> st\u00e4ll in st\u00f6rsta heapstorlek f\u00f6r Java\n\ -Xss<size> st\u00e4ll in tr\u00e5dstackens storlek f\u00f6r Java\n\ -Xprof visa profileringsdata om processorn\n\ -Xfuture aktivera de mest rigor\u00f6sa kontrollerna och f\u00f6regrip framtida standardl\u00e4ge\n\ -Xrs minska anv\u00e4ndningen av signaler fr\u00e5n operativsystemet i Java/VM (mer information finns i dokumentationen)\n\ -Xcheck:jni utf\u00f6r ytterligare kontroller f\u00f6r JNI-funktioner\n\ -Xshare:off f\u00f6rs\u00f6k inte att anv\u00e4nda delade klassdata\n\ -Xshare:auto anv\u00e4nd om m\u00f6jligt delade klassdata (standard)\n\ -Xshare:on kr\u00e4v att delade klassdata anv\u00e4nds, skicka fel om s\u00e5 inte \u00e4r fallet.\n\n -X-alternativen betraktas inte som standard och kan \u00e4ndras utan att detta meddelas.\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u9ed8\u8ba4\u7684 VM \u4e3a {0 ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u9ed8\u8ba4\u7684 VM \u4e3a {0
java.launcher.ergo.message2 =\ \u56e0\u4e3a\u60a8\u662f\u5728\u670d\u52a1\u5668\u7c7b\u8ba1\u7b97\u673a\u4e0a\u8fd0\u884c\u3002\n java.launcher.ergo.message2 =\ \u56e0\u4e3a\u60a8\u662f\u5728\u670d\u52a1\u5668\u7c7b\u8ba1\u7b97\u673a\u4e0a\u8fd0\u884c\u3002\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ -classpath <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ \u4e00\u4e2a\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u3001JAR \u5f52\u6863\u6587\u4ef6\n\ \u548c ZIP \u5f52\u6863\u6587\u4ef6\u7684\u5217\u8868\uff0c\u7528\u4e8e\u641c\u7d22\u7c7b\u6587\u4ef6\u3002\n\ -D<name>=<value>\n\ \u8bbe\u7f6e\u7cfb\u7edf\u5c5e\u6027\n\ -verbose[:class|gc|jni]\n\ \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\ -version \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u9000\u51fa\n\ -version:<value>\n\ \u8981\u6c42\u8fd0\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u7ee7\u7eed\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u7d22\u4e2d\u5305\u62ec/\u4e0d\u5305\u62ec\u7528\u6237\u79c1\u6709 JRE\n\ -? -help \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ -X \u663e\u793a\u6709\u5173\u975e\u6807\u51c6\u9009\u9879\u7684\u5e2e\u52a9\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u542f\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u7981\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -esa | -enablesystemassertions\n\ \u542f\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -dsa | -disablesystemassertions\n\ \u7981\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -agentlib:<libname>[=<options>]\n\ \u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93 <libname>\uff0c\u4f8b\u5982\uff1a-agentlib:hprof\n\ \u53e6\u8bf7\u53c2\u89c1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4ee5\u5168\u8def\u5f84\u540d\u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93\n\ -javaagent:<jarpath>[=<options>]\n\ \u88c5\u5165 Java \u7f16\u7a0b\u8bed\u8a00\u4ee3\u7406\uff0c\u8bf7\u53c2\u89c1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u4f7f\u7528\u6307\u5b9a\u56fe\u50cf\u663e\u793a\u95ea\u73b0\u5c4f\u5e55\n\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 http://java.sun.com/javase/reference\u3002 java.launcher.opt.footer =\ -cp <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ -classpath <\u76ee\u5f55\u548c zip/jar \u6587\u4ef6\u7684\u7c7b\u641c\u7d22\u8def\u5f84>\n\ \u4e00\u4e2a\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u3001JAR \u5f52\u6863\u6587\u4ef6\n\ \u548c ZIP \u5f52\u6863\u6587\u4ef6\u7684\u5217\u8868\uff0c\u7528\u4e8e\u641c\u7d22\u7c7b\u6587\u4ef6\u3002\n\ -D<name>=<value>\n\ \u8bbe\u7f6e\u7cfb\u7edf\u5c5e\u6027\n\ -verbose[:class|gc|jni]\n\ \u542f\u7528\u8be6\u7ec6\u8f93\u51fa\n\ -version \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u9000\u51fa\n\ -version:<value>\n\ \u8981\u6c42\u8fd0\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u663e\u793a\u4ea7\u54c1\u7248\u672c\u5e76\u7ee7\u7eed\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u5728\u7248\u672c\u641c\u7d22\u4e2d\u5305\u62ec/\u4e0d\u5305\u62ec\u7528\u6237\u79c1\u6709 JRE\n\ -? -help \u663e\u793a\u6b64\u5e2e\u52a9\u6d88\u606f\n\ -X \u663e\u793a\u6709\u5173\u975e\u6807\u51c6\u9009\u9879\u7684\u5e2e\u52a9\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u542f\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u7981\u7528\u6307\u5b9a\u7c92\u5ea6\u7684\u65ad\u8a00\n\ -esa | -enablesystemassertions\n\ \u542f\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -dsa | -disablesystemassertions\n\ \u7981\u7528\u7cfb\u7edf\u65ad\u8a00\n\ -agentlib:<libname>[=<options>]\n\ \u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93 <libname>\uff0c\u4f8b\u5982\uff1a-agentlib:hprof\n\ \u53e6\u8bf7\u53c2\u89c1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4ee5\u5168\u8def\u5f84\u540d\u88c5\u5165\u672c\u673a\u4ee3\u7406\u5e93\n\ -javaagent:<jarpath>[=<options>]\n\ \u88c5\u5165 Java \u7f16\u7a0b\u8bed\u8a00\u4ee3\u7406\uff0c\u8bf7\u53c2\u89c1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u4f7f\u7528\u6307\u5b9a\u56fe\u50cf\u663e\u793a\u95ea\u73b0\u5c4f\u5e55\n\u6709\u5173\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 http://java.sun.com/javase/reference\u3002
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u6a21\u5f0f\u6267\u884c\uff08\u9ed8\u8ba4\uff09\n\ -Xint \u4ec5\u89e3\u91ca\u6a21\u5f0f\u6267\u884c\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u8bbe\u7f6e\u5f15\u5bfc\u7c7b\u548c\u8d44\u6e90\u7684\u641c\u7d22\u8def\u5f84\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u9644\u52a0\u5230\u5f15\u5bfc\u7c7b\u8def\u5f84\u5c3e\u90e8\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u524d\u9762\n\ -Xnoclassgc \u7981\u7528\u7c7b\u5783\u573e\u6536\u96c6\n\ -Xincgc \u542f\u7528\u589e\u91cf\u5783\u573e\u6536\u96c6\n\ -Xloggc:<\u6587\u4ef6> \u5c06 GC \u72b6\u6001\u8bb0\u5f55\u5230\u4e00\u4e2a\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\n\ -Xbatch \u7981\u7528\u540e\u53f0\u7f16\u8bd1\n\ -Xms<\u5927\u5c0f> \u8bbe\u7f6e\u521d\u59cb Java \u5806\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8bbe\u7f6e\u6700\u5927 Java \u5806\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8bbe\u7f6e Java \u7ebf\u7a0b\u5806\u6808\u5927\u5c0f\n\ -Xprof \u8f93\u51fa CPU \u914d\u7f6e\u6570\u636e\n\ -Xfuture \u542f\u7528\u6700\u4e25\u683c\u7684\u68c0\u67e5\uff0c\u672a\u6765\u53ef\u80fd\u4f1a\u6210\u4e3a\u9ed8\u8ba4\u9009\u9879\n\ -Xrs \u51cf\u5c11 Java/VM \u5bf9\u64cd\u4f5c\u7cfb\u7edf\u4fe1\u53f7\u7684\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1\u6587\u6863\uff09\n\ -Xcheck:jni \u9488\u5bf9 JNI \u529f\u80fd\u6267\u884c\u989d\u5916\u7684\u68c0\u67e5\n\ -Xshare:off \u4e0d\u5c1d\u8bd5\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\n\ -Xshare:auto \u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff08\u9ed8\u8ba4\uff09\n\ -Xshare:on \u8981\u6c42\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff0c\u5426\u5219\u4f1a\u5931\u8d25\u3002\n\n-X \u9009\u9879\u662f\u975e\u6807\u51c6\u9009\u9879\uff0c\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n java.launcher.X.usage=\ -Xmixed \u6df7\u5408\u6a21\u5f0f\u6267\u884c\uff08\u9ed8\u8ba4\uff09\n\ -Xint \u4ec5\u89e3\u91ca\u6a21\u5f0f\u6267\u884c\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u8bbe\u7f6e\u5f15\u5bfc\u7c7b\u548c\u8d44\u6e90\u7684\u641c\u7d22\u8def\u5f84\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u9644\u52a0\u5230\u5f15\u5bfc\u7c7b\u8def\u5f84\u5c3e\u90e8\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u5f55\u548c zip/jar \u6587\u4ef6>\n\ \u7f6e\u4e8e\u5f15\u5bfc\u7c7b\u8def\u5f84\u524d\u9762\n\ -Xnoclassgc \u7981\u7528\u7c7b\u5783\u573e\u6536\u96c6\n\ -Xincgc \u542f\u7528\u589e\u91cf\u5783\u573e\u6536\u96c6\n\ -Xloggc:<\u6587\u4ef6> \u5c06 GC \u72b6\u6001\u8bb0\u5f55\u5230\u4e00\u4e2a\u5e26\u6709\u65f6\u95f4\u6233\u7684\u6587\u4ef6\n\ -Xbatch \u7981\u7528\u540e\u53f0\u7f16\u8bd1\n\ -Xms<\u5927\u5c0f> \u8bbe\u7f6e\u521d\u59cb Java \u5806\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8bbe\u7f6e\u6700\u5927 Java \u5806\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8bbe\u7f6e Java \u7ebf\u7a0b\u5806\u6808\u5927\u5c0f\n\ -Xprof \u8f93\u51fa CPU \u914d\u7f6e\u6570\u636e\n\ -Xfuture \u542f\u7528\u6700\u4e25\u683c\u7684\u68c0\u67e5\uff0c\u672a\u6765\u53ef\u80fd\u4f1a\u6210\u4e3a\u9ed8\u8ba4\u9009\u9879\n\ -Xrs \u51cf\u5c11 Java/VM \u5bf9\u64cd\u4f5c\u7cfb\u7edf\u4fe1\u53f7\u7684\u4f7f\u7528\uff08\u8bf7\u53c2\u89c1\u6587\u6863\uff09\n\ -Xcheck:jni \u9488\u5bf9 JNI \u529f\u80fd\u6267\u884c\u989d\u5916\u7684\u68c0\u67e5\n\ -Xshare:off \u4e0d\u5c1d\u8bd5\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\n\ -Xshare:auto \u5982\u679c\u53ef\u80fd\u7684\u8bdd\uff0c\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff08\u9ed8\u8ba4\uff09\n\ -Xshare:on \u8981\u6c42\u4f7f\u7528\u5171\u4eab\u7c7b\u6570\u636e\uff0c\u5426\u5219\u4f1a\u5931\u8d25\u3002\n\n-X \u9009\u9879\u662f\u975e\u6807\u51c6\u9009\u9879\uff0c\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
......
...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u9810\u8a2d VM \u70ba {0} ...@@ -34,7 +34,7 @@ java.launcher.ergo.message1 =\ \u9810\u8a2d VM \u70ba {0}
java.launcher.ergo.message2 =\ \u56e0\u70ba\u60a8\u6b63\u57f7\u884c\u65bc\u4f3a\u670d\u5668\u7d1a\u7684\u6a5f\u5668\u4e0a\u3002\n java.launcher.ergo.message2 =\ \u56e0\u70ba\u60a8\u6b63\u57f7\u884c\u65bc\u4f3a\u670d\u5668\u7d1a\u7684\u6a5f\u5668\u4e0a\u3002\n
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.opt.footer =\ -cp <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ -classpath <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ {0} \u76ee\u9304\u3001JAR \u6b78\u6a94\n\ \u548c ZIP \u6b78\u6a94\u7684\u5206\u9694\u6e05\u55ae\uff0c\u7528\u65bc\u641c\u5c0b\u985e\u5225\u6a94\u6848\u3002\n\ -D<name>=<value>\n\ \u8a2d\u5b9a\u7cfb\u7d71\u7279\u6027\n\ -verbose[:class|gc|jni]\n\ \u555f\u7528\u8a73\u7d30\u8f38\u51fa\n\ -version \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7d50\u675f\n\ -version:<value>\n\ \u9700\u8981\u57f7\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7e7c\u7e8c\n\ -jre-restrict-search | -jre-no-restrict-search\n\ \u5728\u7248\u672c\u641c\u5c0b\u4e2d\u5305\u542b/\u6392\u9664\u4f7f\u7528\u8005\u79c1\u7528 JRE\n\ -? -help \u5217\u5370\u6b64\u8aaa\u660e\u8a0a\u606f\n\ -X \u5217\u5370\u6709\u95dc\u975e\u6a19\u6e96\u9078\u9805\u7684\u8aaa\u660e\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u555f\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u505c\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -esa | -enablesystemassertions\n\ \u555f\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -dsa | -disablesystemassertions\n\ \u505c\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -agentlib:<libname>[=<options>]\n\ \u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\u7a0b\u5f0f\u5eab <libname>\uff0c\u4f8b\u5982 -agentlib:hprof\n\ \u53e6\u8acb\u53c3\u95b1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4f9d\u64da\u5b8c\u6574\u8def\u5f91\u540d\u7a31\u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\n\ -javaagent:<jarpath>[=<options>]\n\ \u8f09\u5165 Java \u7a0b\u5f0f\u8a2d\u8a08\u8a9e\u8a00\u4ee3\u7406\u7a0b\u5f0f\uff0c\u8acb\u53c3\u95b1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u986f\u793a\u542b\u6709\u6307\u5b9a\u5f71\u50cf\u7684\u8edf\u9ad4\u8cc7\u8a0a\u756b\u9762\n\u8acb\u53c3\u95b1 http://java.sun.com/javase/reference\uff0c\u4ee5\u53d6\u5f97\u66f4\u591a\u8a73\u7d30\u8cc7\u8a0a\u3002 java.launcher.opt.footer =\ -cp <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ -classpath <\u76ee\u9304\u548c zip/jar \u6a94\u6848\u7684\u985e\u5225\u641c\u5c0b\u8def\u5f91>\n\ {0} \u76ee\u9304\u3001JAR \u6b78\u6a94\n\ \u548c ZIP \u6b78\u6a94\u7684\u5206\u9694\u6e05\u55ae\uff0c\u7528\u65bc\u641c\u5c0b\u985e\u5225\u6a94\u6848\u3002\n\ -D<name>=<value>\n\ \u8a2d\u5b9a\u7cfb\u7d71\u7279\u6027\n\ -verbose[:class|gc|jni]\n\ \u555f\u7528\u8a73\u7d30\u8f38\u51fa\n\ -version \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7d50\u675f\n\ -version:<value>\n\ \u9700\u8981\u57f7\u884c\u6307\u5b9a\u7684\u7248\u672c\n\ -showversion \u5217\u5370\u7522\u54c1\u7248\u672c\u4e26\u7e7c\u7e8c\n\ -jre-restrict-search | -no-jre-restrict-search\n\ \u5728\u7248\u672c\u641c\u5c0b\u4e2d\u5305\u542b/\u6392\u9664\u4f7f\u7528\u8005\u79c1\u7528 JRE\n\ -? -help \u5217\u5370\u6b64\u8aaa\u660e\u8a0a\u606f\n\ -X \u5217\u5370\u6709\u95dc\u975e\u6a19\u6e96\u9078\u9805\u7684\u8aaa\u660e\n\ -ea[:<packagename>...|:<classname>]\n\ -enableassertions[:<packagename>...|:<classname>]\n\ \u555f\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -da[:<packagename>...|:<classname>]\n\ -disableassertions[:<packagename>...|:<classname>]\n\ \u505c\u7528\u5177\u6709\u6307\u5b9a\u9846\u7c92\u6027\u7684\u5ba3\u544a\n\ -esa | -enablesystemassertions\n\ \u555f\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -dsa | -disablesystemassertions\n\ \u505c\u7528\u7cfb\u7d71\u5ba3\u544a\n\ -agentlib:<libname>[=<options>]\n\ \u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\u7a0b\u5f0f\u5eab <libname>\uff0c\u4f8b\u5982 -agentlib:hprof\n\ \u53e6\u8acb\u53c3\u95b1 -agentlib:jdwp=help \u548c -agentlib:hprof=help\n\ -agentpath:<pathname>[=<options>]\n\ \u4f9d\u64da\u5b8c\u6574\u8def\u5f91\u540d\u7a31\u8f09\u5165\u539f\u751f\u4ee3\u7406\u7a0b\u5f0f\n\ -javaagent:<jarpath>[=<options>]\n\ \u8f09\u5165 Java \u7a0b\u5f0f\u8a2d\u8a08\u8a9e\u8a00\u4ee3\u7406\u7a0b\u5f0f\uff0c\u8acb\u53c3\u95b1 java.lang.instrument\n\ -splash:<imagepath>\n\ \u986f\u793a\u542b\u6709\u6307\u5b9a\u5f71\u50cf\u7684\u8edf\u9ad4\u8cc7\u8a0a\u756b\u9762\n\u8acb\u53c3\u95b1 http://java.sun.com/javase/reference\uff0c\u4ee5\u53d6\u5f97\u66f4\u591a\u8a73\u7d30\u8cc7\u8a0a\u3002
# Translators please note do not translate the options themselves # Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u57f7\u884c\u6df7\u5408\u6a21\u5f0f (\u9810\u8a2d)\n\ -Xint \u50c5\u57f7\u884c\u89e3\u8b6f\u6a21\u5f0f\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u8a2d\u5b9a\u555f\u52d5\u985e\u5225\u548c\u8cc7\u6e90\u7684\u641c\u5c0b\u8def\u5f91\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u9644\u52a0\u81f3\u555f\u52d5\u985e\u5225\u7684\u672b\u5c3e\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u524d\u7f6e\u65bc\u555f\u52d5\u985e\u5225\u8def\u5f91\u7684\u524d\u9762\n\ -Xnoclassgc \u505c\u7528\u985e\u5225\u56de\u6536\u6536\u96c6\n\ -Xincgc \u555f\u7528\u905e\u589e\u56de\u6536\u6536\u96c6\n\ -Xloggc:<\u6a94\u6848> \u4f7f\u7528\u6642\u9593\u6233\u8a18\u5c07 GC \u72c0\u614b\u8a18\u9304\u81f3\u6a94\u6848\n\ -Xbatch \u505c\u7528\u80cc\u5f71\u7de8\u8b6f\n\ -Xms<\u5927\u5c0f> \u8a2d\u5b9a\u521d\u59cb Java \u5806\u758a\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8a2d\u5b9a\u6700\u5927 Java \u5806\u758a\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8a2d\u5b9a java \u57f7\u884c\u7dd2\u5806\u758a\u5927\u5c0f\n\ -Xprof \u8f38\u51fa cpu \u8a2d\u5b9a\u6a94\u8cc7\u6599\n\ -Xfuture \u555f\u7528\u6700\u56b4\u683c\u7684\u6aa2\u67e5\uff0c\u9810\u671f\u672a\u4f86\u9810\u8a2d\u503c\n\ -Xrs \u964d\u4f4e Java/VM \u7684 OS \u8a0a\u865f\u4f7f\u7528 (\u8acb\u53c3\u95b1\u6587\u4ef6)\n\ -Xcheck:jni \u5c0d JNI \u529f\u80fd\u57f7\u884c\u5176\u4ed6\u6aa2\u67e5\n\ -Xshare:off \u4e0d\u5617\u8a66\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\n\ -Xshare:auto \u5982\u53ef\u80fd\uff0c\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599 (\u9810\u8a2d)\n\ -Xshare:on \u9700\u8981\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\uff0c\u5426\u5247\u6703\u5931\u6557\u3002\n\n-X \u9078\u9805\u70ba\u975e\u6a19\u6e96\u9078\u9805\uff0c\u53ef\u80fd\u6703\u8b8a\u66f4\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n java.launcher.X.usage=\ -Xmixed \u57f7\u884c\u6df7\u5408\u6a21\u5f0f (\u9810\u8a2d)\n\ -Xint \u50c5\u57f7\u884c\u89e3\u8b6f\u6a21\u5f0f\n\ -Xbootclasspath:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u8a2d\u5b9a\u555f\u52d5\u985e\u5225\u548c\u8cc7\u6e90\u7684\u641c\u5c0b\u8def\u5f91\n\ -Xbootclasspath/a:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u9644\u52a0\u81f3\u555f\u52d5\u985e\u5225\u7684\u672b\u5c3e\n\ -Xbootclasspath/p:<\u4ee5 {0} \u5206\u9694\u7684\u76ee\u9304\u548c zip/jar \u6a94\u6848>\n\ \u524d\u7f6e\u65bc\u555f\u52d5\u985e\u5225\u8def\u5f91\u7684\u524d\u9762\n\ -Xnoclassgc \u505c\u7528\u985e\u5225\u56de\u6536\u6536\u96c6\n\ -Xincgc \u555f\u7528\u905e\u589e\u56de\u6536\u6536\u96c6\n\ -Xloggc:<\u6a94\u6848> \u4f7f\u7528\u6642\u9593\u6233\u8a18\u5c07 GC \u72c0\u614b\u8a18\u9304\u81f3\u6a94\u6848\n\ -Xbatch \u505c\u7528\u80cc\u5f71\u7de8\u8b6f\n\ -Xms<\u5927\u5c0f> \u8a2d\u5b9a\u521d\u59cb Java \u5806\u758a\u5927\u5c0f\n\ -Xmx<\u5927\u5c0f> \u8a2d\u5b9a\u6700\u5927 Java \u5806\u758a\u5927\u5c0f\n\ -Xss<\u5927\u5c0f> \u8a2d\u5b9a java \u57f7\u884c\u7dd2\u5806\u758a\u5927\u5c0f\n\ -Xprof \u8f38\u51fa cpu \u8a2d\u5b9a\u6a94\u8cc7\u6599\n\ -Xfuture \u555f\u7528\u6700\u56b4\u683c\u7684\u6aa2\u67e5\uff0c\u9810\u671f\u672a\u4f86\u9810\u8a2d\u503c\n\ -Xrs \u964d\u4f4e Java/VM \u7684 OS \u8a0a\u865f\u4f7f\u7528 (\u8acb\u53c3\u95b1\u6587\u4ef6)\n\ -Xcheck:jni \u5c0d JNI \u529f\u80fd\u57f7\u884c\u5176\u4ed6\u6aa2\u67e5\n\ -Xshare:off \u4e0d\u5617\u8a66\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\n\ -Xshare:auto \u5982\u53ef\u80fd\uff0c\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599 (\u9810\u8a2d)\n\ -Xshare:on \u9700\u8981\u4f7f\u7528\u5171\u7528\u985e\u5225\u8cc7\u6599\uff0c\u5426\u5247\u6703\u5931\u6557\u3002\n\n-X \u9078\u9805\u70ba\u975e\u6a19\u6e96\u9078\u9805\uff0c\u53ef\u80fd\u6703\u8b8a\u66f4\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002\n
......
...@@ -27,6 +27,8 @@ package sun.misc; ...@@ -27,6 +27,8 @@ package sun.misc;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URLStreamHandlerFactory;
import sun.misc.URLClassPath;
/** /**
* BootClassLoaderHook defines an interface for a hook to inject * BootClassLoaderHook defines an interface for a hook to inject
...@@ -94,20 +96,6 @@ public abstract class BootClassLoaderHook { ...@@ -94,20 +96,6 @@ public abstract class BootClassLoaderHook {
} }
} }
private static final File[] EMPTY_FILE_ARRAY = new File[0];
/**
* Returns bootstrap class paths added by the hook.
*/
public static File[] getBootstrapPaths() {
BootClassLoaderHook hook = getHook();
if (hook != null) {
return hook.getAdditionalBootstrapPaths();
} else {
return EMPTY_FILE_ARRAY;
}
}
/** /**
* Returns a pathname of a JAR or class that the hook loads * Returns a pathname of a JAR or class that the hook loads
* per this loadClass request; or null. * per this loadClass request; or null.
...@@ -133,10 +121,13 @@ public abstract class BootClassLoaderHook { ...@@ -133,10 +121,13 @@ public abstract class BootClassLoaderHook {
public abstract boolean loadLibrary(String libname); public abstract boolean loadLibrary(String libname);
/** /**
* Returns additional boot class paths added by the hook that * Returns a bootstrap class path constructed by the hook.
* should be searched by the boot class loader. *
* @param bcp VM's bootstrap class path
* @param factory Launcher's URL stream handler
*/ */
public abstract File[] getAdditionalBootstrapPaths(); public abstract URLClassPath getBootstrapClassPath(URLClassPath bcp,
URLStreamHandlerFactory factory);
/** /**
* Returns true if the current thread is in the process of doing * Returns true if the current thread is in the process of doing
......
...@@ -47,7 +47,6 @@ import java.security.Permissions; ...@@ -47,7 +47,6 @@ import java.security.Permissions;
import java.security.Permission; import java.security.Permission;
import java.security.ProtectionDomain; import java.security.ProtectionDomain;
import java.security.CodeSource; import java.security.CodeSource;
import sun.security.action.GetPropertyAction;
import sun.security.util.SecurityConstants; import sun.security.util.SecurityConstants;
import sun.net.www.ParseUtil; import sun.net.www.ParseUtil;
...@@ -57,6 +56,8 @@ Launcher */ ...@@ -57,6 +56,8 @@ Launcher */
public class Launcher { public class Launcher {
private static URLStreamHandlerFactory factory = new Factory(); private static URLStreamHandlerFactory factory = new Factory();
private static Launcher launcher = new Launcher(); private static Launcher launcher = new Launcher();
private static String bootClassPath =
System.getProperty("sun.boot.class.path");
public static Launcher getLauncher() { public static Launcher getLauncher() {
return launcher; return launcher;
...@@ -227,7 +228,8 @@ public class Launcher { ...@@ -227,7 +228,8 @@ public class Launcher {
File dir = new File(urls[i].getPath()).getParentFile(); File dir = new File(urls[i].getPath()).getParentFile();
if (dir != null && !dir.equals(prevDir)) { if (dir != null && !dir.equals(prevDir)) {
// Look in architecture-specific subdirectory first // Look in architecture-specific subdirectory first
String arch = System.getProperty("os.arch"); // Read from the saved system properties to avoid deadlock
String arch = VM.getSavedProperty("os.arch");
if (arch != null) { if (arch != null) {
File file = new File(new File(dir, arch), name); File file = new File(new File(dir, arch), name);
if (file.exists()) { if (file.exists()) {
...@@ -377,19 +379,15 @@ public class Launcher { ...@@ -377,19 +379,15 @@ public class Launcher {
} }
} }
private static URLClassPath bootstrapClassPath; private static class BootClassPathHolder {
static final URLClassPath bcp;
public static synchronized URLClassPath getBootstrapClassPath() { static {
if (bootstrapClassPath == null) {
String prop = AccessController.doPrivileged(
new GetPropertyAction("sun.boot.class.path"));
URL[] urls; URL[] urls;
if (prop != null) { if (bootClassPath != null) {
final String path = prop;
urls = AccessController.doPrivileged( urls = AccessController.doPrivileged(
new PrivilegedAction<URL[]>() { new PrivilegedAction<URL[]>() {
public URL[] run() { public URL[] run() {
File[] classPath = getClassPath(path); File[] classPath = getClassPath(bootClassPath);
int len = classPath.length; int len = classPath.length;
Set<File> seenDirs = new HashSet<File>(); Set<File> seenDirs = new HashSet<File>();
for (int i = 0; i < len; i++) { for (int i = 0; i < len; i++) {
...@@ -410,25 +408,16 @@ public class Launcher { ...@@ -410,25 +408,16 @@ public class Launcher {
} else { } else {
urls = new URL[0]; urls = new URL[0];
} }
bcp = new URLClassPath(urls, factory);
bootstrapClassPath = new URLClassPath(urls, factory);
final File[] additionalBootStrapPaths =
BootClassLoaderHook.getBootstrapPaths();
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
for (int i=0; i<additionalBootStrapPaths.length; i++) {
bootstrapClassPath.addURL(
getFileURL(additionalBootStrapPaths[i]));
}
return null;
}
});
} }
return bootstrapClassPath;
} }
public static synchronized void flushBootstrapClassPath() { public static URLClassPath getBootstrapClassPath() {
bootstrapClassPath = null; URLClassPath bcp = BootClassPathHolder.bcp;
// if DownloadManager is installed, return the bootstrap class path
// maintained by the Java kernel
BootClassLoaderHook hook = BootClassLoaderHook.getHook();
return hook == null ? bcp : hook.getBootstrapClassPath(bcp, factory);
} }
private static URL[] pathToURLs(File[] path) { private static URL[] pathToURLs(File[] path) {
......
...@@ -170,34 +170,23 @@ public class VM { ...@@ -170,34 +170,23 @@ public class VM {
// //
private static long directMemory = 64 * 1024 * 1024; private static long directMemory = 64 * 1024 * 1024;
// If this method is invoked during VM initialization, it initializes the // Returns the maximum amount of allocatable direct buffer memory.
// maximum amount of allocatable direct buffer memory (in bytes) from the // The directMemory variable is initialized during system initialization
// system property sun.nio.MaxDirectMemorySize. The system property will // in the saveAndRemoveProperties method.
// be removed when it is accessed.
//
// If this method is invoked after the VM is booted, it returns the
// maximum amount of allocatable direct buffer memory.
// //
public static long maxDirectMemory() { public static long maxDirectMemory() {
if (booted)
return directMemory; return directMemory;
Properties p = System.getProperties();
String s = (String)p.remove("sun.nio.MaxDirectMemorySize");
System.setProperties(p);
if (s != null) {
if (s.equals("-1")) {
// -XX:MaxDirectMemorySize not given, take default
directMemory = Runtime.getRuntime().maxMemory();
} else {
long l = Long.parseLong(s);
if (l > -1)
directMemory = l;
}
} }
return directMemory; // User-controllable flag that determines if direct buffers should be page
// aligned. The "-XX:+PageAlignDirectMemory" option can be used to force
// buffers, allocated by ByteBuffer.allocateDirect, to be page aligned.
private static boolean pageAlignDirectMemory;
// Returns {@code true} if the direct buffers should be page aligned. This
// variable is initialized by saveAndRemoveProperties.
public static boolean isDirectMemoryPageAligned() {
return pageAlignDirectMemory;
} }
// A user-settable boolean to determine whether ClassLoader.loadClass should // A user-settable boolean to determine whether ClassLoader.loadClass should
...@@ -212,26 +201,87 @@ public class VM { ...@@ -212,26 +201,87 @@ public class VM {
private static boolean defaultAllowArraySyntax = false; private static boolean defaultAllowArraySyntax = false;
private static boolean allowArraySyntax = defaultAllowArraySyntax; private static boolean allowArraySyntax = defaultAllowArraySyntax;
// If this method is invoked during VM initialization, it initializes the // The allowArraySyntax boolean is initialized during system initialization
// allowArraySyntax boolean based on the value of the system property // in the saveAndRemoveProperties method.
//
// It is initialized based on the value of the system property
// "sun.lang.ClassLoader.allowArraySyntax". If the system property is not // "sun.lang.ClassLoader.allowArraySyntax". If the system property is not
// provided, the default for 1.5 is "true". In 1.6, the default will be // provided, the default for 1.5 is "true". In 1.6, the default will be
// "false". If the system property is provided, then the value of // "false". If the system property is provided, then the value of
// allowArraySyntax will be equal to "true" if Boolean.parseBoolean() // allowArraySyntax will be equal to "true" if Boolean.parseBoolean()
// returns "true". Otherwise, the field will be set to "false". // returns "true". Otherwise, the field will be set to "false".
// //
// If this method is invoked after the VM is booted, it returns the
// allowArraySyntax boolean set during initialization.
//
public static boolean allowArraySyntax() { public static boolean allowArraySyntax() {
if (!booted) { return allowArraySyntax;
String s }
= System.getProperty("sun.lang.ClassLoader.allowArraySyntax");
/**
* Returns the system property of the specified key saved at
* system initialization time. This method should only be used
* for the system properties that are not changed during runtime.
* It accesses a private copy of the system properties so
* that user's locking of the system properties object will not
* cause the library to deadlock.
*
* Note that the saved system properties do not include
* the ones set by sun.misc.Version.init().
*
*/
public static String getSavedProperty(String key) {
if (savedProps.isEmpty())
throw new IllegalStateException("Should be non-empty if initialized");
return savedProps.getProperty(key);
}
private static final Properties savedProps = new Properties();
// Save a private copy of the system properties and remove
// the system properties that are not intended for public access.
//
// This method can only be invoked during system initialization.
public static void saveAndRemoveProperties(Properties props) {
if (booted)
throw new IllegalStateException("System initialization has completed");
savedProps.putAll(props);
// Set the maximum amount of direct memory. This value is controlled
// by the vm option -XX:MaxDirectMemorySize=<size>.
// The maximum amount of allocatable direct buffer memory (in bytes)
// from the system property sun.nio.MaxDirectMemorySize set by the VM.
// The system property will be removed.
String s = (String)props.remove("sun.nio.MaxDirectMemorySize");
if (s != null) {
if (s.equals("-1")) {
// -XX:MaxDirectMemorySize not given, take default
directMemory = Runtime.getRuntime().maxMemory();
} else {
long l = Long.parseLong(s);
if (l > -1)
directMemory = l;
}
}
// Check if direct buffers should be page aligned
s = (String)props.remove("sun.nio.PageAlignDirectMemory");
if ("true".equals(s))
pageAlignDirectMemory = true;
// Set a boolean to determine whether ClassLoader.loadClass accepts
// array syntax. This value is controlled by the system property
// "sun.lang.ClassLoader.allowArraySyntax".
s = props.getProperty("sun.lang.ClassLoader.allowArraySyntax");
allowArraySyntax = (s == null allowArraySyntax = (s == null
? defaultAllowArraySyntax ? defaultAllowArraySyntax
: Boolean.parseBoolean(s)); : Boolean.parseBoolean(s));
}
return allowArraySyntax; // Remove other private system properties
// used by java.lang.Integer.IntegerCache
props.remove("java.lang.Integer.IntegerCache.high");
// used by java.util.zip.ZipFile
props.remove("sun.zip.disableMemoryMapping");
} }
// Initialize any miscellenous operating system settings that need to be // Initialize any miscellenous operating system settings that need to be
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册