使用命令行工具构建时如何添加 .jar 文件依赖项?

发布于 2024-11-25 02:17:35 字数 97 浏览 1 评论 0原文

非常简单的问题。不使用Ants或Maven可以完成吗? (我特指的是命令行工具)

请注意,我不想创建 uberjar,我只是希望存档单元“知道”其外部依赖项在哪里。

Pretty straightforward question. Can it be done without the use of Ants or Maven? (And by that, I mean the command line tool specifically)

Please notice that I don't want to create an uberjar, I just want the archived unit to "know" where its external dependencies are.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哑剧 2024-12-02 02:17:35

假设您正在谈论 javac 的命令行调用,那么您正在谈论的是“我可以提供库作为 javac 的参数来满足编译期间的要求”。

man javac 的顶部条目说

 -classpath 类路径
          设置用户类路径,覆盖中的用户类路径
          CLASSPATH 环境变量。如果 CLASSPATH 或 -class- 都没有
          指定路径时,用户类路径由当前的
          目录。有关更多详细信息,请参阅设置类路径。

实际上,我怀疑你只需要说

javac -classpath path/to/library1.jar Main.java

Presuming you're talking about a command line invocation of javac, what you're talking about is "can I provide libraries as arguments to javac to fulfill requirements during compilation".

Top entry for man javac says

   -classpath classpath
          Sets  the user class path, overriding the user class path in the
          CLASSPATH environment variable.  If neither CLASSPATH or -class-
          path  is  specified, the user class path consists of the current
          directory.  See Setting the Class Path for more details.

Effectively I suspect you just need to say

javac -classpath path/to/library1.jar Main.java

做个少女永远怀春 2024-12-02 02:17:35

您可以通过META-INF/MANIFEST.MF来实现。您可以像这样将其他 jar 添加到类路径中:

Manifest-Version: 1.0
Main-Class: org.domain.MyMainClass
Class-Path: lib/slf4j-log4j12-1.5.8.jar lib/slf4j-api-1.5.8.jar

我相信,只有在定义 Main-Class 并像这样启动应用程序时它才有效:

java -jar my-app.jar

另请注意,类路径路径是相对于主 jar 的。因此,在我的示例中,目录结构应如下所示:

  • my-app.jar
  • lib
    • slf4j-log4j12-1.5.8.jar
    • slf4j-api-1.5.8.jar

You can make it through META-INF/MANIFEST.MF. You can add other jars to the classpath like this:

Manifest-Version: 1.0
Main-Class: org.domain.MyMainClass
Class-Path: lib/slf4j-log4j12-1.5.8.jar lib/slf4j-api-1.5.8.jar

I believe, that it works only if you define Main-Class and start your application like this:

java -jar my-app.jar

Also notice, that classpath paths are relative to the main jar. So in my example directory structure should look like this:

  • my-app.jar
  • lib
    • slf4j-log4j12-1.5.8.jar
    • slf4j-api-1.5.8.jar
橘亓 2024-12-02 02:17:35

我认为您正在寻找的是清单文件,请在此处查看更多详细信息
http://download.oracle.com/javase/tutorial/deployment/jar /downman.html

I think what you are looking for is a manifest file, Look here for more details
http://download.oracle.com/javase/tutorial/deployment/jar/downman.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文