【问题标题】:Importing external classes with out an IDE在没有 IDE 的情况下导入外部类
【发布时间】:2014-01-19 04:04:44
【问题描述】:

我只是想知道如何在不使用 IDE 的情况下导入位于 .jar 文件中的类。 jar 文件与 java 文件位于同一目录中。 例如,jar 文件称为“someclasses.jar”,我的文件称为 program.java

我已经完成了研究,但我似乎无法让它发挥作用。我也不确定我是否正确地执行了类路径。这是否接近应该完成的方式:

import someclasses.*;

以及编译运行时:

javac -cp '.:someclasses.jar' program.java

java -cp '.:someclasses.jar' program

任何帮助将不胜感激。

【问题讨论】:

  • 请发布您收到的确切错误。照原样,如果您的课程不是包的一部分,那么您正在做的事情没有任何问题。
  • 我正在尝试从该网站实现该类:code.google.com/p/metadata-extractor 它是图像文件的元数据阅读器。我之前从未使用过外部库,并且关注其他线程我似乎迷路了......
  • 那个...没有回答我的问题。问题很可能出在 您的 类文件以及您正在运行 javac 的位置,而不是他们的 jar。

标签: java jar import


【解决方案1】:

你必须这样做。

javac -cp .:someclasses.jar program.java

java -cp .:someclasses.jar program

Regrading import 语句,它应该是使用的类的完全限定名称不是 jar 的名称。* 您必须从目录顶部执行这些命令.比如

javac -cp .:someclasses.jar com.test.program.java

【讨论】:

  • 单引号被忽略。那不是真正的问题。如果我不得不在没有 OP 收到的实际错误消息的情况下进行疯狂的猜测,那么他们的 program 类在一个包中,并且他们没有从目录树的顶部运行 javac/java。跨度>
  • 好的。关于导入语句,如果 jar 文件有很多类,我是否只需将它们作为它们的名称导入,如下所示:import classinjarfile;该库来自此站点:code.google.com/p/metadata-extractor 所以我不确定如何实现它。
  • 请阅读link 了解如何使用包
猜你喜欢
  • 2012-07-09
  • 1970-01-01
  • 2012-12-07
  • 2011-09-30
  • 2011-08-28
  • 2015-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多