我的maven构建有以下配置,我多次检查了类名和包名,以确保它的准确性。但每次我跑:
java -jar <snapshot-with-dependencies>.jar
我得Error: Could not find or load main class 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>
我还尝试添加<sourceDirectory>src/main/java/com/atlassian/</sourceDirectory>
,但仍然遇到相同的错误
答案 0 :(得分:1)
<强>解决方法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>
答案 1 :(得分:0)
如果您的情况与我的情况特别相似,这可能对您有所帮助:作为初学者,当我尝试运行Java程序时,我也遇到了这个问题。
我这样编译:
javac HelloWorld.java
我也尝试使用相同的扩展程序运行:
java Helloworld.java
当我删除.java并重写了像Hello HelloWorld这样的命令时,程序运行完美。 :)
答案 2 :(得分:0)
所以我们今天有这个
[myproject]-[master] $ mvn [MVNVM]使用maven:3.5.2 错误:找不到或加载主类html
我们在代理方面遇到了问题。
检查您的MAVEN_OPTS,并确保如果您要向maven发送代理,则该代理存在并且可以使用。
MAVEN_OPTS = -Dhttp.proxyHost = www-proxy.myproxyprovider.com -Dhttp.proxyPort = 80 -Dhttps.proxyHost = www-proxy.myproxyprovider.com -Dhttps.proxyPort = 80
或者如果它已经设置并且您不应该拥有它,那么就摆脱它。
[myproject]-[master] $ mvn -version [MVNVM]使用maven:3.5.2 Apache Maven 3.5.2(138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T08:58:13 + 01:00) Maven主页:/Users/bamcgill/.mvnvm/apache-maven-3.5.2
答案 3 :(得分:0)
我遇到了同样的错误。我通过从Maven 3.3.3升级到Maven 3.6.3修复了它。我不确定该修复程序是否与此问题有关,因为我没有调试问题。