2015-07-08 6 views
-1

Iam разрабатывает платформу OSGI equinox, которая должна запускать среду OSGI и консоль equinox. Я добавил пять банок в папку, называемую плагином, как часть пути к классам/buildpath, но все еще невозможно выполнить.Невозможно запустить OSGI-фреймворк на затмении или после преобразования в банку

Ниже приведена команда, которая успешно выполняется на консоли linux и открывает приглашение osgi> на консоли Linux.

ява-Dosgi.bundles = org.eclipse.equinox.console_1.1.0.v20140131-1639.jar. @ Начать, org.apache.felix.gogo.command_0.10.0.v201209301215.jar @ начать, org.apache .felix.gogo.runtime_0.10.0.v201209301036.jar @ start, org.apache.felix.gogo.shell_0.10.0.v201212101605.jar @ start -jar org.eclipse.osgi_3.10.0.v20140606-1445.jar -console

Но выше не в моем коде, который, как показано ниже

государственной статической силы основных (String [] арг) {

командной строки = "Java-Dosgi.bundles = плагин/org.eclipse.equinox .console_1.1.0.v20140131-1639.jar @ начать, пьет джин/org.apache.felix.gogo.command_0.10.0.v201209301215.jar @ старт, плагин/org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar @ начать, плагин/org.apache.felix.gogo. [email protected] -jar plugin/org.eclipse.osgi_3.10.1.v20140909-1633.jar -console ";

 try { 


      // using the Runtime exec method: 
      Process p = Runtime.getRuntime().exec(command); 

      BufferedReader stdInput = new BufferedReader(new 
       InputStreamReader(p.getInputStream())); 

      BufferedReader stdError = new BufferedReader(new 
       InputStreamReader(p.getErrorStream())); 

      // read the output from the command 
      System.out.println("Here is the standard output of the command:\n"); 
      while ((s = stdInput.readLine()) != null) { 
       System.out.println(s); 
      } 

      // read any errors from the attempted command 
      System.out.println("Here is the standard error of the command (if any):\n"); 
      while ((s = stdError.readLine()) != null) { 
       System.out.println(s); 
      } 

      System.exit(0); 
     } 
     catch (IOException e) { 
      System.out.println("exception happened - here's what I know: "); 
      e.printStackTrace(); 
      System.exit(-1); 
     } 
    } 

ошибка, как показано ниже Здесь стандартный вывод команды:

Вот стандартная ошибка команды (если таковые имеются):

Ошибка: Не удается получить доступ jarfile плагин /org.eclipse.osgi_3.10.1.v20140909-1633.jar

ответ

0

две команды (тот, который успешно выполняющихся на Linux консоли и тот, который не в коде) немного отличаются Ent. В первом из них вы используете

-jar org.eclipse.osgi_3.10.0.v20140606-1445.jar 

а во втором

-jar plugin/org.eclipse.osgi_3.10.1.v20140909-1633.jar 

Поскольку сообщение об ошибке вы получаете говорит, что он не может получить доступ к plugin/org.eclipse.osgi_3.10.1.v20140909-1633.jar Я предполагаю, что эта баночка файл не существует, поэтому ваша команда не работает.

+0

Нет такой же проблемы даже после того, как я изменил банку !!! хотя обе команды в консоли и затмение одинаковы – chetan

+0

Я предполагаю, что, поскольку вы теперь изменили банку, сообщение об ошибке также изменилось соответствующим образом, не так ли? Можете ли вы проверить, что обе команды (консоль и затмение) одинаковы? В качестве альтернативы вы можете попробовать передать абсолютный путь для банки, чтобы быть уверенным, что Eclipse ищет его в нужном месте. – Christina

+0

если я даю абсолютный путь, и когда я запускаю его на eclipse и когда я конвертирую проект в jar и запускаю его как java -jar X.jar, я получаю следующий вывод без консоли osgi ** Вот стандартный вывод команды: ** – chetan

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

  • Нет связанных вопросов^_^