【问题标题】:How can I determine the org of a given jar and the names of contained packages?如何确定给定 jar 的 org 和包含的包的名称?
【发布时间】:2021-03-22 12:23:10
【问题描述】:

我想使用 jar 中包含的一些 java 类,例如 introcs.jar。正如Java code to import JAR file 中所见,需要orgsomepackage 的值来导入。如果我只有罐子(没有任何其他信息),我如何确定orgsomepackage?如果可能的话,我宁愿不打开罐子。

如果知道orgsomepackage,那是微不足道的。我知道如何添加到classpath

(Windows 10 x64)

【问题讨论】:

  • 要知道罐子里有什么,你必须看看里面。这里的所有都是它的。 jar tf <filename>

标签: java jar


【解决方案1】:

链接页面显示这些类都在没有名称的顶级包中。此外,看起来这些类是要运行的,而不是导入的。要运行它们,请输入:

java -jar introcs.jar <ClassName>

不过,一般来说,任何像样的 jar 文件都应该附带说明每个 jar 所在的包的文档。您基本上需要了解一些关于您将要使用的类的信息;至少,该类的作用以及应该如何使用它。 “应该如何使用”的一个重要部分是它在哪个包中。

【讨论】:

  • 谢谢。 introcs.jar 还包含 stdlib.jar,它似乎包含要导入的类,如 StdIn.java 和 StdOut.java。
  • @trevelyan 在这种情况下,我认为 introcs.jar 应该被提取到它自己的目录中(jar xf introcs.jar)。然后你会发现 java 和 class 文件以及 stdlib.jar,它再次不使用包。只需使用java -cp .;stdlib.jar ClassFile 运行java 类(在Windows 上使用;,如果您使用的是Linux,则使用:)。您不需要使用 import 语句,因为 stdlib.jar 中包含的类位于顶级未命名包中。
猜你喜欢
  • 2015-05-17
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 2020-05-05
相关资源
最近更新 更多