【问题标题】:MAVEN, Netbeans Platform : Could not find the main classMAVEN,Netbeans 平台:找不到主类
【发布时间】:2014-05-21 08:44:21
【问题描述】:

我按照本教程进行操作:https://platform.netbeans.org/tutorials/nbm-maven-crud.html,但我遇到了问题。

我尝试创建示例“maven crud 示例应用程序”和我的“maven netbeans 应用程序”,但总是遇到相同的错误。运行项目时,出现以下异常:

--- nbm-maven-plugin:3.3:run-platform (default-cli) @ application ---
Executing: /bin/sh -c "/home/pea-rep/NetBeansProjects/JDK6/test maven//MavenCRUDSample/application/target/foo/bin/foo" --userdir '"/home/pea-rep/NetBeansProjects/JDK6/test maven//MavenCRUDSample/application/target/userdir"' -J-Dnetbeans.logger.console=true -J-ea --branding foo --jdkhome /usr/local/java/jdk1.6.0_45
Exception in thread "main" java.lang.NoClassDefFoundError: maven//MavenCRUDSample/application/target/userdir/var/log/heapdump/hprof
Caused by: java.lang.ClassNotFoundException: maven.MavenCRUDSample.application.target.userdir.var.log.heapdump.hprof
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

找不到主类:maven/MavenCRUDSample/application/target/userdir/var/log/heapdump.hprof。程序将退出。

在本教程中,我没有看到对主类进行任何修改

我在没有 MAVEN 的情况下完成了相同的教程,它可以工作:https://platform.netbeans.org/tutorials/nbm-crud.html

由于此错误,我无法运行我的应用程序并拥有我的 netbeans 平台窗口。有人知道我为什么会有这个吗?

我在Netbeans 6.9.1 with jdk1.6.0_45 and maven-3.2.1 OS : Ubuntu 64bit

编辑: 我有 4 个 pom.xml :

父级:crud-sample-application – netbeans 平台应用程序

crud-sample-application – 基于 Netbeans 平台的应用程序

crud-sample-application – 平台应用品牌资源

crud-sample-application – 示例 Netbeans 模块

抱歉,我无法拆分它。

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.netbeans</groupId>
    <artifactId>crud-sample-application</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>crud-sample-application - NetBeans Platform Application</name>
    <repositories>
    <!-- this is a remote repository hosting the netbeans api artifacts.
     the versions of the artifacts are netbeans IDE release based, eg. RELEASE65
     You might want to use your own repository. To create one, use the nbm:populate-repository goal.
      -->
    <repository>
        <id>netbeans</id>
        <name>repository hosting netbeans.org api artifacts</name>
        <url>http://bits.netbeans.org/maven2</url>
    </repository>
    </repositories>
    <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.netbeans.api</groupId>
        <artifactId>org-openide-actions</artifactId>
        <version>RELEASE68</version>
    </dependency>
    </dependencies>
    <build>
    <plugins>
    </plugins>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>nbm-maven-plugin</artifactId>
                <version>3.1</version>
                <extensions>true</extensions>
                <configuration>
                    <descriptor>src/main/nbm/module.xml</descriptor>
                    <brandingToken>${brandingToken}</brandingToken>
                    <cluster>foobar</cluster>
                </configuration>
            </plugin>

            <!-- netbeans modules in 5.5+ are 1.5 compatible -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    </build>
    <modules>
    <module>crudsample</module>
    <module>branding</module>
    <module>application</module>
    </modules>
    <properties>
    <netbeans.version>RELEASE68</netbeans.version>
    <brandingToken>foo</brandingToken>
    </properties>
</project>
    <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/maven-v4_0_0.xsd">
    <parent>
    <groupId>org.netbeans</groupId>
    <artifactId>crud-sample-application</artifactId>
    <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>application</artifactId>
    <packaging>nbm-application</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>crud-sample-application - NetBeans Platform based application</name>
    <dependencies>
    <dependency>
        <groupId>org.netbeans.cluster</groupId>
        <artifactId>platform11</artifactId>
        <version>${netbeans.version}</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>org.netbeans</groupId>
        <artifactId>crudsample</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>nbm</type>
    </dependency>
    <dependency>
        <groupId>org.netbeans</groupId>
        <artifactId>branding</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>nbm</type>
    </dependency>
    </dependencies>
    <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>nbm-maven-plugin</artifactId>
            <version>3.3</version>
        </plugin>
    </plugins>
    </build>

    <profiles>
    <profile>
        <id>deployment</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>nbm-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>updatesite</id>
                            <phase>package</phase>
                            <goals>
                                <goal>autoupdate</goal>
                            </goals>
                            <configuration>
                        <!--distBase>central::default::http://repo1.maven.org/maven2</distBase-->
                            </configuration>
                        </execution>
                        <execution>
                            <id>webstart</id>
                            <phase>package</phase>
                            <goals>
                                <goal>webstart-app</goal>
                            </goals>
                            <configuration>
                                <codebase>${project.build.directory}/webstart/${brandingToken}</codebase>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    </profiles>
