feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
91
jdkSrc/jdk8/sun/tools/jar/CommandLine.java
Normal file
91
jdkSrc/jdk8/sun/tools/jar/CommandLine.java
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.tools.jar;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.FileReader;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.StreamTokenizer;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Various utility methods for processing Java tool command line arguments.
|
||||
*
|
||||
* <p><b>This is NOT part of any API supported by Oracle. If
|
||||
* you write code that depends on this, you do so at your own risk.
|
||||
* This code and its internal interfaces are subject to change or
|
||||
* deletion without notice.</b>
|
||||
*/
|
||||
public class CommandLine {
|
||||
/**
|
||||
* Process Win32-style command files for the specified command line
|
||||
* arguments and return the resulting arguments. A command file argument
|
||||
* is of the form '@file' where 'file' is the name of the file whose
|
||||
* contents are to be parsed for additional arguments. The contents of
|
||||
* the command file are parsed using StreamTokenizer and the original
|
||||
* '@file' argument replaced with the resulting tokens. Recursive command
|
||||
* files are not supported. The '@' character itself can be quoted with
|
||||
* the sequence '@@'.
|
||||
*/
|
||||
public static String[] parse(String[] args)
|
||||
throws IOException
|
||||
{
|
||||
List<String> newArgs = new ArrayList<>(args.length);
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
String arg = args[i];
|
||||
if (arg.length() > 1 && arg.charAt(0) == '@') {
|
||||
arg = arg.substring(1);
|
||||
if (arg.charAt(0) == '@') {
|
||||
newArgs.add(arg);
|
||||
} else {
|
||||
loadCmdFile(arg, newArgs);
|
||||
}
|
||||
} else {
|
||||
newArgs.add(arg);
|
||||
}
|
||||
}
|
||||
return newArgs.toArray(new String[newArgs.size()]);
|
||||
}
|
||||
|
||||
private static void loadCmdFile(String name, List<String> args)
|
||||
throws IOException
|
||||
{
|
||||
Reader r = new BufferedReader(new FileReader(name));
|
||||
StreamTokenizer st = new StreamTokenizer(r);
|
||||
st.resetSyntax();
|
||||
st.wordChars(' ', 255);
|
||||
st.whitespaceChars(0, ' ');
|
||||
st.commentChar('#');
|
||||
st.quoteChar('"');
|
||||
st.quoteChar('\'');
|
||||
while (st.nextToken() != StreamTokenizer.TT_EOF) {
|
||||
args.add(st.sval);
|
||||
}
|
||||
r.close();
|
||||
}
|
||||
}
|
||||
42
jdkSrc/jdk8/sun/tools/jar/JarException.java
Normal file
42
jdkSrc/jdk8/sun/tools/jar/JarException.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.tools.jar;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public
|
||||
class JarException extends IOException {
|
||||
|
||||
static final long serialVersionUID = -4351820108009811497L;
|
||||
|
||||
public JarException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public JarException(String s) {
|
||||
super(s);
|
||||
}
|
||||
}
|
||||
1361
jdkSrc/jdk8/sun/tools/jar/Main.java
Normal file
1361
jdkSrc/jdk8/sun/tools/jar/Main.java
Normal file
File diff suppressed because it is too large
Load Diff
258
jdkSrc/jdk8/sun/tools/jar/Manifest.java
Normal file
258
jdkSrc/jdk8/sun/tools/jar/Manifest.java
Normal file
@@ -0,0 +1,258 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.tools.jar;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.security.*;
|
||||
|
||||
import sun.net.www.MessageHeader;
|
||||
import java.util.Base64;
|
||||
|
||||
/**
|
||||
* This is OBSOLETE. DO NOT USE THIS. Use java.util.jar.Manifest
|
||||
* instead. It has to stay here because some apps (namely HJ and HJV)
|
||||
* call directly into it.
|
||||
*
|
||||
* @author David Brown
|
||||
* @author Benjamin Renaud
|
||||
*/
|
||||
|
||||
public class Manifest {
|
||||
|
||||
/* list of headers that all pertain to a particular
|
||||
* file in the archive
|
||||
*/
|
||||
private Vector<MessageHeader> entries = new Vector<>();
|
||||
private byte[] tmpbuf = new byte[512];
|
||||
/* a hashtable of entries, for fast lookup */
|
||||
private Hashtable<String, MessageHeader> tableEntries = new Hashtable<>();
|
||||
|
||||
static final String[] hashes = {"SHA"};
|
||||
static final byte[] EOL = {(byte)'\r', (byte)'\n'};
|
||||
|
||||
static final boolean debug = false;
|
||||
static final String VERSION = "1.0";
|
||||
static final void debug(String s) {
|
||||
if (debug)
|
||||
System.out.println("man> " + s);
|
||||
}
|
||||
|
||||
public Manifest() {}
|
||||
|
||||
public Manifest(byte[] bytes) throws IOException {
|
||||
this(new ByteArrayInputStream(bytes), false);
|
||||
}
|
||||
|
||||
public Manifest(InputStream is) throws IOException {
|
||||
this(is, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse a manifest from a stream, optionally computing hashes
|
||||
* for the files.
|
||||
*/
|
||||
public Manifest(InputStream is, boolean compute) throws IOException {
|
||||
if (!is.markSupported()) {
|
||||
is = new BufferedInputStream(is);
|
||||
}
|
||||
/* do not rely on available() here! */
|
||||
while (true) {
|
||||
is.mark(1);
|
||||
if (is.read() == -1) { // EOF
|
||||
break;
|
||||
}
|
||||
is.reset();
|
||||
MessageHeader m = new MessageHeader(is);
|
||||
if (compute) {
|
||||
doHashes(m);
|
||||
}
|
||||
addEntry(m);
|
||||
}
|
||||
}
|
||||
|
||||
/* recursively generate manifests from directory tree */
|
||||
public Manifest(String[] files) throws IOException {
|
||||
MessageHeader globals = new MessageHeader();
|
||||
globals.add("Manifest-Version", VERSION);
|
||||
String jdkVersion = System.getProperty("java.version");
|
||||
globals.add("Created-By", "Manifest JDK "+jdkVersion);
|
||||
addEntry(globals);
|
||||
addFiles(null, files);
|
||||
}
|
||||
|
||||
public void addEntry(MessageHeader entry) {
|
||||
entries.addElement(entry);
|
||||
String name = entry.findValue("Name");
|
||||
debug("addEntry for name: "+name);
|
||||
if (name != null) {
|
||||
tableEntries.put(name, entry);
|
||||
}
|
||||
}
|
||||
|
||||
public MessageHeader getEntry(String name) {
|
||||
return tableEntries.get(name);
|
||||
}
|
||||
|
||||
public MessageHeader entryAt(int i) {
|
||||
return entries.elementAt(i);
|
||||
}
|
||||
|
||||
public Enumeration<MessageHeader> entries() {
|
||||
return entries.elements();
|
||||
}
|
||||
|
||||
public void addFiles(File dir, String[] files) throws IOException {
|
||||
if (files == null)
|
||||
return;
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
File file;
|
||||
if (dir == null) {
|
||||
file = new File(files[i]);
|
||||
} else {
|
||||
file = new File(dir, files[i]);
|
||||
}
|
||||
if (file.isDirectory()) {
|
||||
addFiles(file, file.list());
|
||||
} else {
|
||||
addFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* File names are represented internally using "/";
|
||||
* they are converted to the local format for anything else
|
||||
*/
|
||||
|
||||
private final String stdToLocal(String name) {
|
||||
return name.replace('/', java.io.File.separatorChar);
|
||||
}
|
||||
|
||||
private final String localToStd(String name) {
|
||||
name = name.replace(java.io.File.separatorChar, '/');
|
||||
if (name.startsWith("./"))
|
||||
name = name.substring(2);
|
||||
else if (name.startsWith("/"))
|
||||
name = name.substring(1);
|
||||
return name;
|
||||
}
|
||||
|
||||
public void addFile(File f) throws IOException {
|
||||
String stdName = localToStd(f.getPath());
|
||||
if (tableEntries.get(stdName) == null) {
|
||||
MessageHeader mh = new MessageHeader();
|
||||
mh.add("Name", stdName);
|
||||
addEntry(mh);
|
||||
}
|
||||
}
|
||||
|
||||
public void doHashes(MessageHeader mh) throws IOException {
|
||||
// If unnamed or is a directory return immediately
|
||||
String name = mh.findValue("Name");
|
||||
if (name == null || name.endsWith("/")) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* compute hashes, write over any other "Hash-Algorithms" (?) */
|
||||
for (int j = 0; j < hashes.length; ++j) {
|
||||
InputStream is = new FileInputStream(stdToLocal(name));
|
||||
try {
|
||||
MessageDigest dig = MessageDigest.getInstance(hashes[j]);
|
||||
|
||||
int len;
|
||||
while ((len = is.read(tmpbuf, 0, tmpbuf.length)) != -1) {
|
||||
dig.update(tmpbuf, 0, len);
|
||||
}
|
||||
mh.set(hashes[j] + "-Digest", Base64.getMimeEncoder().encodeToString(dig.digest()));
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
throw new JarException("Digest algorithm " + hashes[j] +
|
||||
" not available.");
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Add a manifest file at current position in a stream
|
||||
*/
|
||||
public void stream(OutputStream os) throws IOException {
|
||||
|
||||
PrintStream ps;
|
||||
if (os instanceof PrintStream) {
|
||||
ps = (PrintStream) os;
|
||||
} else {
|
||||
ps = new PrintStream(os);
|
||||
}
|
||||
|
||||
/* the first header in the file should be the global one.
|
||||
* It should say "Manifest-Version: x.x"; if not add it
|
||||
*/
|
||||
MessageHeader globals = entries.elementAt(0);
|
||||
|
||||
if (globals.findValue("Manifest-Version") == null) {
|
||||
/* Assume this is a user-defined manifest. If it has a Name: <..>
|
||||
* field, then it is not global, in which case we just add our own
|
||||
* global Manifest-version: <version>
|
||||
* If the first MessageHeader has no Name: <..>, we assume it
|
||||
* is a global header and so prepend Manifest to it.
|
||||
*/
|
||||
String jdkVersion = System.getProperty("java.version");
|
||||
|
||||
if (globals.findValue("Name") == null) {
|
||||
globals.prepend("Manifest-Version", VERSION);
|
||||
globals.add("Created-By", "Manifest JDK "+jdkVersion);
|
||||
} else {
|
||||
ps.print("Manifest-Version: "+VERSION+"\r\n"+
|
||||
"Created-By: "+jdkVersion+"\r\n\r\n");
|
||||
}
|
||||
ps.flush();
|
||||
}
|
||||
|
||||
globals.print(ps);
|
||||
|
||||
for (int i = 1; i < entries.size(); ++i) {
|
||||
MessageHeader mh = entries.elementAt(i);
|
||||
mh.print(ps);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isManifestName(String name) {
|
||||
|
||||
// remove leading /
|
||||
if (name.charAt(0) == '/') {
|
||||
name = name.substring(1, name.length());
|
||||
}
|
||||
// case insensitive
|
||||
name = name.toUpperCase();
|
||||
|
||||
if (name.equals("META-INF/MANIFEST.MF")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
360
jdkSrc/jdk8/sun/tools/jar/SignatureFile.java
Normal file
360
jdkSrc/jdk8/sun/tools/jar/SignatureFile.java
Normal file
@@ -0,0 +1,360 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package sun.tools.jar;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.*;
|
||||
import java.security.*;
|
||||
|
||||
import sun.net.www.MessageHeader;
|
||||
import java.util.Base64;
|
||||
|
||||
|
||||
import sun.security.pkcs.*;
|
||||
import sun.security.x509.AlgorithmId;
|
||||
|
||||
/**
|
||||
* <p>A signature file as defined in the <a
|
||||
* href="manifest.html">Manifest and Signature Format</a>. It has
|
||||
* essentially the same structure as a Manifest file in that it is a
|
||||
* set of RFC 822 headers (sections). The first section contains meta
|
||||
* data relevant to the entire file (i.e "Signature-Version:1.0") and
|
||||
* each subsequent section contains data relevant to specific entries:
|
||||
* entry sections.
|
||||
*
|
||||
* <p>Each entry section contains the name of an entry (which must
|
||||
* have a counterpart in the manifest). Like the manifest it contains
|
||||
* a hash, the hash of the manifest section corresponding to the
|
||||
* name. Since the manifest entry contains the hash of the data, this
|
||||
* is equivalent to a signature of the data, plus the attributes of
|
||||
* the manifest entry.
|
||||
*
|
||||
* <p>This signature file format deal with PKCS7 encoded DSA signature
|
||||
* block. It should be straightforward to extent to support other
|
||||
* algorithms.
|
||||
*
|
||||
* @author David Brown
|
||||
* @author Benjamin Renaud */
|
||||
|
||||
public class SignatureFile {
|
||||
|
||||
/* Are we debugging? */
|
||||
static final boolean debug = false;
|
||||
|
||||
/* list of headers that all pertain to a particular file in the
|
||||
* archive */
|
||||
private Vector<MessageHeader> entries = new Vector<>();
|
||||
|
||||
/* Right now we only support SHA hashes */
|
||||
static final String[] hashes = {"SHA"};
|
||||
|
||||
static final void debug(String s) {
|
||||
if (debug)
|
||||
System.out.println("sig> " + s);
|
||||
}
|
||||
|
||||
/*
|
||||
* The manifest we're working with. */
|
||||
private Manifest manifest;
|
||||
|
||||
/*
|
||||
* The file name for the file. This is the raw name, i.e. the
|
||||
* extention-less 8 character name (such as MYSIGN) which wil be
|
||||
* used to build the signature filename (MYSIGN.SF) and the block
|
||||
* filename (MYSIGN.DSA) */
|
||||
private String rawName;
|
||||
|
||||
/* The digital signature block corresponding to this signature
|
||||
* file. */
|
||||
private PKCS7 signatureBlock;
|
||||
|
||||
|
||||
/**
|
||||
* Private constructor which takes a name a given signature
|
||||
* file. The name must be extension-less and less or equal to 8
|
||||
* character in length. */
|
||||
private SignatureFile(String name) throws JarException {
|
||||
|
||||
entries = new Vector<>();
|
||||
|
||||
if (name != null) {
|
||||
if (name.length() > 8 || name.indexOf('.') != -1) {
|
||||
throw new JarException("invalid file name");
|
||||
}
|
||||
rawName = name.toUpperCase(Locale.ENGLISH);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Private constructor which takes a name a given signature file
|
||||
* and a new file predicate. If it is a new file, a main header
|
||||
* will be added. */
|
||||
private SignatureFile(String name, boolean newFile)
|
||||
throws JarException {
|
||||
|
||||
this(name);
|
||||
|
||||
if (newFile) {
|
||||
MessageHeader globals = new MessageHeader();
|
||||
globals.set("Signature-Version", "1.0");
|
||||
entries.addElement(globals);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new Signature file corresponding to a given
|
||||
* Manifest. All entries in the manifest are signed.
|
||||
*
|
||||
* @param manifest the manifest to use.
|
||||
*
|
||||
* @param name for this signature file. This should
|
||||
* be less than 8 characters, and without a suffix (i.e.
|
||||
* without a period in it.
|
||||
*
|
||||
* @exception JarException if an invalid name is passed in.
|
||||
*/
|
||||
public SignatureFile(Manifest manifest, String name)
|
||||
throws JarException {
|
||||
|
||||
this(name, true);
|
||||
|
||||
this.manifest = manifest;
|
||||
Enumeration<MessageHeader> enum_ = manifest.entries();
|
||||
while (enum_.hasMoreElements()) {
|
||||
MessageHeader mh = enum_.nextElement();
|
||||
String entryName = mh.findValue("Name");
|
||||
if (entryName != null) {
|
||||
add(entryName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new Signature file corresponding to a given
|
||||
* Manifest. Specific entries in the manifest are signed.
|
||||
*
|
||||
* @param manifest the manifest to use.
|
||||
*
|
||||
* @param entries the entries to sign.
|
||||
*
|
||||
* @param filename for this signature file. This should
|
||||
* be less than 8 characters, and without a suffix (i.e.
|
||||
* without a period in it.
|
||||
*
|
||||
* @exception JarException if an invalid name is passed in.
|
||||
*/
|
||||
public SignatureFile(Manifest manifest, String[] entries,
|
||||
String filename)
|
||||
throws JarException {
|
||||
this(filename, true);
|
||||
this.manifest = manifest;
|
||||
add(entries);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a Signature file from an input stream.
|
||||
*
|
||||
* @exception IOException if an invalid name is passed in or if a
|
||||
* stream exception occurs.
|
||||
*/
|
||||
public SignatureFile(InputStream is, String filename)
|
||||
throws IOException {
|
||||
this(filename);
|
||||
while (is.available() > 0) {
|
||||
MessageHeader m = new MessageHeader(is);
|
||||
entries.addElement(m);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a Signature file from an input stream.
|
||||
*
|
||||
* @exception IOException if an invalid name is passed in or if a
|
||||
* stream exception occurs.
|
||||
*/
|
||||
public SignatureFile(InputStream is) throws IOException {
|
||||
this(is, null);
|
||||
}
|
||||
|
||||
public SignatureFile(byte[] bytes) throws IOException {
|
||||
this(new ByteArrayInputStream(bytes));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the signature file, ending with a ".SF"
|
||||
* suffix */
|
||||
public String getName() {
|
||||
return "META-INF/" + rawName + ".SF";
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the block file, ending with a block suffix
|
||||
* such as ".DSA". */
|
||||
public String getBlockName() {
|
||||
String suffix = "DSA";
|
||||
if (signatureBlock != null) {
|
||||
SignerInfo info = signatureBlock.getSignerInfos()[0];
|
||||
suffix = info.getDigestEncryptionAlgorithmId().getName();
|
||||
String temp = AlgorithmId.getEncAlgFromSigAlg(suffix);
|
||||
if (temp != null) suffix = temp;
|
||||
}
|
||||
return "META-INF/" + rawName + "." + suffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the signature block associated with this file.
|
||||
*/
|
||||
public PKCS7 getBlock() {
|
||||
return signatureBlock;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the signature block associated with this file.
|
||||
*/
|
||||
public void setBlock(PKCS7 block) {
|
||||
this.signatureBlock = block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a set of entries from the current manifest.
|
||||
*/
|
||||
public void add(String[] entries) throws JarException {
|
||||
for (int i = 0; i < entries.length; i++) {
|
||||
add (entries[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a specific entry from the current manifest.
|
||||
*/
|
||||
public void add(String entry) throws JarException {
|
||||
MessageHeader mh = manifest.getEntry(entry);
|
||||
if (mh == null) {
|
||||
throw new JarException("entry " + entry + " not in manifest");
|
||||
}
|
||||
MessageHeader smh;
|
||||
try {
|
||||
smh = computeEntry(mh);
|
||||
} catch (IOException e) {
|
||||
throw new JarException(e.getMessage());
|
||||
}
|
||||
entries.addElement(smh);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the entry corresponding to a given name. Returns null if
|
||||
*the entry does not exist.
|
||||
*/
|
||||
public MessageHeader getEntry(String name) {
|
||||
Enumeration<MessageHeader> enum_ = entries();
|
||||
while(enum_.hasMoreElements()) {
|
||||
MessageHeader mh = enum_.nextElement();
|
||||
if (name.equals(mh.findValue("Name"))) {
|
||||
return mh;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the n-th entry. The global header is a entry 0. */
|
||||
public MessageHeader entryAt(int n) {
|
||||
return entries.elementAt(n);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an enumeration of the entries.
|
||||
*/
|
||||
public Enumeration<MessageHeader> entries() {
|
||||
return entries.elements();
|
||||
}
|
||||
|
||||
/**
|
||||
* Given a manifest entry, computes the signature entry for this
|
||||
* manifest entry.
|
||||
*/
|
||||
private MessageHeader computeEntry(MessageHeader mh) throws IOException {
|
||||
MessageHeader smh = new MessageHeader();
|
||||
|
||||
String name = mh.findValue("Name");
|
||||
if (name == null) {
|
||||
return null;
|
||||
}
|
||||
smh.set("Name", name);
|
||||
|
||||
try {
|
||||
for (int i = 0; i < hashes.length; ++i) {
|
||||
MessageDigest dig = getDigest(hashes[i]);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
PrintStream ps = new PrintStream(baos);
|
||||
mh.print(ps);
|
||||
byte[] headerBytes = baos.toByteArray();
|
||||
byte[] digest = dig.digest(headerBytes);
|
||||
smh.set(hashes[i] + "-Digest", Base64.getMimeEncoder().encodeToString(digest));
|
||||
}
|
||||
return smh;
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
throw new JarException(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private Hashtable<String, MessageDigest> digests = new Hashtable<>();
|
||||
|
||||
private MessageDigest getDigest(String algorithm)
|
||||
throws NoSuchAlgorithmException {
|
||||
MessageDigest dig = digests.get(algorithm);
|
||||
if (dig == null) {
|
||||
dig = MessageDigest.getInstance(algorithm);
|
||||
digests.put(algorithm, dig);
|
||||
}
|
||||
dig.reset();
|
||||
return dig;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add a signature file at current position in a stream
|
||||
*/
|
||||
public void stream(OutputStream os) throws IOException {
|
||||
|
||||
/* the first header in the file should be the global one.
|
||||
* It should say "SignatureFile-Version: x.x"; barf if not
|
||||
*/
|
||||
MessageHeader globals = entries.elementAt(0);
|
||||
if (globals.findValue("Signature-Version") == null) {
|
||||
throw new JarException("Signature file requires " +
|
||||
"Signature-Version: 1.0 in 1st header");
|
||||
}
|
||||
|
||||
PrintStream ps = new PrintStream(os);
|
||||
globals.print(ps);
|
||||
|
||||
for (int i = 1; i < entries.size(); ++i) {
|
||||
MessageHeader mh = entries.elementAt(i);
|
||||
mh.print(ps);
|
||||
}
|
||||
}
|
||||
}
|
||||
34
jdkSrc/jdk8/sun/tools/jar/resources/jar.java
Normal file
34
jdkSrc/jdk8/sun/tools/jar/resources/jar.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "'c' flag requires manifest or input files to be specified!" },
|
||||
{ "error.bad.eflag", "'e' flag and manifest with the 'Main-Class' attribute cannot be specified \ntogether!" },
|
||||
{ "error.bad.option", "One of options -{ctxu} must be specified." },
|
||||
{ "error.bad.uflag", "'u' flag requires manifest, 'e' flag or input files to be specified!" },
|
||||
{ "error.cant.open", "can''t open: {0} " },
|
||||
{ "error.create.dir", "{0} : could not create directory" },
|
||||
{ "error.create.tempfile", "Could not create a temporary file" },
|
||||
{ "error.illegal.option", "Illegal option: {0}" },
|
||||
{ "error.incorrect.length", "incorrect length while processing: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : no such file or directory" },
|
||||
{ "error.write.file", "Error in writing existing jar file" },
|
||||
{ "out.added.manifest", "added manifest" },
|
||||
{ "out.adding", "adding: {0}" },
|
||||
{ "out.create", " created: {0}" },
|
||||
{ "out.deflated", "(deflated {0}%)" },
|
||||
{ "out.extracted", "extracted: {0}" },
|
||||
{ "out.ignore.entry", "ignoring entry {0}" },
|
||||
{ "out.inflated", " inflated: {0}" },
|
||||
{ "out.kept", " skipped: {0} exists" },
|
||||
{ "out.size", "(in = {0}) (out= {1})" },
|
||||
{ "out.stored", "(stored 0%)" },
|
||||
{ "out.update.manifest", "updated manifest" },
|
||||
{ "usage", "Usage: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOptions:\n -c create new archive\n -t list table of contents for archive\n -x, Extract named (or all) files from the archive.\n If a file with the same name appears more than once in\n the archive, each copy will be extracted, with later copies\n overwriting (replacing) earlier copies unless 'k' is specified.\n -u update existing archive\n -v generate verbose output on standard output\n -f specify archive file name\n -m include manifest information from specified manifest file\n -n perform Pack200 normalization after creating a new archive\n -e specify application entry point for stand-alone application \n bundled into an executable jar file\n -0 store only; use no ZIP compression\n -P preserve leading '/' (absolute path) and \"..\" (parent directory) components from file names\n -M do not create a manifest file for the entries\n -i generate index information for the specified jar files\n -C change to the specified directory and include the following file\nOperation modifiers valid only in extract mode:\n -k Do not overwrite existing files.\n If a Jar file entry with the same name exists in the target\n directory, the existing file will not be overwritten.\n As a result, if a file appears more than once in an\n archive, later copies will not overwrite earlier copies.\n Also note that some file system can be case insensitive.\nIf any file is a directory then it is processed recursively.\nThe manifest file name, the archive file name and the entry point name are\nspecified in the same order as the 'm', 'f' and 'e' flags.\n\nExample 1: to archive two class files into an archive called classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExample 2: use an existing manifest file 'mymanifest' and archive all the\n files in the foo/ directory into 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
{ "warn.option.is.ignored", "Warning: The {0} option is not valid with current usage, will be ignored." },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_de.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_de.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_de extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "Kennzeichen \"c\" erfordert Angabe von Manifest oder Eingabedateien." },
|
||||
{ "error.bad.eflag", "Kennzeichen \"e\" und Manifest mit dem Attribut \"Main-Class\" k\u00F6nnen nicht zusammen angegeben\nwerden." },
|
||||
{ "error.bad.option", "Eine der Optionen -{ctxu} muss angegeben werden." },
|
||||
{ "error.bad.uflag", "Kennzeichen \"u\" erfordert Angabe von Manifest, Kennzeichen \"e\" oder Eingabedateien." },
|
||||
{ "error.cant.open", "\u00D6ffnen nicht m\u00F6glich: {0} " },
|
||||
{ "error.create.dir", "{0}: Verzeichnis konnte nicht erstellt werden" },
|
||||
{ "error.create.tempfile", "Es konnte keine tempor\u00E4re Datei erstellt werden" },
|
||||
{ "error.illegal.option", "Unzul\u00E4ssige Option: {0}" },
|
||||
{ "error.incorrect.length", "Falsche L\u00E4nge bei der Verarbeitung: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0}: Datei oder Verzeichnis nicht vorhanden" },
|
||||
{ "error.write.file", "Fehler beim Schreiben in vorhandener JAR-Datei" },
|
||||
{ "out.added.manifest", "Manifest wurde hinzugef\u00FCgt" },
|
||||
{ "out.adding", "{0} wird hinzugef\u00FCgt" },
|
||||
{ "out.create", " erstellt: {0}" },
|
||||
{ "out.deflated", "({0} % verkleinert)" },
|
||||
{ "out.extracted", "extrahiert: {0}" },
|
||||
{ "out.ignore.entry", "Eintrag {0} wird ignoriert" },
|
||||
{ "out.inflated", " vergr\u00F6\u00DFert: {0}" },
|
||||
{ "out.size", "(ein = {0}) (aus = {1})" },
|
||||
{ "out.stored", "(0 % gespeichert)" },
|
||||
{ "out.update.manifest", "Manifest wurde aktualisiert" },
|
||||
{ "usage", "Verwendung: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus dem Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standard-Ausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr Standalone-Anwendung angeben \n in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem \"/\" (absoluter Pfad) und \"..\" (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifest-Datei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen \"m\", \"f\" und \"e\" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen \"classes.jar\": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandenen Manifestdatei \"mymanifest\", und archivieren Sie alle\n Dateien im Verzeichnis foo/ directory in \"classes.jar\": \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_es.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_es.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_es extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "El indicador 'c' necesita la especificaci\u00F3n de archivos de manifiesto o de entrada." },
|
||||
{ "error.bad.eflag", "El indicador 'e' y el manifiesto con el atributo 'Main-Class' no pueden especificarse \na la vez." },
|
||||
{ "error.bad.option", "Se debe especificar una de las opciones -{ctxu}." },
|
||||
{ "error.bad.uflag", "El indicador 'u' necesita la especificaci\u00F3n de archivos de manifiesto, de entrada o indicador 'e'." },
|
||||
{ "error.cant.open", "no se puede abrir: {0} " },
|
||||
{ "error.create.dir", "{0} : no se ha podido crear el directorio" },
|
||||
{ "error.create.tempfile", "No se ha podido crear el archivo temporal" },
|
||||
{ "error.illegal.option", "Opci\u00F3n no permitida: {0}" },
|
||||
{ "error.incorrect.length", "longitud incorrecta al procesar: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : no existe tal archivo o directorio" },
|
||||
{ "error.write.file", "Error al escribir un archivo jar existente" },
|
||||
{ "out.added.manifest", "manifiesto agregado" },
|
||||
{ "out.adding", "agregando: {0}" },
|
||||
{ "out.create", " creado: {0}" },
|
||||
{ "out.deflated", "(desinflado {0}%)" },
|
||||
{ "out.extracted", "extra\u00EDdo: {0}" },
|
||||
{ "out.ignore.entry", "ignorando entrada {0}" },
|
||||
{ "out.inflated", " inflado: {0}" },
|
||||
{ "out.size", "(entrada = {0}) (salida = {1})" },
|
||||
{ "out.stored", "(almacenado 0%)" },
|
||||
{ "out.update.manifest", "manifiesto actualizado" },
|
||||
{ "usage", "Sintaxis: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archivo mencionado (o todos) del archivo\n -u actualizar archivo existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archivo de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archivo de manifiesto especificado\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archivo jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -P conservar componentes iniciales '/' (ruta absoluta) y \"..\" (directorio principal) en los nombres de archivo\n -M no crear un archivo de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archivos jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_fr.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_fr.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_fr extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "L'indicateur c requiert la sp\u00E9cification d'un fichier manifeste ou d'un fichier d'entr\u00E9e." },
|
||||
{ "error.bad.eflag", "L'indicateur e et le fichier manifeste portant l'attribut Main-Class ne peuvent pas \u00EAtre sp\u00E9cifi\u00E9s \nensemble." },
|
||||
{ "error.bad.option", "Une des options -{ctxu} doit \u00EAtre sp\u00E9cifi\u00E9e." },
|
||||
{ "error.bad.uflag", "L'indicateur u requiert la sp\u00E9cification d'un fichier manifeste, d'un fichier d'entr\u00E9e ou d'un indicateur e." },
|
||||
{ "error.cant.open", "impossible d''ouvrir : {0} " },
|
||||
{ "error.create.dir", "{0} : impossible de cr\u00E9er le r\u00E9pertoire" },
|
||||
{ "error.create.tempfile", "Impossible de cr\u00E9er un fichier temporaire" },
|
||||
{ "error.illegal.option", "Option non admise : {0}" },
|
||||
{ "error.incorrect.length", "longueur incorrecte lors du traitement de : {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : fichier ou r\u00E9pertoire introuvable" },
|
||||
{ "error.write.file", "Erreur lors de l'\u00E9criture d'un fichier JAR existant" },
|
||||
{ "out.added.manifest", "manifeste ajout\u00E9" },
|
||||
{ "out.adding", "ajout : {0}" },
|
||||
{ "out.create", " cr\u00E9\u00E9 : {0}" },
|
||||
{ "out.deflated", "(compression : {0} %)" },
|
||||
{ "out.extracted", "extrait : {0}" },
|
||||
{ "out.ignore.entry", "entr\u00E9e {0} ignor\u00E9e" },
|
||||
{ "out.inflated", " d\u00E9compress\u00E9 : {0}" },
|
||||
{ "out.size", "(entr\u00E9e = {0}) (sortie = {1})" },
|
||||
{ "out.stored", "(stockage : 0 %)" },
|
||||
{ "out.update.manifest", "manifeste mis \u00E0 jour" },
|
||||
{ "usage", "Syntaxe : jar {ctxui}[vfmn0PMek] [fichier-jar] [fichier-manifeste] [point-entr\u00E9e] [-C r\u00E9p] fichiers...\nOptions :\n -c cr\u00E9e une archive\n -t affiche la table des mati\u00E8res de l'archive\n -x extrait les fichiers nomm\u00E9s (ou tous les fichiers) de l'archive\n -u met \u00E0 jour l'archive existante\n -v g\u00E9n\u00E8re une version d\u00E9taill\u00E9e d'une sortie standard\n -f sp\u00E9cifie le nom du fichier archive\n -m inclut les informations de manifeste \u00E0 partir du fichier manifeste sp\u00E9cifi\u00E9\n -n effectue une normalisation Pack200 apr\u00E8s la cr\u00E9ation d'une archive\n -e sp\u00E9cifie le point d'entr\u00E9e d'une application en mode autonome \n int\u00E9gr\u00E9e \u00E0 un fichier JAR ex\u00E9cutable\n -0 stockage uniquement, pas de compression ZIP\n -P pr\u00E9serve les signes de d\u00E9but '/' (chemin absolu) et \"..\" (r\u00E9pertoire parent) dans les noms de fichier\n -M ne cr\u00E9e pas de fichier manifeste pour les entr\u00E9es\n -i g\u00E9n\u00E8re les informations d'index des fichiers JAR sp\u00E9cifi\u00E9s\n -C passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le fichier suivant\nSi l'un des fichiers est un r\u00E9pertoire, celui-ci est trait\u00E9 r\u00E9cursivement.\nLes noms du fichier manifeste, du fichier archive et du point d'entr\u00E9e sont\nsp\u00E9cifi\u00E9s dans le m\u00EAme ordre que celui des indicateurs m, f et e.\n\nExemple 1 : pour archiver deux fichiers de classe dans une archive intitul\u00E9e classes.jar : \n jar cvf classes.jar Foo.class Bar.class \nExemple 2 : pour utiliser un fichier manifeste existant 'monmanifeste', puis archiver tous les\n fichiers du r\u00E9pertoire foo/ dans 'classes.jar' : \n jar cvfm classes.jar monmanifeste -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_it.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_it.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_it extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "Per il flag 'c' \u00E8 necessario specificare file manifest o di input." },
|
||||
{ "error.bad.eflag", "Il flag 'e' e il manifest con l'attributo 'Main-Class' non possono essere specificati\ninsieme." },
|
||||
{ "error.bad.option", "\u00C8 necessario specificare una delle opzioni -{ctxu}." },
|
||||
{ "error.bad.uflag", "Per il flag 'u' \u00E8 necessario specificare il flag 'e' oppure file manifest o di input." },
|
||||
{ "error.cant.open", "impossibile aprire: {0} " },
|
||||
{ "error.create.dir", "{0} : impossibile creare la directory" },
|
||||
{ "error.create.tempfile", "Impossibile creare il file temporaneo." },
|
||||
{ "error.illegal.option", "Opzione non valida: {0}" },
|
||||
{ "error.incorrect.length", "lunghezza non valida durante l''elaborazione: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : file o directory inesistente" },
|
||||
{ "error.write.file", "Errore durante la scrittura del file jar esistente" },
|
||||
{ "out.added.manifest", "aggiunto manifest" },
|
||||
{ "out.adding", "aggiunta in corso di: {0}" },
|
||||
{ "out.create", " creato: {0}" },
|
||||
{ "out.deflated", "(compresso {0}%)" },
|
||||
{ "out.extracted", "estratto: {0}" },
|
||||
{ "out.ignore.entry", "la voce {0} sar\u00E0 ignorata" },
|
||||
{ "out.inflated", " decompresso: {0}" },
|
||||
{ "out.size", "(in = {0}) (out = {1})" },
|
||||
{ "out.stored", "(memorizzato 0%)" },
|
||||
{ "out.update.manifest", "aggiornato manifest" },
|
||||
{ "usage", "Uso: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -n esegue normalizzazione Pack200 dopo la creazione di un nuovo archivio\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -P conserva i componenti iniziali '/' (percorso assoluto) e \\\"..\\\" (directory padre) dai nomi file\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_ja.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_ja.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_ja extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "\u30D5\u30E9\u30B0'c'\u3067\u306F\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u307E\u305F\u306F\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u6307\u5B9A\u304C\u5FC5\u8981\u3067\u3059\u3002" },
|
||||
{ "error.bad.eflag", "'e'\u30D5\u30E9\u30B0\u3068'Main-Class'\u5C5E\u6027\u3092\u6301\u3064\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u306F\u540C\u6642\u306B\n\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002" },
|
||||
{ "error.bad.option", "\u30AA\u30D7\u30B7\u30E7\u30F3-{ctxu}\u306E\u3046\u3061\u306E1\u3064\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002" },
|
||||
{ "error.bad.uflag", "\u30D5\u30E9\u30B0'u'\u3067\u306F\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304B'e'\u30D5\u30E9\u30B0\u3001\u307E\u305F\u306F\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u6307\u5B9A\u304C\u5FC5\u8981\u3067\u3059\u3002" },
|
||||
{ "error.cant.open", "{0}\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 " },
|
||||
{ "error.create.dir", "\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F" },
|
||||
{ "error.create.tempfile", "\u4E00\u6642\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F" },
|
||||
{ "error.illegal.option", "\u4E0D\u6B63\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}" },
|
||||
{ "error.incorrect.length", "{0}\u306E\u51E6\u7406\u4E2D\u306B\u4E0D\u6B63\u306A\u9577\u3055\u304C\u3042\u308A\u307E\u3057\u305F" },
|
||||
{ "error.nosuch.fileordir", "{0}\u3068\u3044\u3046\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\u3042\u308A\u307E\u305B\u3093" },
|
||||
{ "error.write.file", "\u65E2\u5B58jar\u30D5\u30A1\u30A4\u30EB\u306E\u66F8\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F" },
|
||||
{ "out.added.manifest", "\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F" },
|
||||
{ "out.adding", "{0}\u3092\u8FFD\u52A0\u4E2D\u3067\u3059" },
|
||||
{ "out.create", " {0}\u304C\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F" },
|
||||
{ "out.deflated", "({0}%\u53CE\u7E2E\u3055\u308C\u307E\u3057\u305F)" },
|
||||
{ "out.extracted", "{0}\u304C\u62BD\u51FA\u3055\u308C\u307E\u3057\u305F" },
|
||||
{ "out.ignore.entry", "\u30A8\u30F3\u30C8\u30EA{0}\u3092\u7121\u8996\u3057\u307E\u3059" },
|
||||
{ "out.inflated", " {0}\u304C\u5C55\u958B\u3055\u308C\u307E\u3057\u305F" },
|
||||
{ "out.size", "(\u5165={0})(\u51FA={1})" },
|
||||
{ "out.stored", "(0%\u683C\u7D0D\u3055\u308C\u307E\u3057\u305F)" },
|
||||
{ "out.update.manifest", "\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F" },
|
||||
{ "usage", "\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -n \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -P \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\\"..\\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_ko.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_ko.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_ko extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "'c' \uD50C\uB798\uADF8\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 Manifest \uB610\uB294 \uC785\uB825 \uD30C\uC77C\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4!" },
|
||||
{ "error.bad.eflag", "'e' \uD50C\uB798\uADF8 \uBC0F Manifest\uB97C 'Main-Class' \uC18D\uC131\uACFC \uD568\uAED8 \uC9C0\uC815\uD560 \uC218\n\uC5C6\uC2B5\uB2C8\uB2E4!" },
|
||||
{ "error.bad.option", "\uC635\uC158 -{ctxu} \uC911 \uD558\uB098\uB97C \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4." },
|
||||
{ "error.bad.uflag", "'u' \uD50C\uB798\uADF8\uB97C \uC0AC\uC6A9\uD558\uB824\uBA74 Manifest, 'e' \uD50C\uB798\uADF8 \uB610\uB294 \uC785\uB825 \uD30C\uC77C\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4!" },
|
||||
{ "error.cant.open", "\uC5F4 \uC218 \uC5C6\uC74C: {0} " },
|
||||
{ "error.create.dir", "{0}: \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4." },
|
||||
{ "error.create.tempfile", "\uC784\uC2DC \uD30C\uC77C\uC744 \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4." },
|
||||
{ "error.illegal.option", "\uC798\uBABB\uB41C \uC635\uC158: {0}" },
|
||||
{ "error.incorrect.length", "\uCC98\uB9AC \uC911 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC740 \uAE38\uC774\uAC00 \uBC1C\uACAC\uB428: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0}: \uD574\uB2F9 \uD30C\uC77C \uB610\uB294 \uB514\uB809\uD1A0\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." },
|
||||
{ "error.write.file", "\uAE30\uC874 jar \uD30C\uC77C\uC5D0 \uC4F0\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4." },
|
||||
{ "out.added.manifest", "Manifest\uB97C \uCD94\uAC00\uD568" },
|
||||
{ "out.adding", "\uCD94\uAC00\uD558\uB294 \uC911: {0}" },
|
||||
{ "out.create", " \uC0DD\uC131\uB428: {0}" },
|
||||
{ "out.deflated", "({0}%\uB97C \uAC10\uC18C\uD568)" },
|
||||
{ "out.extracted", "\uCD94\uCD9C\uB428: {0}" },
|
||||
{ "out.ignore.entry", "{0} \uD56D\uBAA9\uC744 \uBB34\uC2DC\uD558\uB294 \uC911" },
|
||||
{ "out.inflated", " \uC99D\uAC00\uB428: {0}" },
|
||||
{ "out.size", "(\uC785\uB825 = {0}) (\uCD9C\uB825 = {1})" },
|
||||
{ "out.stored", "(0%\uB97C \uC800\uC7A5\uD568)" },
|
||||
{ "out.update.manifest", "Manifest\uB97C \uC5C5\uB370\uC774\uD2B8\uD568" },
|
||||
{ "usage", "\uC0AC\uC6A9\uBC95: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -n \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD55C \uD6C4 Pack200 \uC815\uADDC\uD654\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \n \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9: ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -P \uD30C\uC77C \uC774\uB984\uC5D0\uC11C \uC120\uD589 '/'(\uC808\uB300 \uACBD\uB85C) \uBC0F \"..\"(\uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC) \uAD6C\uC131\uC694\uC18C\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ ." },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_pt_BR.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_pt_BR.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_pt_BR extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "flag 'c' requer que os arquivos de manifesto ou entrada sejam especificados!" },
|
||||
{ "error.bad.eflag", "o flag 'e' e manifesto com o atributo 'Main-Class' n\u00E3o podem ser especificados \njuntos!" },
|
||||
{ "error.bad.option", "Uma das op\u00E7\u00F5es -{ctxu} deve ser especificada." },
|
||||
{ "error.bad.uflag", "o flag 'u' requer que arquivos de manifesto, o flag 'e' ou arquivos de entrada sejam especificados!" },
|
||||
{ "error.cant.open", "n\u00E3o \u00E9 poss\u00EDvel abrir: {0} " },
|
||||
{ "error.create.dir", "{0} : n\u00E3o foi poss\u00EDvel criar o diret\u00F3rio" },
|
||||
{ "error.create.tempfile", "N\u00E3o foi poss\u00EDvel criar um arquivo tempor\u00E1rio" },
|
||||
{ "error.illegal.option", "Op\u00E7\u00E3o inv\u00E1lida: {0}" },
|
||||
{ "error.incorrect.length", "largura incorreta durante o processamento: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : n\u00E3o h\u00E1 tal arquivo ou diret\u00F3rio" },
|
||||
{ "error.write.file", "Erro ao gravar o arquivo jar existente" },
|
||||
{ "out.added.manifest", "manifesto adicionado" },
|
||||
{ "out.adding", "adicionando: {0}" },
|
||||
{ "out.create", " criado: {0}" },
|
||||
{ "out.deflated", "(compactado {0}%)" },
|
||||
{ "out.extracted", "extra\u00EDdo: {0}" },
|
||||
{ "out.ignore.entry", "ignorando entrada {0}" },
|
||||
{ "out.inflated", " inflado: {0}" },
|
||||
{ "out.size", "(entrada = {0}) (sa\u00EDda= {1})" },
|
||||
{ "out.stored", "(armazenado 0%)" },
|
||||
{ "out.update.manifest", "manifesto atualizado" },
|
||||
{ "usage", "Uso: jar {ctxui}[vfmn0Mek] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplicativo para aplicativo stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e \"..\" (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_sv.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_sv.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_sv extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "f\u00F6r c-flaggan m\u00E5ste manifest- eller indatafiler anges." },
|
||||
{ "error.bad.eflag", "e-flaggan och manifest med attributet Main-Class kan inte anges \ntillsammans." },
|
||||
{ "error.bad.option", "Ett av alternativen -{ctxu} m\u00E5ste anges." },
|
||||
{ "error.bad.uflag", "f\u00F6r u-flaggan m\u00E5ste manifest-, e-flagg- eller indatafiler anges." },
|
||||
{ "error.cant.open", "kan inte \u00F6ppna: {0} " },
|
||||
{ "error.create.dir", "{0} : kunde inte skapa n\u00E5gon katalog" },
|
||||
{ "error.create.tempfile", "Kunde inte skapa en tillf\u00E4llig fil" },
|
||||
{ "error.illegal.option", "Otill\u00E5tet alternativ: {0}" },
|
||||
{ "error.incorrect.length", "ogiltig l\u00E4ngd vid bearbetning: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0} : det finns ingen s\u00E5dan fil eller katalog" },
|
||||
{ "error.write.file", "Ett fel intr\u00E4ffade vid skrivning till befintlig jar-fil." },
|
||||
{ "out.added.manifest", "tillagt manifestfil" },
|
||||
{ "out.adding", "l\u00E4gger till: {0}" },
|
||||
{ "out.create", " skapad: {0}" },
|
||||
{ "out.deflated", "({0}% packat)" },
|
||||
{ "out.extracted", "extraherat: {0}" },
|
||||
{ "out.ignore.entry", "ignorerar posten {0}" },
|
||||
{ "out.inflated", " uppackat: {0}" },
|
||||
{ "out.size", "(in = {0}) (ut = {1})" },
|
||||
{ "out.stored", "(0% lagrat)" },
|
||||
{ "out.update.manifest", "uppdaterat manifest" },
|
||||
{ "usage", "Syntax: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nAlternativ:\n -c skapa nytt arkiv\n -t lista inneh\u00E5llsf\u00F6rteckning f\u00F6r arkiv\n -x extrahera namngivna (eller alla) filer fr\u00E5n arkivet\n -u uppdatera befintligt arkiv\n -v generera utf\u00F6rliga utdata vid standardutmatning\n -f ange arkivfilens namn\n -m inkludera manifestinformation fr\u00E5n angivet manifest\n -n utf\u00F6r Pack200-normalisering efter att ett nytt arkiv har skapats\n -e ange programstartpunkt f\u00F6r frist\u00E5ende applikation \n som medf\u00F6ljer i en jar-programfil\n -0 lagra endast; anv\u00E4nd inte zip-komprimering\n -P beh\u00E5ll komponenter f\u00F6r inledande '/' (absolut s\u00F6kv\u00E4g) och \"..\" (\u00F6verordnad katalog) fr\u00E5n filnamn\n -M skapa inte n\u00E5gon manifestfil f\u00F6r posterna\n -i generera indexinformation f\u00F6r de angivna jar-filerna\n -C \u00E4ndra till den angivna katalogen och inkludera f\u00F6ljande fil\nOm en fil \u00E4r en katalog bearbetas den rekursivt.\nNamnen p\u00E5 manifestfilen, arkivfilen och startpunkten anges i samma\nordning som flaggorna 'm', 'f' och 'e'.\n\nExempel 1: S\u00E5 h\u00E4r arkiverar du tv\u00E5 klassfiler i ett arkiv med namnet classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExempel 2: Anv\u00E4nd en befintlig manifestfil (mymanifest) och arkivera alla\n filer fr\u00E5n katalogen 'foo/' till 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_CN.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_CN.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_zh_CN extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "'c' \u6807\u8BB0\u8981\u6C42\u6307\u5B9A\u6E05\u5355\u6216\u8F93\u5165\u6587\u4EF6!" },
|
||||
{ "error.bad.eflag", "\u4E0D\u80FD\u540C\u65F6\u6307\u5B9A 'e' \u6807\u8BB0\u548C\u5177\u6709 'Main-Class' \u5C5E\u6027\u7684\n\u6E05\u5355!" },
|
||||
{ "error.bad.option", "\u5FC5\u987B\u6307\u5B9A {ctxu} \u4E2D\u7684\u4EFB\u4E00\u9009\u9879\u3002" },
|
||||
{ "error.bad.uflag", "'u' \u6807\u8BB0\u8981\u6C42\u6307\u5B9A\u6E05\u5355, 'e' \u6807\u8BB0\u6216\u8F93\u5165\u6587\u4EF6!" },
|
||||
{ "error.cant.open", "\u65E0\u6CD5\u6253\u5F00: {0} " },
|
||||
{ "error.create.dir", "{0}: \u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55" },
|
||||
{ "error.create.tempfile", "\u65E0\u6CD5\u521B\u5EFA\u4E34\u65F6\u6587\u4EF6" },
|
||||
{ "error.illegal.option", "\u975E\u6CD5\u9009\u9879: {0}" },
|
||||
{ "error.incorrect.length", "\u5904\u7406\u65F6\u9047\u5230\u4E0D\u6B63\u786E\u7684\u957F\u5EA6: {0}" },
|
||||
{ "error.nosuch.fileordir", "{0}: \u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\u6216\u76EE\u5F55" },
|
||||
{ "error.write.file", "\u5199\u5165\u73B0\u6709\u7684 jar \u6587\u4EF6\u65F6\u51FA\u9519" },
|
||||
{ "out.added.manifest", "\u5DF2\u6DFB\u52A0\u6E05\u5355" },
|
||||
{ "out.adding", "\u6B63\u5728\u6DFB\u52A0: {0}" },
|
||||
{ "out.create", " \u5DF2\u521B\u5EFA: {0}" },
|
||||
{ "out.deflated", "(\u538B\u7F29\u4E86 {0}%)" },
|
||||
{ "out.extracted", "\u5DF2\u63D0\u53D6: {0}" },
|
||||
{ "out.ignore.entry", "\u6B63\u5728\u5FFD\u7565\u6761\u76EE{0}" },
|
||||
{ "out.inflated", " \u5DF2\u89E3\u538B: {0}" },
|
||||
{ "out.size", "(\u8F93\u5165 = {0}) (\u8F93\u51FA = {1})" },
|
||||
{ "out.stored", "(\u5B58\u50A8\u4E86 0%)" },
|
||||
{ "out.update.manifest", "\u5DF2\u66F4\u65B0\u6E05\u5355" },
|
||||
{ "usage", "\u7528\u6CD5: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879:\n -c \u521B\u5EFA\u65B0\u6863\u6848\n -t \u5217\u51FA\u6863\u6848\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u6863\u6848\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -n \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528\u4EFB\u4F55 ZIP \u538B\u7F29\n -P \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/' (\u7EDD\u5BF9\u8DEF\u5F84) \u548C \"..\" (\u7236\u76EE\u5F55) \u7EC4\u4EF6\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_HK.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_HK.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_zh_HK extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "'c' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6216\u8F38\u5165\u6A94\u6848\uFF01" },
|
||||
{ "error.bad.eflag", "\u7121\u6CD5\u540C\u6642\u6307\u5B9A 'e' \u65D7\u6A19\u548C\u5177\u6709 'Main-Class' \u5C6C\u6027\u7684\n\u8CC7\u8A0A\u6E05\u55AE\uFF01" },
|
||||
{ "error.bad.option", "\u5176\u4E2D\u4E00\u500B\u9078\u9805 -{ctxu} \u5FC5\u9808\u52A0\u4EE5\u6307\u5B9A\u3002" },
|
||||
{ "error.bad.uflag", "'u' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u3001'e' \u65D7\u6A19\u6216\u8F38\u5165\u6A94\u6848\uFF01" },
|
||||
{ "error.cant.open", "\u7121\u6CD5\u958B\u555F: {0} " },
|
||||
{ "error.create.dir", "{0} : \u7121\u6CD5\u5EFA\u7ACB\u76EE\u9304" },
|
||||
{ "error.create.tempfile", "\u7121\u6CD5\u5EFA\u7ACB\u66AB\u5B58\u6A94\u6848" },
|
||||
{ "error.illegal.option", "\u7121\u6548\u7684\u9078\u9805: {0}" },
|
||||
{ "error.incorrect.length", "\u8655\u7406 {0} \u6642\u9577\u5EA6\u4E0D\u6B63\u78BA" },
|
||||
{ "error.nosuch.fileordir", "{0} : \u6C92\u6709\u9019\u985E\u6A94\u6848\u6216\u76EE\u9304" },
|
||||
{ "error.write.file", "\u5BEB\u5165\u73FE\u6709\u7684 jar \u6A94\u6848\u6642\u767C\u751F\u932F\u8AA4" },
|
||||
{ "out.added.manifest", "\u5DF2\u65B0\u589E\u8CC7\u8A0A\u6E05\u55AE" },
|
||||
{ "out.adding", "\u65B0\u589E: {0}" },
|
||||
{ "out.create", " \u5EFA\u7ACB: {0}" },
|
||||
{ "out.deflated", "(\u58D3\u7E2E {0}%)" },
|
||||
{ "out.extracted", "\u64F7\u53D6: {0}" },
|
||||
{ "out.ignore.entry", "\u5FFD\u7565\u9805\u76EE {0}" },
|
||||
{ "out.inflated", " \u64F4\u5C55: {0}" },
|
||||
{ "out.size", " (\u8B80={0})(\u5BEB={1})" },
|
||||
{ "out.stored", "(\u5132\u5B58 0%)" },
|
||||
{ "out.update.manifest", "\u5DF2\u66F4\u65B0\u8CC7\u8A0A\u6E05\u55AE" },
|
||||
{ "usage", "\u7528\u6CD5: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u7684\u6B78\u6A94\n -t \u5217\u51FA\u6B78\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u6B78\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u6B78\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u6B78\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u6B78\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -P \u4FDD\u7559\u6A94\u6848\u540D\u7A31\u524D\u9762\u7684 '/' (\u7D55\u5C0D\u8DEF\u5F91) \u548C \"..\" (\u4E0A\u5C64\u76EE\u9304) \u5143\u4EF6\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u6B78\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u6B78\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u6B78\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class\n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u6B78\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_TW.java
Normal file
32
jdkSrc/jdk8/sun/tools/jar/resources/jar_zh_TW.java
Normal file
@@ -0,0 +1,32 @@
|
||||
package sun.tools.jar.resources;
|
||||
|
||||
import java.util.ListResourceBundle;
|
||||
|
||||
public final class jar_zh_TW extends ListResourceBundle {
|
||||
protected final Object[][] getContents() {
|
||||
return new Object[][] {
|
||||
{ "error.bad.cflag", "'c' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6216\u8F38\u5165\u6A94\u6848\uFF01" },
|
||||
{ "error.bad.eflag", "\u7121\u6CD5\u540C\u6642\u6307\u5B9A 'e' \u65D7\u6A19\u548C\u5177\u6709 'Main-Class' \u5C6C\u6027\u7684\n\u8CC7\u8A0A\u6E05\u55AE\uFF01" },
|
||||
{ "error.bad.option", "\u5176\u4E2D\u4E00\u500B\u9078\u9805 -{ctxu} \u5FC5\u9808\u52A0\u4EE5\u6307\u5B9A\u3002" },
|
||||
{ "error.bad.uflag", "'u' \u65D7\u6A19\u8981\u6C42\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u3001'e' \u65D7\u6A19\u6216\u8F38\u5165\u6A94\u6848\uFF01" },
|
||||
{ "error.cant.open", "\u7121\u6CD5\u958B\u555F: {0} " },
|
||||
{ "error.create.dir", "{0} : \u7121\u6CD5\u5EFA\u7ACB\u76EE\u9304" },
|
||||
{ "error.create.tempfile", "\u7121\u6CD5\u5EFA\u7ACB\u66AB\u5B58\u6A94\u6848" },
|
||||
{ "error.illegal.option", "\u7121\u6548\u7684\u9078\u9805: {0}" },
|
||||
{ "error.incorrect.length", "\u8655\u7406 {0} \u6642\u9577\u5EA6\u4E0D\u6B63\u78BA" },
|
||||
{ "error.nosuch.fileordir", "{0} : \u6C92\u6709\u9019\u985E\u6A94\u6848\u6216\u76EE\u9304" },
|
||||
{ "error.write.file", "\u5BEB\u5165\u73FE\u6709\u7684 jar \u6A94\u6848\u6642\u767C\u751F\u932F\u8AA4" },
|
||||
{ "out.added.manifest", "\u5DF2\u65B0\u589E\u8CC7\u8A0A\u6E05\u55AE" },
|
||||
{ "out.adding", "\u65B0\u589E: {0}" },
|
||||
{ "out.create", " \u5EFA\u7ACB: {0}" },
|
||||
{ "out.deflated", "(\u58D3\u7E2E {0}%)" },
|
||||
{ "out.extracted", "\u64F7\u53D6: {0}" },
|
||||
{ "out.ignore.entry", "\u5FFD\u7565\u9805\u76EE {0}" },
|
||||
{ "out.inflated", " \u64F4\u5C55: {0}" },
|
||||
{ "out.size", " (\u8B80={0})(\u5BEB={1})" },
|
||||
{ "out.stored", "(\u5132\u5B58 0%)" },
|
||||
{ "out.update.manifest", "\u5DF2\u66F4\u65B0\u8CC7\u8A0A\u6E05\u55AE" },
|
||||
{ "usage", "\u7528\u6CD5: jar {ctxui}[vfmn0PMek] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u7684\u6B78\u6A94\n -t \u5217\u51FA\u6B78\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u6B78\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u6B78\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u6B78\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u6B78\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -P \u4FDD\u7559\u6A94\u6848\u540D\u7A31\u524D\u9762\u7684 '/' (\u7D55\u5C0D\u8DEF\u5F91) \u548C \"..\" (\u4E0A\u5C64\u76EE\u9304) \u5143\u4EF6\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u6B78\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u6B78\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u6B78\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class\n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u6B78\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n" },
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user