maven从命令行运行Java程序/Jar
我有一个java程序,我使用maven用intellij编写。我将其导出为jar,并尝试从命令行运行,但它一直告诉我
错误:无法找到或加载主类com。公司主要的 原因:java。lang.ClassNotFoundException:com。公司主要
然后我尝试从命令行运行程序本身,这也告诉我它找不到主类
命令行: 对于jar:java-jar-selenium\u项目。罐子
用于运行程序:javacom。公司主要
对于jar,我从它所在的文件夹中运行它。对于这个程序,我从程序的根运行它
波姆。xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<index>true</index>
<manifest>
<mainClass>com.company.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins></build>
舱单:
Manifest-Version: 1.0
Main-Class: com.company.Main
这可能是maven的问题,我不知道。我创建了一个简单的hello world程序,并从命令行运行该程序,它成功了。我这样运行它(c://etc)/src/>;javacom。公司你好世界但是,当我再次尝试这个类时,它找不到主类。 多谢各位
编辑: 我改为使用maven汇编插件,重新构建了jar,但仍然无法工作
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>
com.company.Main
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins></build>
class structure to show where main class is
主类中的代码
public class Main {
public static void main(String[] args) throws IOException, SQLException {
System.out.println("hello");
Executor ex = new Executor();
}
}
# 1 楼答案
我不知道是什么问题。我试着创建一个新的程序,我复制了课程,重新制作了pom。xml文件和我的新程序除了一个依赖项(chrome选项)外还能工作,但我不认为这是导致问题的原因。所以现在我只需要弄清楚为什么Chrome选项不起作用,但新程序的实际jar确实运行
# 2 楼答案
您的错误可能是您的主类位于错误的包中
此外,如果您有依赖项,请不要使用Maven shade插件或Maven assembly插件来构建可执行JAR
# 3 楼答案
发件人:https://www.xspdf.com/resolution/54971948.html 要从jar文件中提取文件,请使用x,如:C:\Java>;jar xf myFile。罐子要仅从jar文件中提取某些文件,请提供他们的安装存档程序。JAR文件就像ZIP文件一样工作。你可以使用任何存档程序来提取它们。2.找到要提取的JAR文件。使用Mac上的文件浏览器(按Win+E打开文件浏览器)或Finder至3。右键单击JAR文件。这样做。如何从jar中提取清单文件。提取JAR文件的内容