#
# Copyright (c) 1999, 2025, 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.
#

## tool

jar.description=创建类和资源的档案，并处理档案中的单个类或资源或者从档案中还原单个类或资源

error.multiple.main.operations=不能指定多个 '-cuxtid' 选项
error.cant.open=无法打开: {0}
error.illegal.option=非法选项: {0}
error.unrecognized.option=无法识别的选项: {0}
error.missing.arg=选项{0}需要参数
error.bad.file.arg=解析文件参数时出错
error.bad.option=必须指定 -{ctxuid} 或 --validate 选项之一。
error.bad.cflag='c' 标记要求指定清单或输入文件!
error.bad.uflag='u' 标记要求指定清单, 'e' 标记或输入文件!
error.bad.eflag=不能同时指定 'e' 标记和具有 'Main-Class' 属性的\n清单!
error.bad.dflag='-d, --describe-module' 选项不需要指定任何输入文件
error.bad.reason=错误的原因: {0}, 必须为 deprecated, deprecated-for-removal 或 incubating 之一
error.nosuch.fileordir={0}: 没有这个文件或目录
error.write.file=写入现有的 jar 文件时出错
error.create.dir={0}: 无法创建目录
error.incorrect.length=处理时遇到不正确的长度: {0}
error.create.tempfile=无法创建临时文件
error.extract.multiple.dest.dir=不能与 '-x' 选项一起多次指定 '-C' 或 '--dir' 选项
error.extract.pflag.not.allowed=不能与 '-C' 或 '--dir' 选项一起指定 '-Px'
error.hash.dep=正在对模块 {0} 的被依赖对象执行散列处理, 在模块路径中找不到模块 {1}
error.module.options.without.info=--module-version 或 --hash-modules 之一没有 module-info.class
error.no.operative.descriptor=没有发行版的有效描述符: {0}
error.no.root.descriptor=没有根模块描述符, 请指定 --release
error.unable.derive.automodule=无法派生 {0} 的模块描述符
error.unexpected.module-info=意外的模块描述符 {0}
error.module.descriptor.not.found=找不到模块描述符
error.invalid.versioned.module.attribute=无效的模块描述符属性 {0}
error.missing.provider=未找到服务提供方: {0}
error.release.value.notnumber=发行版 {0} 无效
error.release.value.toosmall=发行版 {0} 无效, 必须 >= 9
error.release.unexpected.versioned.entry=发行版 {1} 存在意外的版本化条目 {0}
error.release.value.toohigh.versioned.entry={0} 具有类文件版本 {1}，但是 Java 平台的目标发行版 {3} 需要类文件版本 {2} 或更低版本
error.date.notvalid=日期 {0} 不是具有可选时区的有效 ISO-8601 扩展偏移日期时间
error.date.out.of.range=日期 {0} 不在 1980-01-01T00:00:02Z 到 2099-12-31T23:59:59Z 这一有效范围内
error.validator.jarfile.exception=无法验证 {0}: {1}
error.validator.jarfile.invalid=删除的多发行版 jar 文件 {0} 无效
error.validator.bad.entry.name=条目名称格式错误, {0}
error.validator.version.notnumber=条目名称 {0} 没有版本号
error.validator.entryname.tooshort=条目名称 {0} 太短, 不是目录
error.validator.isolated.nested.class=条目 {0} 是单独的嵌套类
error.validator.new.public.class=条目 {0} 包含未在基础条目中找到的新公共类
error.validator.incompatible.class.version=条目 {0} 包含与较早版本不兼容的类版本
error.validator.different.api=条目 {0} 包含的类具有与早期版本不同的 api
error.validator.names.mismatch=条目 {0} 包含内部名称为 {1} 的类, 名称不匹配
error.validator.info.name.notequal=版本化目录中的 module-info.class 包含不正确的名称
error.validator.info.requires.transitive=版本化目录中的 module-info.class 包含额外的 "requires transitive"
error.validator.info.requires.added=版本化目录中的 module-info.class 包含额外的 "requires"
error.validator.info.requires.dropped=版本化目录中的 module-info.class 包含缺少的 "requires"
error.validator.info.exports.notequal=版本化目录中的 module-info.class 包含不同的 "exports"
error.validator.info.opens.notequal=版本化目录中的 module-info.class 包含不同的 "opens"
error.validator.info.provides.notequal=版本化目录中的 module-info.class 包含不同的 "provides"
error.validator.info.version.notequal={0}: 版本化目录中的 module-info.class 包含不同的 "version"
error.validator.info.manclass.notequal={0}: 版本化目录中的 module-info.class 包含不同的 "main-class"
error.validator.metainf.wrong.position=条目 META-INF/ 应位于位置 0 处，但发现：{0}
error.validator.manifest.wrong.position=条目 META-INF/MANIFEST.MF 应位于位置 0 或 1 处，但发现该条目位于位置 {0} 处
warn.validator.identical.entry=警告: 条目 {0} 包含与 jar 中的\n现有条目相同的类
warn.validator.resources.with.same.name=警告: 条目 {0}, 多个资源具有相同名称
warn.validator.concealed.public.class=警告: 条目 {0} 是已隐藏程序包中的\n公共类, 将此 jar 放置在类路径中\n将导致公共接口不兼容
warn.validator.duplicate.cen.entry=警告：为 {1} 找到 {0} 个中央目录条目
warn.validator.duplicate.loc.entry=警告：为 {1} 找到 {0} 个本地文件标头
warn.validator.invalid.entry.name=警告：条目名称 {0} 无效
warn.validator.cen.only.entry=警告：在本地文件标头中找不到中央目录条目 {0} 的等效条目
warn.validator.loc.only.entry=警告：在中央目录中找不到本地文件标头 {0} 的等效条目
warn.validator.order.mismatch=警告：中央目录和本地文件标头条目的顺序不同
warn.release.unexpected.versioned.entry=意外的版本化条目 {0}
warn.index.is.ignored=自 JDK 18 起，在运行时忽略 JAR 索引 (META-INF/INDEX.LIST)
warn.flag.is.deprecated=警告：{0} 选项已过时，可能会在未来发行版中忽略或删除。\n
warn.option.is.ignored=警告：{0} 选项对于当前用法无效，将忽略它。
out.added.manifest=已添加清单
out.added.module-info=已添加 module-info: {0}
out.automodule=找不到模块描述符。已派生自动模块。
out.update.manifest=已更新清单
out.update.module-info=已更新 module-info: {0}
out.ignore.entry=正在忽略条目{0}
out.adding=正在添加: {0}
out.deflated=(压缩了 {0}%)
out.stored=(存储了 0%)
out.create=\  已创建: {0}
out.extracted=已提取: {0}
out.kept=\  已跳过：{0} 已存在
out.inflated=\  已解压: {0}
out.size=(输入 = {0}) (输出 = {1})
out.extract.dir=提取到目录：{0}

