所以我在eclipse中有一个maven项目,我通常可以通过>运行Java应用程序。但是,如果我尝试从命令行通过“java TestServer”从目标目录启动类文件,它将无法工作。它说它无法找到或加载主类。如果我用简单的虚拟hello世界替换源代码并执行则它可以正常工作。
代码有两个maven依赖项。
简单假人:
public class HelloWorld {
public static void main(String[] args){
System.out.println("hello world!");
}
}
为什么会这样?由于nestest类有问题吗?为什么不能为代码找到一个主类,而是为一个小虚拟人找到?
答案 0 :(得分:2)
问题是类路径。
Maven不负责从Eclipse工作区运行项目
因为Eclipse拥有自己的.project
文件,其中包含所有类路径条目。当您使用Run As
时,Eclipse只使用其.project
文件的所有类路径配置。
要从控制台启动java程序,您需要将类路径设置为bin
或target
目录以及所有库引用的库(&#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?