【问题标题】:What's difference between these two jar files?这两个jar文件有什么区别?
【发布时间】:2016-01-17 01:51:40
【问题描述】:

我对 Java 完全陌生。我正在学习斯坦福 CS-106A。在本课程中,他们提供了 acm.jar 和 yahtzeelib.jar 来完成作业。我在互联网上找到了答案,为什么他在代码开头导入 acm。但是当他想使用yahtzeelib.jar中的方法时,可以直接使用,不用导入yahtzeelib。

所以我的问题是为什么使用这两个jar文件有区别?(一个必须导入,另一个可以直接在代码中使用)

This is the code

【问题讨论】:

  • 如果不向我们展示代码就很难说...
  • jars 包含已编译的类,这些类包含您想要使用的方法。除了 java.lang 包类,其他类需要导入(总是)
  • 对不起,我想我已经添加了一张图片,但我不知道为什么你看不到它。

标签: java jar


【解决方案1】:

您无需导入类即可在 Java 中使用它们,它们只需要在 CLASSPATH 上即可。

如果一个名为“Baz”的类存在于包“foo.bar”中,那么您可以立即通过名称“foo.bar.Baz”来使用它。

如果你“import foo.bar.Baz;”,那么你可以用简单的名字“Baz”来引用那个类。

我的猜测是 .jar #2 中的类在 Default 包中。

【讨论】:

  • 是的,我刚刚发现 #2 在默认包中。谢谢!
  • 我刚尝试导入 .jar#2,但失败并显示“无法解决”。这是否意味着当它在默认包中时我无法导入这种文件?
  • 您不导入文件,而是从包中导入名称。您需要将 jars 放在类路径上,一旦您这样做了 - 其中的所有类都将通过全名 (this.is.a.package.ClassName) 可用。如果您希望能够使用短名称 (ClassName),请使用导入。
猜你喜欢
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 2016-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多