【问题标题】:How to find package name for jar如何找到jar的包名
【发布时间】:2021-08-21 02:51:13
【问题描述】:

我一直在使用 IntelliJ 编写一个非常短的演示 Java 程序。我想把演示转换成一个jar文件,这样我就可以将它导入到另一个程序中使用。这是问题所在。我想在 Textpad 中导入 jar 文件。它只是一个基本的文本编辑器。我不能只通过菜单导入 jar 文件,然后完成它,因为 jar 不会在 IntelliJ 之类的 IDE 中使用。我需要知道 jar 文件的导入行,但我想不通。我将转换的图像提供给一个 jar 以及我尝试导入但不起作用。如何找到jar文件的包?

【问题讨论】:

  • 这里有两个单独的步骤。 (1) 你不导入 JAR 文件(使用 Java import 关键字)——你导入类,使用完全限定的类名——其中“完全限定”意味着它包括包名。在您的情况下,您没有包(基于您的第一个屏幕截图),因为 DemoProjectsrc 目录的直接子级。因此导入语句将是import DemoProject
  • (2) 在编译运行ImportStuff 程序时,需要确保包含DemoProject 的JAR 文件在类路径中。换句话说,您确保javacjava 知道在哪里可以找到JAR 文件。 但是你为什么要使用 TextPad,因为你显然已经在使用一个功能齐全的 IDE,它为你处理了很多事情? 这部分令人困惑。只需使用 IntelliJ 创建 JAR。
  • 课程路径很好,但对完全合格的评论有所帮助。除非指定了包,否则 Textpad 将无法工作,因此我在 IntelliJ 的 src 文件夹中添加了一个,它就可以工作了。泰
  • 很高兴你解决了它!我的小修正:我不应该说“你没有包” - 我应该说“你没有名为包” 。默认情况下,没有明确包名的类被放置在未命名的包中——参见here

标签: java intellij-idea import jar


【解决方案1】:

你需要知道两件事:

  1. 类名(DemoProject)
  2. 包名。

因此,在您的 TextPad 视图中,您已将包名称显示为“Demo”。确实有待确认。

我对 IntelliJ 不够熟悉,不知道如何配置包名称 - 这可能是您在生成 .jar 文件时可以控制的内容。

我会使用的蛮力方法是:

  1. .jar 文件只是一个 .zip 文件。在您喜欢的存档程序中查看 .jar 文件。
  2. 检查 META-INF 文件夹中的 MANIFEST.MF 文件。可能会有一些暗示包名称的内容(例如“Automatic-Module-Name:”)。
  3. 存档中会有文件夹。文件夹的完整路径构成了包名称。

例如我在我的系统上发现了一个随机的 .jar 文件。 MANIFEST.MF 文件显示“自动模块名称:org.jetbrains.annotations”。类的路径是 org/jetbrains/annotations,所以包名是“org.jetbrains.annotations”。

【讨论】:

  • 谢谢!这和上一篇文章对我帮助很大。我需要为该项目使用文本板。很抱歉去老学校大声笑
猜你喜欢
  • 1970-01-01
  • 2011-06-12
  • 2012-02-03
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2015-05-17
相关资源
最近更新 更多