#
# Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
# 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.
#

error.cant.open=\
     {0} \u3092\u958b\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002 
error.illegal.option=\
        \u4e0d\u6b63\u306a\u30aa\u30d7\u30b7\u30e7\u30f3: {0}
error.bad.option=\
        \u30aa\u30d7\u30b7\u30e7\u30f3 -{ctxu} \u306e\u3046\u3061\u306e 1 \u3064\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
error.bad.cflag=\
        \u30d5\u30e9\u30b0 'c' \u3067\u306f\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u304b\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u6307\u5b9a\u304c\u5fc5\u8981\u3067\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.bad.eflag='e' \u30d5\u30e9\u30b0\u3068 'Main-Class' \u5c5e\u6027\u3092\u6301\u3064\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u306f\u540c\u6642\u306b\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002
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\u3002
error.write.file=\
        \u65e2\u5b58 jar \u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
error.create.dir=\
        \u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
error.incorrect.length=\
        {0} \u306e\u51e6\u7406\u4e2d\u306b\u4e0d\u6b63\u306a\u9577\u3055\u304c\u3042\u308a\u307e\u3057\u305f\u3002
out.added.manifest=\
        \u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
out.update.manifest=\
        \u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u304c\u66f4\u65b0\u3055\u308c\u307e\u3057\u305f\u3002
out.ignore.entry=\
        \u30a8\u30f3\u30c8\u30ea {0} \u3092\u7121\u8996\u3057\u307e\u3059\u3002
out.adding=\
        {0} \u3092\u8ffd\u52a0\u4e2d\u3067\u3059\u3002
out.deflated=\
        ({0}% \u53ce\u7e2e\u3055\u308c\u307e\u3057\u305f)
out.stored=\
        (0% \u683c\u7d0d\u3055\u308c\u307e\u3057\u305f)
out.create=\
        \ \ {0} \u304c\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002
out.extracted=\
        {0} \u304c\u62bd\u51fa\u3055\u308c\u307e\u3057\u305f\u3002
out.inflated=\
        \ \{0} \u304c\u5c55\u958b\u3055\u308c\u307e\u3057\u305f\u3002
out.size=\
        (\u5165 = {0}) (\u51fa = {1})

usage=\
\u4f7f\u3044\u65b9: jar {ctxui}[vfm0Me] [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\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6307\u5b9a\u3059\u308b\n\
\ \   -m  \u6307\u5b9a\u306e\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u60c5\u5831\u3092\u53d6\u308a\u8fbc\u3080\n\
\ \   -e  \u5b9f\u884c\u53ef\u80fd jar \u30d5\u30a1\u30a4\u30eb\u306b\u30d0\u30f3\u30c9\u30eb\u3055\u308c\u305f\u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30f3\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\n\
\ \       \u30a8\u30f3\u30c8\u30ea\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\
\ \   -M  \u30a8\u30f3\u30c8\u30ea\u306e\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u306a\u3044\n\
\ \   -i  \u6307\u5b9a\u306e jar \u30d5\u30a1\u30a4\u30eb\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u60c5\u5831\u3092\u751f\u6210\u3059\u308b\n\
\ \   -C  \u6307\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u5909\u66f4\u3057\u3001\u4ee5\u4e0b\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\u30d5\u30a1\u30a4\u30eb\u540d\u3001\u30a2\u30fc\u30ab\u30a4\u30d6\u30d5\u30a1\u30a4\u30eb\u540d\u304a\u3088\u3073\u30a8\u30f3\u30c8\u30ea\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\u3057\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002\n\n\
\u4f8b 1: 2 \u3064\u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30fc\u30ab\u30a4\u30d6 classes.jar \u306b\u4fdd\u5b58\u3059\u308b:\n\
\ \      jar cvf classes.jar Foo.class Bar.class \n\
\u4f8b 2: \u65e2\u5b58\u306e\u30de\u30cb\u30d5\u30a7\u30b9\u30c8\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
