Class 未在 java Web 启动中找到

Class Not found in java web start

我正在使用 Java web start 启动 jar 文件。

我遵循了以下教程

http://www.mkyong.com/java/java-web-start-jnlp-tutorial-unofficial-guide/

http://examples.javacodegeeks.com/java-basics/web-start/java-web-start-getting-started/

我从我的 eclipse IDE 创建了 java 项目。

我的 eclipse ide 和文件夹中的结构如下,

我把jar和jnlp文件粘贴到tomcat/webapps/ROOT文件夹里,ROOT文件夹内容如下,

    D:\tomcat7\webapps\ROOT>dir
     Volume in drive D is RECOVERY
     Volume Serial Number is DC2F-E701

     Directory of D:\tomcat7\webapps\ROOT

    18-11-2015  19:23    <DIR>          .
    18-11-2015  19:23    <DIR>          ..
    17-11-2015  16:17               301 .classpath
    17-11-2015  16:17               387 .project
    17-11-2015  16:17    <DIR>          .settings
    23-09-2015  15:19             5,866 asf-logo-wide.gif
    23-09-2015  15:19            17,811 asf-logo.png
    23-09-2015  15:19               713 bg-button.png
    23-09-2015  15:19             1,918 bg-middle.png
    23-09-2015  15:19             1,392 bg-nav-item.png
    23-09-2015  15:19             1,401 bg-nav.png
    23-09-2015  15:19             3,103 bg-upper.png
    23-09-2015  15:19             3,469 build.xml
    17-11-2015  16:48    <DIR>          com
    23-09-2015  15:19            21,630 favicon.ico
    23-09-2015  15:19            12,408 index.jsp
    17-11-2015  16:21             2,957 JNLPExample.jar
    17-11-2015  16:22               612 JNLPExample.jnlp
    17-11-2015  16:20    <DIR>          META-INF
    23-09-2015  15:19             9,195 RELEASE-NOTES.txt
    23-09-2015  15:19             2,376 tomcat-power.gif
    23-09-2015  15:19             5,926 tomcat.css
    23-09-2015  15:19             2,066 tomcat.gif
    23-09-2015  15:19             5,103 tomcat.png
    23-09-2015  15:19            67,787 tomcat.svg
    23-09-2015  15:20    <DIR>          WEB-INF
                  20 File(s)        166,421 bytes
                   6 Dir(s)   2,712,481,792 bytes free

    D:\tomcat7\webapps\ROOT>

jar -tvf 的输出JNLPExample.jar

    D:\tomcat7\webapps\ROOT>jar -tvf JNLPExample.jar
       338 Tue Nov 17 16:21:16 IST 2015 META-INF/MANIFEST.MF
       500 Tue Nov 17 16:21:16 IST 2015 META-INF/STATHIS.SF
       977 Tue Nov 17 16:21:16 IST 2015 META-INF/STATHIS.DSA
         0 Tue Nov 17 16:20:06 IST 2015 META-INF/
       301 Tue Nov 17 16:17:16 IST 2015 .classpath
       387 Tue Nov 17 16:17:16 IST 2015 .project
         0 Tue Nov 17 16:17:16 IST 2015 .settings/
       598 Tue Nov 17 16:17:18 IST 2015 .settings/org.eclipse.jdt.core.prefs

我的 .classpath 文件(提取的 JNLPExmaple.jar)

    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
        <classpathentry kind="output" path="bin"/>
    </classpath>

我的 .project 文件(提取的 JNLPExmaple.jar)

    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
        <name>JNLPExample</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
            <buildCommand>
                <name>org.eclipse.jdt.core.javabuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildSpec>
        <natures>
            <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>
    </projectDescription>

我在安装应用程序时遇到以下错误。它说

"java.lang.ClassNotFoundException: main.javacodegeeks.JNLPExample" 

但它在那个包中可用。

根据我使用的jnlp文件,

    <?xml version="1.0" encoding="utf-8"?>
    <jnlp spec="1.0+" codebase="http://localhost:8080/" href="JNLPExample.jnlp">
         <information>
              <title>JNLP Example</title>
              <vendor>Java Code Geeks</vendor>
              <homepage href="http://localhost:8080/" />
              <description>JNLP Testing</description>
         </information>
         <security>
              <all-permissions/>
         </security>
         <resources>
              <j2se version="1.6+" />
              <jar href="JNLPExample.jar" />
         </resources>
         <application-desc main-class="main.javacodegeeks.JNLPExample" />
    </jnlp>

在你的 jar 文件中没有 main/javacodegeeks 包。里面应该有一个 class 文件,folder.You 可以添加它们并再次压缩一个 jar 然后试试,也你可以将它公开为 exe jar,这样它就会按原样压缩。

希望对您有所帮助..