为什么我的程序找不到我的java类?

时间:2014-05-09 09:26:23

标签: java maven jar maven-2 classpath

我有一个项目,我已经编译成一个带有Maven的jar,我将其命名为H.jar。 我使用的maven命令是(在eclipse中):

 maven install

jar文件中有一个名为Person的类。 我已经将jar文件添加到Windows机器上的类路径中。

 echo %classpath% 
 Results -> C:\location_to_jar\H.jar 

但是当我尝试编译程序时,我收到错误:

 error. Cannot find symbol.

我正在运行命令:

 javac Main.java 

该课程如下:

 public class Main {
     public static void main(String[] args) {
     Person p = new Person("John", "Doe");
     p.toString();
     }
}

如果我将程序添加到类路径中,程序是否应该只找到该类?

1 个答案:

答案 0 :(得分:0)

听起来你的程序完全包含在一个jar中,没有外部依赖,所以我建议你避免使用%CLASSPATH%环境变量。相反,直接将jar指向jar。

假设您的Maven构建生成了一个可执行jar,并将Main类定义为其入口点,那么您只需执行:

java -jar C:\location_to_jar\H.jar

如果您的构建中尚未定义可执行类,则可以在命令行上定义类路径:

java -cp C:\location_to_jar\H.jar com.mypackage.Main

您需要使用应用程序中定义的相应软件包名称替换上述命令中的软件包。

如果您希望Maven使您的jar可执行,那么您可以使用Maven Assembly Plugin来提供帮助。可以在此处找到解释的答案:How can I create an executable JAR with dependencies using Maven?