首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNLP - NoSuchMethodException

JNLP - NoSuchMethodException
EN

Stack Overflow用户
提问于 2015-10-15 11:37:14
回答 1查看 535关注 0票数 1

已经为这个问题挣扎了一段时间了。我有一个类,它有一个main方法,当从Eclipse运行时,这个类运行得非常好。无论如何,当我用JNLP文件(用maven- jar -plugin)来运行它时,我无法管理它来工作。

得到的错误如下:

代码语言:javascript
复制
java.lang.NoSuchMethodException: my.package.ishere.MainClass.main([Ljava.lang.String;)
    at java.lang.Class.getMethod(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我的主要方法在正确的包中,主方法是公共的,静态的,返回类型是无效的,并且有一个字符串数组作为参数。

为了生成jar文件,我在pom中包括以下内容:

代码语言:javascript
复制
<plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>             
            <source>1.6</source>
            <target>1.6</target>
            <encoding>UTF-8</encoding> 
                <archive>
                        <manifestFile>${manifestFile}</manifestFile>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <mainClass>my.package.ishere.Mainclass</mainClass>
                        </manifest>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                </configuration>
</plugin>

最后,在我的JNLP中,我正确地包含了代码库、所有必需的资源以及带有main="true“属性的jar文件。

此外,我甚至检查了jar上的清单文件,它清楚地显示了Main-Class: my.package.ishere.MainClass。有人能告诉我下一步该查什么吗?我要疯了!

(显然包名和类名不是真实的)。

提前谢谢!!

编辑:应请求编写MainClass代码。

代码语言:javascript
复制
package my.package.ishere;

//HELLA long import list not going to add.

public class MainClass extends Frame implements WindowListener {

static String xmlParams;

public static void main(String[] args) {
    try {
            xmlParams = new String(base64Decoder.decodeBuffer(args[0]));
            MainClass mc = new MainClass();
            mc.setLayout(new FlowLayout());
            System.out.println(mc.getParameter("id"));
            mc.init();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

这是一个旧的小程序,我把它转换成一个独立的应用程序。

更新:

成功地使它能够运行主jar;将类路径从maven添加到清单,并从命令提示符运行java -jar name-of-the-jar.jar param1和yay,它工作正常。无论如何,都没有从JNLP中直接运行它--仍然得到了"NoSuchMethodException“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-19 06:52:34

终于要解决了。最重要的是JNLP语法不正确,因此导致我使用了一个"NoSuchMethodException“,因为它没有读取整个参数并被夹在它们之间。

因此,作为一个解决方案,我要做的是完全重建我的JNLP并重新设置参数,所以它起了作用。感谢每一个花了一些时间读这些东西的人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33147530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档