usage.compat=兼容性接口：\n用法：jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n选项：\n    -c  创建新档案（包括缺少的父目录）\n    -t  列出档案目录\n    -x  从档案中提取指定的（或所有）文件\n    -u  更新现有档案\n    -v  在标准输出中生成详细输出\n    -f  指定档案文件名\n    -m  包含指定清单文件中的清单信息\n    -e  为捆绑到可执行 jar 文件的独立应用程序\n        指定应用程序入口点\n    -0  仅存储；不使用任何 ZIP 压缩\n    -P  保留文件名中的前导 '/'（绝对路径）和 ".."（父目录）组成部分\n    -M  不创建条目的清单文件\n    -i  为指定的 jar 文件生成索引信息\n    -C  更改为指定的目录并包含以下文件\n如果任何文件为目录，则对其进行递归处理。\n在提取模式下使用时，将 jar 提取到指定目录\n清单文件名、档案文件名和入口点名称的指定顺序\n与 'm'、'f' 和 'e' 标记的指定顺序相同。\n\n示例 1：将两个类文件归档到一个名为 classes.jar 的档案中：\n       jar cvf classes.jar Foo.class Bar.class \n示例 2：使用现有的清单文件 'mymanifest' 并\n           将 foo/ 目录中的所有文件归档到 'classes.jar' 中：\n       jar cvfm classes.jar mymanifest -C foo/。\n

