无法通过命令行启动Java应用程序

时间:2015-06-26 23:00:24

标签: java maven command-line console dependencies

所以我在eclipse中有一个maven项目,我通常可以通过>运行Java应用程序。但是,如果我尝试从命令行通过“java TestServer”从目标目录启动类文件,它将无法工作。它说它无法找到或加载主类。如果我用简单的虚拟hello世界替换源代码并执行则它可以正常工作。

代码有两个maven依赖项。

简单假人:

public class HelloWorld {

    public static void main(String[] args){
        System.out.println("hello world!");

    }
}

为什么会这样?由于nestest类有问题吗?为什么不能为代码找到一个主类,而是为一个小虚拟人找到?

1 个答案:

答案 0 :(得分:2)

问题是类路径。

Maven不负责从Eclipse工作区运行项目 因为Eclipse拥有自己的.project文件,其中包含所有类路径条目。当您使用Run As时,Eclipse只使用其.project文件的所有类路径配置。

要从控制台启动java程序,您需要将类路径设置为bintarget目录以及所有库引用的库(&#39; jar&#39;)项目。正确设置类路径后,您可以使用java <qualified classname>启动程序。以这种方式启动程序根本不使用任何Maven的功能。

看看这里使用Maven https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Maven将创建一个库jar,其中包含项目的所有类。 您可以将类路径设置为生成的库,并使用java <qualified classname>

启动您的程序

由于评论而编辑

以下是使用Windows操作系统设置类路径的示例 安慰。您也可以将此行放入适当的Windows批处理(.bat) 提交并启动你的程序,

set classpath = .;log4j.jar;lib/any-other-lib.jar
java org.<whatever>.MyProgram

有关在其他操作系统上设置类路径的更多信息,您也可以查看 setting Java Classpath in linux?