从命令行运行java程序/jar

yh2wf1be  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(356)

我有一个java程序,我用maven在intellij中编写。我将它导出为jar并尝试从命令行运行,但它一直告诉我
错误:无法找到或加载主类com.company.main,原因是:java.lang.classnotfoundexception:com.company.main
然后我尝试从命令行运行程序本身,这也告诉我它找不到主类
命令行:对于jar:java-jar\u project.jar
运行程序:javacom.company.main
对于jar,我从它所在的文件夹运行它。对于这个程序,我从程序的根目录运行它。
pom.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的问题,我不知道。我创建了一个简单的helloworld程序,并从命令行运行了它。我这样运行它(c://etc)…/src/>javacom.company.helloworld。但是当我再次尝试这个时,它找不到主类。谢谢您
这些是我的课
编辑:我改为使用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>

类结构来显示主类所在的位置
主类中的代码

public class Main {

public static void main(String[] args) throws IOException, SQLException {
    System.out.println("hello");

    Executor ex = new Executor();

}

}

waxmsbnn

waxmsbnn1#

发件人:https://www.xspdf.com/resolution/54971948.html 要从jar文件中提取文件,请使用x,如:c:\java>jarxf myfile.jar。要从jar文件中只提取某些文件,请提供它们的配置并安装一个归档程序。jar文件就像zip文件一样工作。您可以使用任何存档程序来提取它们。2.找到要提取的jar文件。使用文件资源管理器(按win+e打开文件资源管理器)或mac上的finder 3。右键单击jar文件。这样做。如何从jar中提取清单文件。提取jar文件的内容。

cl25kdpy

cl25kdpy2#

您的错误可能是您的主类位于错误的包中。
此外,如果您有依赖项,请不要告诉您需要maven shade插件或maven assembly插件来构建可执行jar。

wqsoz72f

wqsoz72f3#

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

相关问题