有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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。公司你好世界但是,当我再次尝试这个类时,它找不到主类。 多谢各位

These are my classes

编辑: 我改为使用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();

}

}


共 (3) 个答案

  1. # 1 楼答案

    我不知道是什么问题。我试着创建一个新的程序,我复制了课程,重新制作了pom。xml文件和我的新程序除了一个依赖项(chrome选项)外还能工作,但我不认为这是导致问题的原因。所以现在我只需要弄清楚为什么Chrome选项不起作用,但新程序的实际jar确实运行

  2. # 2 楼答案

    您的错误可能是您的主类位于错误的包中

    此外,如果您有依赖项,请不要使用Maven shade插件或Maven assembly插件来构建可执行JAR

  3. # 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文件的内容