java - 如何从不在包中的 jar 导入 Java 类?

标签 java

我有一个 .jar,其中包含一个我想使用的类:FooBar.class。这个类不在包中,它只是位于 .jar 的根目录中。

我已将 .jar 作为库添加到项目中,但问题是,我不知道如何导入它,因为它不在包中。

如果我只是这样做:import FooBar; 我得到错误:。 expected,我无法在任何地方使用 FooBar 类,因为它显示 Symbol not found

有什么想法吗?

最佳答案

您不能从默认包中导入。您(或编写它的人)无论如何都不应该使用默认包。除了非常小的示例程序外,您应该避免使用默认包。

如果这是您的代码,请将其放入一个包中,因为它应该是这样的。如果是别人的,如果他们花时间为您打包,他们可以将其打包。

或者,省略导入,但记得在编译时将 jar 添加到类路径中。

或者,如果您很懒惰并且不关心忽略所有最佳实践(即,如果这是一个玩具程序等)

$ jar -xvf <whatever>.jar

将从 jar 中提取文件到当前目录,此时您可以正常使用它们。如果您使用的是 Windows,您可能可以通过任何程序为您处理 .zip 文件来执行此操作 - .jar 只是带有 list 的 .zip。

关于java - 如何从不在包中的 jar 导入 Java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317628/

相关文章:

java - 正则表达式 (Java) - 需要帮助制定特定的模式字符串

java - 在 Java 中使用 RandomAccessFile 编写非英文字符

java - java中使用栈将对象添加到数组列表中

java - 正确终止java流

java - Android 上的 MD5 异常行为

java - 如何使用 Graphics 类填充三角形 (Java)

java - 如何在 Java Swing 中绘制折线图

java - Spring Security 使用 Web 服务进行验证并从数据库中检索角色

java - Outlook 禁止使用 R 中的 mailR 对某些电子邮件地址进行身份验证

java - 如何在启动代理时强制 Jenkins 2.107.2 使用 java-1.8.0?