main.usage.summary=用法: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...
main.usage.summary.try=尝试使用 `jar --help' 获取详细信息。

main.help.preopt=用法: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar 创建类和资源的档案, 并且可以处理档案中的\n单个类或资源或者从档案中还原单个类或资源。\n\n 示例:\n # 创建包含两个类文件的名为 classes.jar 的档案:\n jar --create --file classes.jar Foo.class Bar.class\n # 使用现有的清单创建档案, 其中包含 foo/ 中的所有文件:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # 创建模块化 jar 档案, 其中模块描述符位于\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n     -C foo/ classes resources\n # 将现有的非模块化 jar 更新为模块化 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n     -C foo/ module-info.class\n # 创建包含多个发行版的 jar, 并将一些文件放在 META-INF/versions/9 目录中:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes\n\n要缩短或简化 jar 命令, 可以在单独的文本文件中指定参数,\n并使用 @ 符号作为前缀将此文件传递给 jar 命令。\n\n 示例:\n # 从文件 classes.list 读取附加选项和类文件列表\n jar --create --file my.jar @classes.list\n
main.help.opt.main=\ 主操作模式:\n
main.help.opt.main.create=\  -c, --create               创建档案。通过 -f 或 --file 指定的档案文件名\n                             包含路径时，还将创建\n                             缺少的父目录
main.help.opt.main.generate-index=\  -i, --generate-index=FILE  生成指定 jar 档案的索引信息。\n                             此选项已过时，\n                             可能会在未来发行版中删除。
main.help.opt.main.list=\  -t, --list                 列出档案的目录
main.help.opt.main.update=\  -u, --update               更新现有 jar 档案
main.help.opt.main.extract=\  -x, --extract              从档案中提取指定的（或所有）文件。\n                             如果某个同名的文件在档案中出现多次，\n                             则将提取每个副本，除非指定 -k，否则\n                             后面的副本将覆盖（替换）前面的副本。
main.help.opt.main.describe-module=\  -d, --describe-module      输出模块描述符或自动模块名称
main.help.opt.main.validate=\      --validate             验证 jar 档案的内容。此选项：\n                             - 验证由多发行版 jar 档案导出\n                             的 API 在所有不同的发行版本中\n                             是否一致。\n                             - 如果文件名无效或重复，则发出警告


main.help.opt.any=\ 在任意模式下有效的操作修饰符：\n\n  -C DIR                     更改为指定目录并包含\n                             以下文件。在提取模式下使用时，\n                             将 jar 提取到指定目录
main.help.opt.any.file=\  -f, --file=FILE            档案文件名。省略时, 基于操作\n                             使用 stdin 或 stdout\n      --release VERSION      将下面的所有文件都放在\n                             jar 的版本化目录中 (即 META-INF/versions/VERSION/)
main.help.opt.any.verbose=\  -v, --verbose              在标准输出中生成详细输出
main.help.opt.create=\ 仅在创建模式下有效的操作修饰符:\n
main.help.opt.create.update=\ 在创建和更新模式下有效的操作修饰符:\n
main.help.opt.create.update.main-class=\  -e, --main-class=CLASSNAME 捆绑到模块化或可执行 \n                             jar 档案的独立应用程序\n                             的应用程序入口点
main.help.opt.create.update.manifest=\  -m, --manifest=FILE        包含指定清单文件中的\n                             清单信息
main.help.opt.create.update.no-manifest=\  -M, --no-manifest          不为条目创建清单文件
main.help.opt.create.update.module-version=\      --module-version=VERSION    创建模块化 jar 或更新\n                             非模块化 jar 时的模块版本
main.help.opt.create.update.hash-modules=\      --hash-modules=PATTERN 计算和记录模块的散列, \n                             这些模块按指定模式匹配并直接或\n                             间接依赖于所创建的模块化 jar 或\n                             所更新的非模块化 jar
main.help.opt.create.update.module-path=\  -p, --module-path          模块被依赖对象的位置, 用于生成\n                             散列
main.help.opt.create.update.do-not-resolve-by-default=\      --do-not-resolve-by-default  从默认根模块集中排除
main.help.opt.create.update.warn-if-resolved=\      --warn-if-resolved     提示工具在解析模块后发出警告。\n                             可以为 deprecated, deprecated-for-removal\n                             或 incubating 之一
main.help.opt.create.update.index=\ 只在创建, 更新和生成索引模式下有效的操作修饰符:\n
main.help.opt.create.update.index.no-compress=\  -0, --no-compress          仅存储; 不使用 ZIP 压缩
main.help.opt.create.update.index.date=\      --date=TIMESTAMP       具有可选时区的 ISO-8601 扩展偏移\n                             日期时间格式的时间戳（用于条目的时间戳），\n                             例如，"2022-02-12T12:30:00-05:00"
main.help.opt.extract=\ 仅在提取模式下有效的操作修饰符：\n
main.help.opt.extract.keep-old-files=\  -k, --keep-old-files       不覆盖现有文件。\n                             如果目标目录中存在同名的 Jar 文件\n                             条目，将不覆盖现有文件。\n                             因此，如果某个文件在档案中出现多次，\n                             后面的副本不会覆盖前面的副本。\n                             另请注意，一些文件系统可能不区分大小写。
main.help.opt.other=\ 其他选项:\n
main.help.opt.other.help=\  -?, -h, --help[:compat]    提供此帮助，也可以选择性地提供兼容性帮助
main.help.opt.other.help-extra=\      --help-extra           提供额外选项的帮助
main.help.opt.other.version=\      --version              输出程序版本
main.help.postopt=\ 如果模块描述符 'module-info.class' 位于指定目录的\n 根目录中, 或者位于 jar 档案本身的根目录中, 则\n 该档案是一个模块化 jar。以下操作只在创建模块化 jar,\n 或更新现有的非模块化 jar 时有效: '--module-version',\n '--hash-modules' 和 '--module-path'。\n\n 如果为长选项提供了必需参数或可选参数, 则它们对于\n 任何对应的短选项也是必需或可选的。
main.help.opt.extract.dir=\  --dir                    jar 将提取到其中的目录
