【问题标题】:tools.jar dependencytools.jar 依赖
【发布时间】:2011-03-10 22:05:56
【问题描述】:

考虑一个从 main 方法启动的 Java 程序,它需要来自 tools.jar 的东西。在这种情况下,一些用于连接到 JMX 服务的实用程序代码。除了将它包装在使用 -cp 来管理类路径的 shell 脚本中,我们还有其他选择吗?我们更愿意使用 MANIFEST.MF 类路径。

【问题讨论】:

    标签: java tools.jar


    【解决方案1】:

    来自http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html

    the URLs in the Class-Path header are given relative to the URL of the JAR file of the applet or application.
    

    我不相信您可以选择使用 shell 包装器来获取类路径中的 tools.jar。除非您在内部编写一些自定义类加载器以允许您找到外部 jar。

    【讨论】:

    • 这个想法是我会放弃使用类路径清单,而只是建立一个长的 -cp 参数,包括 $JAVA_HOME/lib/tools.jar。
    • 我以为我在证实你的想法和怀疑。建立一个长的 -cp 参数似乎是做你想做的唯一好方法。您还可以创建一个 java -jar 启动器,该启动器将使用系统 exec 生成另一个“java -cp some.package.Main”。这将允许您跳过脚本,但代价是产生或分叉一个新进程。
    【解决方案2】:

    如果合并依赖 jar 中的类是一种选择,我会创建一个“可运行的 JAR 文件”。基本上,您从中提取类并将它们与您自己的类一起放在 JAR 中。这消除了对包装脚本的需要。

    要在 Eclipse 中执行此操作,请选择您的项目,File -> Export -> Java -> Runnable JAR file;该选项将要求您至少执行一次主类才能知道在实际运行生成的 JAR 时要运行什么配置文件。

    【讨论】:

      猜你喜欢
      • 2015-11-16
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2012-09-06
      • 2019-03-06
      • 1970-01-01
      相关资源
      最近更新 更多