如何在Java中为当前目录设置类路径?

时间:2018-07-10 12:08:20

标签: java

如何将当前文件夹包含为类路径?我有一个Utility和一个Main class,例如;

/home/project/Main.class
/home/project/libs/com/fr/Utility.class

当我尝试以(/ home / project / dir)下运行Main class时;

java -cp "libs/*;" Main

我遇到了错误。

Error: Could not find or load main class Main

编辑:

主类;

import com.fr.Utility;

public class Main{
 ....
}

实用程序类

package com.fr;

public class Utility{
 ....
}

我跑步时;

java -cp .:libs/* Main

我遇到了错误;

Exception in thread "main" java.lang.NoClassDefFoundError: com/fr/Utility
Caused by: java.lang.ClassNotFoundException: com.fr.Utility

3 个答案:

答案 0 :(得分:4)

.用于当前文件夹:

java -cp .;libs/ Main

答案 1 :(得分:2)

如果您使用的是Linux,则应使用冒号作为路径分隔符:,如果使用的是Windows,则应使用;

还用点.包含当前路径,并从类路径中删除通配符*

java -cp .:libs/ Mainjava -cp .;libs/ Main

请参见this answer,以及this documentation中的“了解类路径通配符”部分。

答案 2 :(得分:1)

尝试

java -cp .;libs/ Main

主要问题可能是:

  1. 默认情况下,当前类路径未包含在自定义类路径中
  2. 包含*的类路径条目将与.class文件不匹配,并且也不会递归搜索子目录。
相关问题