0

我发现了这个问题->在 Java 中导入自定义库

@Andy Thomas-Cramer 说“Java 编程简介”中的“stdlib.jar”中的类没有包,所以它们在默认包中。

这不是一个坏习惯吗?如果你有没有包的东西,IDE 的自动完成会很慢。这也意味着我们不能使用该 jar 中的任何类,这些类的包与默认值不同?

有人可以告诉我我们该如何处理吗?

编辑:我有 2 个罐子,我把它们放在引用库中,它们都有一堆默认包中的类。当我在不同的包中创建类时,默认值 - 比如说 org.myquestion 我不能再从 jar 中访问这些类。

这真的让我很烦恼...首先我无法创建自己的包并使用罐子中的任何东西。其次,我的 IDE(我使用 eclipse)的自动完成变得很糟糕——我想它会一次搜索到一些普通的类......我想做的是以某种方式将 jars 放在某个命名空间中......并能够访问它们像 org.someones.libs.SomeClass

4

3 回答 3

0

下载 jar 源代码,并自己构建到 jar 并添加任何你喜欢的包名。这将解决你的问题。

在默认包中的 JAR 文件中导入类

于 2015-02-03T02:02:31.003 回答
0

使用默认包当然是不好的做法。包对类进行分组并为它们提供访问保护(受保护的、包私有的)并用作唯一的命名空间。

你总是可以使用每个包中的类,不管它们是不是默认的,你总是可以混合使用。

于 2013-02-10T13:23:05.007 回答
0

我遇到了和你一样的问题。问题是 jar 文件“stdln.jar”没有命名包,比如说,只有默认包。基本上,您不能从默认包中导入类,因为导入操作需要包名:

import packagename.*;

所以只有两种方法可以解决这个问题:

  1. 更简单的一个:不要在您的 src 文件夹中创建包并使用默认包二!stdln.jar 中的每个类都会自动导入到您的 src 中。像这样: 在此处输入图像描述

  2. 尝试使用命名包创建自己的 jar 文件,并将所有类文件复制到新创建的 jar 文件中。由于 stdln.jar 仅用于教育,因此您要选择哪个并不重要。在实际开发中,我们从不使用默认命名包,因为这不是一个真正的好习惯,总是会导致一些令人困惑的东西。希望这会对你有所帮助!

于 2018-11-03T03:56:53.517 回答