【问题标题】:Launching Java .class with External Libraries in Terminal在终端中使用外部库启动 Java .class
【发布时间】:2015-04-24 00:38:10
【问题描述】:

我环顾四周,没有解决我的问题。

我正在尝试在终端中启动一个 .class 文件,同时包含另一个目录。我就是这样做的:

java -cp lib/*:bin/ org.package.file

但是,我不断收到错误消息,表明我不包括 lib 目录。

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Lists

文件是bin/org/package/file,我需要包含整个lib目录。

我在 Ubuntu 操作系统的终端中执行此操作。

【问题讨论】:

  • 您得到的确切错误是什么?并形成您正在运行 java 命令的哪个目录?
  • @SMA Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Lists - 目录是libbin 都在其中的目录。
  • 您的 guava*jar 在类路径中的什么位置?尝试包含它。
  • @SMA 位于lib 目录中
  • 不,您需要单独指定每个 jar,例如 java -cp lib/Guava.jar:bin/ org.package.file

标签: java linux ubuntu terminal


【解决方案1】:

您需要在命令行中指定单独的库来指定类路径,而不是使用通配符,例如:

java -cp lib/a.jar:lib/b.jar:bin/ org.package.file

从外观上看,您的 lib 目录中确实有 guava jar,因此请尝试像上面一样将所有 jar 包含在您的 lib 目录中,这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 2012-02-15
    • 2013-08-08
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 2015-11-02
    • 2014-03-16
    相关资源
    最近更新 更多