【问题标题】:How to use the . in the java class path while running如何使用 .运行时在java类路径中
【发布时间】:2014-08-11 08:57:57
【问题描述】:

我想在 UNIX 中运行一个 java 类,而我的 java 类 test.class 位于一个名为 test-java-1.0.1 的文件夹中。 因此,要运行这个 java 类,我在 UNIX 中使用以下命令:

$java -cp lib.jar  test-java-1.0.1/test

当我这样做时得到错误:

Exception in thread "main" java.lang.NoClassDefFoundError: test-java-1/0/1/test

如何在 java 类路径中使用.

谢谢, 埃什瓦里

【问题讨论】:

  • java -cp test-java-1.0.1:lib.jar test 我认为应该这样做,但目前尚不清楚您的班级名称是什么。是test 并且没有声明任何包吗?
  • 是的。我的类名是 test,它位于文件夹 test-java-1.0.1

标签: java classpath


【解决方案1】:

如果您的类名为 test(没有任何包)并且生成的编译类已放入名为 test-java-1.0.1 的文件夹中,那么您需要将该文件夹作为类路径的一部分并提供您的名称类到 java 可执行文件:

java -cp test-java-1.0.1:lib.jar test

在 Unix 上,您可以使用冒号 ':' 连接多个类路径元素。在 Windows 上,您需要使用分号 ';'。

注意改进:

  • 你的类名应该以大写字母开头
  • 将类放在包中总是更好。

例如

package my.nice.package1;

public class Test {
    // Your code here

    public static void main(String[] args) {
          // Do something
    }
}

然后调用你的类:

java -cp test-java-1.0.1:lib.jar my.nice.package1.Test

【讨论】:

  • @user3218187 不要忘记将您的问题标记为已回答。 ^.^
【解决方案2】:

您可以使用引号包裹路径。

在你的情况下,命令是:

java -cp lib.jar "test-java-1.0.1/test"

【讨论】:

  • 它在我的 Debian 机器上运行...您是否尝试过使用 \ 转义您的经期?
  • 引用也没有用。仍然出现 NoClassFoundError 之类的异常:test-java-1/0/1/test
【解决方案3】:

查看以下有关使用 Java 和 Javac 编译的链接。我已经在那里给出了答案。

  1. Compile and run Eclipse Project from command prompt
  2. Java Command line operations Example
  3. Build Eclipse Java Project from Command Line

希望这能帮助您解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    相关资源
    最近更新 更多