Java Maven:无法找到或加载主类
我的maven构建有以下配置,我已经多次检查类名和包名,以确保其准确性。但每次我跑步时:Java Maven:无法找到或加载主类,java,maven,Java,Maven,我的maven构建有以下配置,我已经多次检查类名和包名,以确保其准确性。但每次我跑步时: java-jar.jar我得到错误:无法找到或加载主类com.atlassian.JiraRestCaller。 我的pom文件摘录如下 <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configurat
java-jar.jar
我得到错误:无法找到或加载主类com.atlassian.JiraRestCaller
。
我的pom文件摘录如下
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.atlassian.JiraRestCaller</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
maven汇编插件
com.atlassian.JiraRestCaller
带有依赖项的jar
组装
包裹
单一的
我还尝试添加
src/main/java/com/atlassian/
,但仍然得到相同的错误解决方案1:
我花了相当多的时间试图解决这个问题。我以为我的类路径设置不正确,但问题是我键入了:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
而不是:
java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的含义是包含完整的路径名,而不是完整的包名
解决方案2:
如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>class name us.com.test.abc.MyMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
maven jar插件
类名us.com.test.abc.MyMainClass
解决方案1:
我花了相当多的时间试图解决这个问题。我以为我的类路径设置不正确,但问题是我键入了:
java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool
而不是:
java -cp C:/java/MyClasses utilities/myapp/Cool
我认为完全限定的含义是包含完整的路径名,而不是完整的包名
解决方案2:
如果使用Maven构建JAR文件,请确保在pom.xml文件中指定主类:
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>class name us.com.test.abc.MyMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
maven jar插件
类名us.com.test.abc.MyMainClass
如果您的案例与我的案例特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题
我是这样编译的:
javac HelloWorld.java
我也试着用相同的扩展名运行:
java Helloworld.java
当我删除.java并像java HelloWorld那样重写命令时,程序运行得非常好。:) 如果您的案例与我的案例特别相似,这可能会对您有所帮助:作为初学者,我在尝试运行Java程序时也遇到了这个问题 我是这样编译的:
javac HelloWorld.java
我也试着用相同的扩展名运行:
java Helloworld.java
当我删除.java并像java HelloWorld那样重写命令时,程序运行得非常好。:) 所以我们今天有这个
[myproject]-[master]$mvn
[MVNVM]使用maven:3.5.2
错误:无法找到或加载主类html
我们和代理有问题
检查您的MAVEN_选项,并确保如果您要向MAVEN发送代理,它存在并且您可以使用它
MAVEN_OPTS=-Dhttp.proxyHost=www-proxy.myproxyprovider.com-Dhttp.proxyPort=80-Dhttps.proxyHost=www-proxy.myproxyprovider.com-Dhttps.proxyPort=80
或者如果它已经设置好了,而你不应该有一个,那么就把它扔掉
[myproject]-[master]$mvn-版本
[MVNVM]使用maven:3.5.2
Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d;2017-10-18T08:58:13+01:00)
Maven home:/Users/bamcgill/.mvnvm/apache-Maven-3.5.2所以我们今天就有了这个
[myproject]-[master]$mvn
[MVNVM]使用maven:3.5.2
错误:无法找到或加载主类html
我们和代理有问题
检查您的MAVEN_选项,并确保如果您要向MAVEN发送代理,它存在并且您可以使用它
MAVEN_OPTS=-Dhttp.proxyHost=www-proxy.myproxyprovider.com-Dhttp.proxyPort=80-Dhttps.proxyHost=www-proxy.myproxyprovider.com-Dhttps.proxyPort=80
或者如果它已经设置好了,而你不应该有一个,那么就把它扔掉
[myproject]-[master]$mvn-版本
[MVNVM]使用maven:3.5.2
Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d;2017-10-18T08:58:13+01:00)
Maven home:/Users/bamcgill/.mvnvm/apache-Maven-3.5.2我遇到了相同的错误。我通过从Maven 3.3.3升级到Maven 3.6.3来修复它。我不确定该修复是否与此问题相关,因为我没有调试我的问题。我遇到了相同的错误。我通过从Maven 3.3.3升级到Maven 3.6.3来修复它。我不确定该修复是否与此问题相关,因为我没有调试我的问题。谢谢您的提示。事实上,我确实提供了我的主课名。它在pom文件中(作为我问题的一部分)。我正在使用maven编译可执行文件,谢谢你的提示。事实上,我确实提供了我的主课名。它在pom文件中(作为我问题的一部分)。我正在使用maven从
jar tvf your.jar
Hi@ThorbjørnRavnAndersen编译可执行的jarShow输出。我发现了这个问题——这对我来说很奇怪,但对你来说可能有意义——代码是用Java1.8编写的——maven运行的系统是1.7。一旦我将maven升级到使用1.8,一切都很好。错误消息并不表明这是问题所在。然后你错过了一些其他的东西或者做了一些你没有提到的事情。显示jar tvf your.jar的输出
Hi@ThorbjørnRavnAndersen我发现了这个问题-这对我来说很奇怪,但对你来说可能有意义-代码是用Java1.8编写的-maven运行的系统是1.7。一旦我将maven升级到使用1.8,一切都是w