MAVEN,Netbeans平台:无法找到主类

时间:2014-05-21 08:44:21

标签: java maven netbeans netbeans-platform

我遵循本教程: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运行我的应用程序==&gt;运行项目:

install nbm:run-platform

通过main()运行项目:

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

avec les arguments:

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

谢谢, 微米。

1 个答案:

答案 0 :(得分:0)

问题解决,当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之间的空间。我重命名我的文件夹,它的工作原理。