首页 > Java > 将所有 jar 包含在 Java 类路径的目录中

将所有 jar 包含在 Java 类路径的目录中

上一篇 下一篇

有没有办法将所有 jar 文件包含在类路径的目录中?

我正在尝试,它无法找到肯定在这些罐子中的类文件。是否需要将每个 jar 文件单独添加到类路径中?java -classpath lib/*.jar:. my.package.Program

分割线

网友回答:

在Windows下,这有效:

java -cp "Test.jar;lib/*" my.package.MainClass

这不起作用:

java -cp "Test.jar;lib/*.jar" my.package.MainClass

请注意 ,因此应单独使用 * 通配符*.jar


在 Linux 上,以下工作:

java -cp "Test.jar:lib/*" my.package.MainClass

分隔符是号而不是分号

分割线

网友回答:

使用 Java 6 或更高版本时,类路径选项支持通配符。请注意以下几点:

  • 使用直引号 (")
  • 使用 ,而不是**.jar

窗户

java -cp "Test.jar;lib/*" my.package.MainClass

Unix

java -cp "Test.jar:lib/*" my.package.MainClass

这类似于 Windows,但使用 代替 。如果不能使用通配符,则允许使用以下语法(其中 是包含所有 Java 归档文件的目录)::;bashlib

java -cp "$(printf %s: lib/*.jar)"

(请注意,使用类路径与该选项不兼容。另请参阅:从命令提示符执行具有多个类路径库的 jar 文件)-jar

了解通配符

从类路径文档中:

类路径条目可以包含基名通配符,这等效于指定目录中扩展名为 or 的所有文件
的列表。例如,
类路径条目指定名为 foo 的
目录中的所有 JAR 文件。仅由 组成的类路径条目将展开为当前目录中所有
jar 文件的列表。
*.jar.JARfoo/**

包含的类路径条目与类文件不匹配。要在单个目录 foo 中同时匹配类和 JAR 文件,请使用

或 。选择的顺序决定了 中的
类和资源是在 中的 JAR 文件之前加载的,反
之亦然。*foo;foo/*foo/*;foofoofoo

不以递归方式搜索子目录。例如,仅在 中查找 JAR 文件,而不是在 中查找
等。
foo/*foofoo/barfoo/baz

未指定目录中的 JAR 文件在
扩展类路径中的枚举顺序,并且可能因平台而异
,甚至在同一台计算机上可能因时而异。构造
良好的应用程序不应依赖于任何特定
顺序。如果需要特定顺序,则可以在类路径中显式枚举 JAR 文件

通配符的扩展是在调用
程序的主方法之前尽早完成的,而不是在类加载
过程本身的后期完成的。包含
通配符的输入类路径的每个元素都将替换为通过枚举命名目录中的 JAR 文件生成的(可能为空的)元素
序列。例如
,如果目录包含 、 和 ,则
类路径将展开为 ,
并且该字符串将是系统属性
的值。
fooa.jarb.jarc.jarfoo/*foo/a.jar;foo/b.jar;foo/c.jarjava.class.path

环境变量的处理方式与 (或 ) 命令行选项没有任何不同
。也就是说,在所有这些情况下都
尊重通配符。但是,标头中不支持
类路径通配符。
CLASSPATH-classpath-cpClass-Path jar-manifest

注意:由于 Java 8 中存在已知错误,Windows 示例必须在条目前面使用反斜杠和尾随星号: https://bugs.openjdk.java.net/browse/JDK-8131329

分割线

网友回答:

我们通过部署一个 jar 文件来解决此问题,该文件包含一个清单 () 文件,该文件指定了与其他所需 jar 的类路径,然后将其与它一起部署。在这种情况下,您只需在运行代码时进行声明。myapp.jarManifest.mfjava -jar myapp.jar

因此,如果您将 main 部署到某个目录中,然后将依赖的 jar 放入该目录下的文件夹中,则清单如下所示:jarlib

Manifest-Version: 1.0
Implementation-Title: myapp
Implementation-Version: 1.0.1
Class-Path: lib/dep1.jar lib/dep2.jar

注意:这是独立于平台的 – 我们可以使用相同的jar在UNIX服务器或Windows PC上启动。

模板简介:该模板名称为【将所有 jar 包含在 Java 类路径的目录中】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Java】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 206次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-01
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
自适应 微信公众平台 单页式简历模板 企业网站 响应式 微信文章 微信图片 html5 微信素材 微信模板
您可能会喜欢的其他模板