2015-10-15 2 views
1

Уже некоторое время борется с этой проблемой. У меня есть класс с основным методом, который отлично работает при запуске Eclipse. Независимо от того, что, когда я jar его (с maven-jar-plugin), чтобы запустить его с моим файлом JNLP, я не могу заставить его работать.JNLP - NoSuchMethodException

И.М. ошибки получение заключается в следующем:

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) 

Мой главный метод в правильном пакете, а основной метод является открытым, статическим, возвратившись типом является ничтожным и имеет массив строк в качестве параметра ,

Для того, чтобы сгенерировать файл банка, в П I включает в себя следующее:

<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".

Кроме того, я даже проверил файл манифеста на банке, и он четко говорит Main-Class: my.package.ishere.MainClass. Может ли кто-нибудь дать мне подсказку о том, что проверить дальше? Я схожу с ума!

(Очевидно, что имя пакета и имя класса не являются реальными).

Спасибо заранее!

РЕДАКТИРОВАТЬ: Код основного каталога по запросу.

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(); 
     } 
    } 
} 

Это старый апплет, который я превратил в автономное приложение.

UPDATE:

Успели сделать его работу запуска основной банки; добавлен путь к классам из maven в манифест и из командной строки i ran java -jar name-of-the-jar.jar param1 и yay, это сработало. Независимо от того, не удалось ли запустить его прямо из JNLP, все еще получая «NoSuchMethodException».

ответ

0

Наконец-то решил его решить. Большим преимуществом был синтаксис JNLP, который был неправильным, поэтому вызвал меня к «NoSuchMethodException», потому что он не смог прочитать все параметры и застрял между ними.

Итак, в качестве решения я должен был полностью восстановить JNLP и повторно установить параметры, и так оно и сработало. Спасибо всем, кто некоторое время читал все это!

Смежные вопросы