![](/img/trans.png)
[英]Running a Java program from the command line that depends on a jar file?
[英]Running Java program/Jar from command line
我有一个 java 程序,我使用 maven 在 intellij 中编码。 我将它导出为 jar 并尝试从命令行运行,但它一直告诉我
Error: Could not find or load main class com.company.Main Caused by: java.lang.ClassNotFoundException: com.company.Main
然后我尝试从命令行运行程序本身,这也告诉我它找不到主 class
命令行:对于 jar:java -jar selenium_project.jar
运行程序:java com.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 的问题,我不知道。 我创建了一个简单的 hello world 程序并从命令行运行它并且它工作。 我像这样运行它 (c://etc)../src/> java com.company.HelloWorld。 但是当我再次尝试这个时,它找不到主要的 class。 谢谢
编辑:我改为使用 maven-assembly-plugin 并重建了 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
public class Main {
public static void main(String[] args) throws IOException, SQLException {
System.out.println("hello");
Executor ex = new Executor();
}
}
您的错误可能是您的 Main class 位于错误的 package 中。
此外,如果您有依赖项,请不要需要 Maven 阴影插件或 Maven 程序集插件来构建可执行的 jars。
我不知道问题是什么。 我尝试创建一个新程序,并复制了这些类并重新制作了 pom.xml 文件,我的新程序除了一个依赖项(chrome 选项)之外可以正常工作,但我认为这不是导致问题的原因。 所以现在我只需要弄清楚为什么 Chrome 选项不起作用,但来自新程序的实际 jar 确实运行。
From: https://www.xspdf.com/resolution/54971948.html To extract the files from a jar file, use x, as in: C:\Java> jar xf myFile.jar. 要从 jar 文件中仅提取某些文件,请提供其安装存档程序。 JAR 文件的工作方式与 ZIP 文件一样。 您可以使用任何存档程序来提取它们。 2.找到你要解压的JAR文件。 使用文件资源管理器(按 Win + E 打开文件资源管理器)或 Mac 上的 Finder 到 3. 右键单击 JAR 文件。 这样做。 如何从 jar 中提取清单文件。 提取 JAR 文件的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.