首页 > 解决方案 > 使用 mvn exec:java 运行时的 ClassNotFoundExeption

问题描述

希望运行一个基本的控制台应用程序maven

nicholas@mordor:~/NetBeansProjects/mavenchimp$ 
nicholas@mordor:~/NetBeansProjects/mavenchimp$ mvn clean exec:java
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------< tech.saundersconsulting:mavenchimp >-----------------
[INFO] Building mavenchimp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mavenchimp ---
[INFO] 
[INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ mavenchimp ---
[WARNING] 
java.lang.ClassNotFoundException: tech.mavenchimp.App
    at java.net.URLClassLoader.findClass (URLClassLoader.java:471)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:589)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:522)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:246)
    at java.lang.Thread.run (Thread.java:834)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.465 s
[INFO] Finished at: 2020-12-06T08:06:26-08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.0.0:java (default-cli) on project mavenchimp: An exception occured while executing the Java class. tech.mavenchimp.App -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

目录树

nicholas@mordor:~/NetBeansProjects/mavenchimp$ tree
.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── tech
    │           └── mavenchimp
    │               ├── App.java
    │               └── Chimp.java
    └── test
        └── java

7 directories, 3 files

绒球

nicholas@mordor:~/NetBeansProjects/mavenchimp$ cat pom.xml 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>tech.saundersconsulting</groupId>
    <artifactId>mavenchimp</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <exec.mainClass>tech.mavenchimp.App</exec.mainClass>
    </properties>
</project>

编码

nicholas@mordor:~/NetBeansProjects/mavenchimp$ cat src/main/java/tech/mavenchimp/App.java 
package tech.mavenchimp;

import java.util.logging.Logger;

public class App {

    private static final Logger log = Logger.getLogger(App.class.getName());

    private void runApp() {
        log.info("running..");
        Chimp chimp = new Chimp();
        chimp.connect();
    }

    public static void main(String[] args) {
        new App().runApp();
    }
}



nicholas@mordor:~/NetBeansProjects/mavenchimp$ 

pom.xml生成的地方Netbeans,我只是添加了以下行:

    <exec.mainClass>tech.mavenchimp.App</exec.mainClass>

为了能够exec使用maven.

maven-e开关一起运行给出:

Caused by: java.lang.ClassNotFoundException: tech.mavenchimp.App

该类是如何指定超出上述设置的pom.xml

标签: mavenpom.xmlclassnotfoundexceptionpackaging

解决方案


解决方案:

nicholas@mordor:~/NetBeansProjects/mavenchimp$ 
nicholas@mordor:~/NetBeansProjects/mavenchimp$ mvn clean compile exec:java 
[INFO] Scanning for projects...
[INFO] 
[INFO] -----------------< tech.saundersconsulting:mavenchimp >-----------------
[INFO] Building mavenchimp 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ mavenchimp ---
[INFO] Deleting /home/nicholas/NetBeansProjects/mavenchimp/target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenchimp ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/nicholas/NetBeansProjects/mavenchimp/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mavenchimp ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/nicholas/NetBeansProjects/mavenchimp/target/classes
[INFO] 
[INFO] --- exec-maven-plugin:3.0.0:java (default-cli) @ mavenchimp ---
Dec 06, 2020 8:17:54 AM tech.mavenchimp.App runApp
INFO: running..
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.739 s
[INFO] Finished at: 2020-12-06T08:17:54-08:00
[INFO] ------------------------------------------------------------------------
nicholas@mordor:~/NetBeansProjects/mavenchimp$ 

不会exec依赖compile


推荐阅读