2013-02-21 4 views
0

У меня есть исполняемый файл jar, который я хотел бы начать с скрипта * .sh на Ubuntu Linux.Как запустить исполняемую банку из сценария .sh?

В настоящее время myapp.sh файл выглядит следующим образом (ошибка: "ничего не происходит"):

java -jar myapp.jar --start 

Я также попытался (об ошибке: «/ bin/ш: 0: Не удается открыть Java»):

/bin/sh java -jar myapp.jar --start 

и (ошибка: "/ бен/ш: 0: не удается открыть ява -jar MyApp.jar --start"):

/bin/sh "java -jar myapp.jar --start" 

Файл myapp.sh имеет права на rwx ... когда я вызываю ./myapp.jar, ничего не происходит.

У кого-то есть решение этой проблемы?

большое спасибо заранее.

EDIT 1: Вот мой MANIFEST.MF:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.3 
Created-By: 1.6.0_38-b05 (Sun Microsystems Inc.) 
Class-Path: lib/gf-client.jar lib/security.jar lib/eclipselink-2.3.2.j 
ar lib/javax.persistence-2.0.3.jar lib/org.eclipse.persistence.jpa.jp 
ql_1.0.1.jar lib/org.eclipse.persistence.jpa.modelgen.processor-2.3.2 
.jar lib/javaee-api-6.0.jar lib/LawSuiteFXW.jar lib/AbsoluteLayout.ja 
r lib/beansbinding-1.2.1.jar lib/antlr-2.7.7.jar lib/antlr-runtime-3. 
3.jar lib/bootstrapconnector.jar lib/commons-codec-1.5.jar lib/common 
s-collections-3.2.1.jar lib/commons-compress-1.3.jar lib/commons-dige 
ster-1.7.jar lib/commons-email-1.2.jar lib/commons-io-2.4.jar lib/com 
mons-lang-2.4.jar lib/commons-lang3-3.1.jar lib/commons-logging-1.1.1 
.jar lib/commons-vfs2-2.0.jar lib/glazedlists_java15-1.9-20111127.203 
634-11.jar lib/icepdf-core.jar lib/icepdf-viewer.jar lib/jasypt-1.9.0 
.jar lib/jcommon-1.0.17.jar lib/jfreechart-1.0.14.jar lib/jhall.jar l 
ib/jms.jar lib/joda-time-2.1.jar lib/junit-3.8.1.jar lib/log4j-1.2.15 
.jar lib/migcalendarbean.jar lib/PDFRenderer-0.9.1.jar lib/xmlsec-2.0 
.jar lib/avalon-framework-api-4.3.1.jar lib/avalon-framework-impl-4.3 
.1.jar lib/docx4j-2.8.1.jar lib/fop-1.0.jar lib/itext-2.1.7.jar lib/j 
axb-svg11-1.0.2.jar lib/jaxb-xmldsig-core-1.0.0.jar lib/jaxb-xslfo-1. 
0.1.jar lib/poi-3.8.jar lib/poi-scratchpad-3.8.jar lib/serializer-2.7 
.1.jar lib/stringtemplate-3.2.1.jar lib/wmf2svg-0.9.0.jar lib/xalan-2 
.7.1.jar lib/xhtmlrenderer-1.0.0.jar lib/xml-apis-1.3.04.jar lib/xmlg 
raphics-commons-1.4.jar lib/poi-ooxml-3.8-20120326.jar lib/poi-ooxml- 
schemas-3.8-20120326.jar lib/batik-1.1.1.jar lib/ftp4j-1.7.2.jar lib/ 
AppleJavaExtensions-1.4.jar lib/swingx-all-1.6.4.jar lib/swingx-beani 
nfo-1.6.4.jar lib/pdfbox-1.7.1.jar lib/fontbox-1.7.1.jar lib/jempbox- 
1.7.1.jar lib/jai_codec.jar lib/jai_core.jar lib/java-mail-1.4.6.jar 
lib/LawSuiteSE.jar 
X-COMMENT: Main-Class will be added automatically by build 
Main-Class: ch.acme.core.Main 

EDIT 2:

Я использовал следующий код, чтобы начать свой GUI приложение:

public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
      Main m = new Main(); 
      m.setVisible(true); 
     } 
    }); 
} 

Удаление этого на следующее , решил проблему. Есть идеи ???

public static void main(String[] args) { 
    Main m = new Main(); 
    m.setVisible(true); 
} 
+4

Вы задали свой 'Main-Class' внутри' MANIFEST.MF'? – Reimeus

+1

Вы не сказали, что пошло не так, как вы показали ... –

+0

Пожалуйста, введите java -version – Aubin

ответ

0

Я использовал следующий код, чтобы начать свой GUI применение:

EventQueue.invokeLater(new Runnable() { 
    @Override 
    public void run() { 
     Main m = new Main(); 
     m.setVisible(true); 
    } 
}); 

Снятие этого, решена проблема. Есть идеи ?

0

Попробуйте запустить java с полным путем.

Запустите «java» для выяснения полного пути.

1

Некоторых вещей вы могли бы добавить, чтобы помочь нам помочь вам

  • Покажите нам содержание JAR (Manifest)
  • Как построить свой исполняемый файл Jar (Maven?)

К вам необходимо:

Определить главный класс внутри манифеста Определить путь класса внутри манифеста и inculde все зависимости внутри кувшина или добавить -cp на вызов Java с путем к классам ваших зависимостей

EDIT: хорошо от комментариев я понимаю команда Java работает отлично ... так что ваши ВЕРЫ это с ш

добавить это к верхней части ш

!/bin/КШ

и запустить его, набрав ./scriptname.КШ

(замените Ksh на ш, если Absolutly нужно запустить в ш)

Edit 2: Образец из Ksh я использовал:

#!/bin/ksh 

JAVA_HOME16=/usr/java16/bin 

${JAVA_HOME16}/java -Drunningenv=dev -Dbatch.jdbc.user=${DB2_CODE_USAGER}  -Dbatch.jdbc.password=${DB2_MOT_PASSE} -jar ${BASEDIR}/BD_PVFI/bin/spring-batch- conciliation-1.0.0-SNAPSHOT.jar input.desj.file=${INPUTFILE_DESJ} 
rc=$? 
+0

спасибо за ваш ответ. #!/bin/ksh или!/bin/ksh? Мне нужно sh, по умолчанию мой Ubuntu не установлен ksh. – salocinx

+0

#!/Bin/sh затем. это должно делать ;-) – Cygnusx1

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