Java 带有默认包的jar

Java 带有默认包的jar,java,import,jar,classpath,Java,Import,Jar,Classpath,我发现这个问题-> Andy Thomas Cramer说,“Java编程入门”中“stdlib.jar”中的类没有包,所以它们在默认包中 这不是一个坏习惯吗?如果您有一些没有包的东西,IDE的自动完成会非常慢。这也意味着我们不能使用任何一个类,在这个jar中,来自于包与默认包不同的类 有人能告诉我我们怎么处理这件事吗 编辑: 我有两个JAR,我把它们放在引用库中,它们在默认包中都有一堆类。当我在不同的包中创建类时,默认设置是org.myquestion,我不能再从JAR访问这些类了 这真的让我

我发现这个问题->

Andy Thomas Cramer说,“Java编程入门”中“stdlib.jar”中的类没有包,所以它们在默认包中

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

有人能告诉我我们怎么处理这件事吗

编辑: 我有两个JAR,我把它们放在引用库中,它们在默认包中都有一堆类。当我在不同的包中创建类时,默认设置是org.myquestion,我不能再从JAR访问这些类了


这真的让我很烦。。。首先,我不能创建自己的包并使用罐子中的任何东西。第二,我的IDE(我使用eclipse)自动完成变得很糟糕——我猜它会立即搜索到所有类。。。我想做的是将jar放在某个名称空间中。。。要像org.someone.libs.SomeClass一样访问它们,使用默认包肯定是不好的做法。包对类进行分组并为它们提供访问保护(受保护、包专用),并作为唯一的命名空间发挥作用


您可以始终使用每个包中的类,无论它们是否为默认类,您都可以混合使用。

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


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

import packagename.*;
因此,只有两种方法可以解决此问题:

  • 更简单的方法是:不要在src文件夹中创建包,而使用默认包2!stdln.jar中的每个类都会自动导入到src中。 这样地:

  • 尝试使用命名包创建自己的jar文件,并将所有类文件复制到新创建的jar文件中。 因为stdln.jar只用于教育,所以选择哪一个并不重要。在实际开发中,我们从不使用默认命名包,因为这不是一个好的实践,总是会导致一些混乱的东西。 希望这对你有帮助


  • 我怎么能绕过这个?例如,给定stdlib.jar,witch使用默认包-我可以将其封装在某个包中吗?谢谢你真的需要吗?我假设您正在以包的形式组织自己的课程。你们有一些遇到问题的示例代码吗?我有两个JAR,我把它们放在引用库中,它们在默认包中都有一堆类。当我在不同的包中创建类时,默认设置是org.myquestion,我不能再从JAR访问这些类了。这真的让我很烦。。。首先,我不能创建自己的包并使用罐子中的任何东西。第二,我的IDE(我使用eclipse)自动完成变得很糟糕——我猜它会立即搜索到所有类。。。我想做的是将jar放在某个名称空间中。。。为了能够像org.someones.libs.someclasse一样访问它们,虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。