</project>
    <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/maven-v4_0_0.xsd">
  <parent>
      <groupId>org.netbeans</groupId>
      <artifactId>crud-sample-application</artifactId>
      <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>branding</artifactId>
  <packaging>nbm</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>crud-sample-application - Platform application branding resources</name>
  <dependencies>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-util</artifactId>
      <version>${netbeans.version}</version>
    </dependency>
  </dependencies>
  <build>
      <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>nbm-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>branding</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>branding</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <!-- to have the jar plugin pickup the nbm generated manifest -->
                <useDefaultManifestFile>true</useDefaultManifestFile>
            </configuration>
        </plugin>
      </plugins>
  </build>
</project>
<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/maven-v4_0_0.xsd">
  <parent>
      <groupId>org.netbeans</groupId>
      <artifactId>crud-sample-application</artifactId>
      <version>1.0-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <packaging>nbm</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>crud-sample-application - sample NetBeans Module</name>
  <dependencies>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-util</artifactId>
      <version>RELEASE68</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>javax.persistence</artifactId>
      <version>2.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>eclipselink</artifactId>
      <version>2.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-windows</artifactId>
      <version>RELEASE68</version>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-awt</artifactId>
      <version>RELEASE68</version>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-explorer</artifactId>
      <version>RELEASE68</version>
      <type>jar</type>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-nodes</artifactId>
      <version>RELEASE68</version>
      <type>jar</type>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-dialogs</artifactId>
      <version>RELEASE68</version>
    </dependency>
    <dependency>
      <groupId>org.netbeans.api</groupId>
      <artifactId>org-openide-execution</artifactId>
      <version>RELEASE68</version>
    </dependency>
    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derbyclient</artifactId>
      <version>10.5.3.0_1</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <build>
      <plugins>
      <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>nbm-maven-plugin</artifactId>
      </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <!-- to have the jar plugin pickup the nbm generated manifest -->
                <useDefaultManifestFile>true</useDefaultManifestFile>
            </configuration>
        </plugin>
      </plugins>
  </build>
    <groupId>org.netbeans</groupId>
    <artifactId>crudsample</artifactId>
  <repositories>
    <repository>
      <url>http://ftp.ing.umu.se/mirror/eclipse/rt/eclipselink/maven.repo</url>
      <id>eclipselink</id>
      <layout>default</layout>
      <name>Repository for library Library[eclipselink]</name>
    </repository>
  </repositories>
</project>

我使用 netbeans 运行我的应用程序 ==> 运行项目:

install nbm:run-platform

通过 main() 运行项目:

process-classes org.codehaus.mojo:exec-maven-plugin:1.1.1:exec 

avec les 参数:

exec.classpathScope=${classPathScope}
exec.args=-classpath %classpath ${packageClassName}
exec.executable=java "

谢谢, M.

【问题讨论】:

  • 你能在这个问题中添加你的代码吗?我们如何在没有代码的情况下提出答案?
  • 代码是由 Netbeans 自动生成的,我没有改变任何东西。我认为代码不是问题。
  • 如果我开始一个 netbeans 平台项目,没有任何代码(我的教程中创建 NetBeans 平台应用程序的部分);我也有同样的问题。
  • 请告诉我们你的 pom.xml 和你如何执行 mvn 的命令行
  • 更改为 eclipse - 它将解决您在使用 NetBeans 时遇到的 50% 的问题 :)

标签: java maven netbeans netbeans-platform


【解决方案1】:

问题解决,当netbeans执行时:

 /bin/sh -c "/home/pea-rep/NetBeansProjects/JDK6/test maven//MavenCRUDSample/application/target/foo/bin/foo" --userdir '"/home/pea-rep/NetBeansProjects/JDK6/test maven//MavenCRUDSample/application/target/userdir"' -J-Dnetbeans.logger.console=true -J-ea --branding foo --jdkhome /usr/local/java/jdk1.6.0_45

它不喜欢 maven 和 test 之间的空间。我重命名了我的文件夹,它可以工作。

【讨论】:

    猜你喜欢
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    相关资源
    最近更新 更多