2013-02-21 114 views
0

我有一個可執行的jar文件,我想從Ubuntu Linux上的* .sh腳本開始。如何從.sh腳本啓動可執行文件jar?

目前myapp.sh文件看起來像這樣(錯誤: 「什麼也沒發生」):

java -jar myapp.jar --start 

我也試過(錯誤:「/ bin/sh的:0:無法打開Java的」):

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

和(錯誤: 「/ bin/sh的:0:無法打開Java的罐子myapp.jar --start」):

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

myapp.sh文件具有rwx權限......當我調用./myapp.jar時什麼也沒有發生。

有人有解決這個問題嗎?

非常感謝提前。

編輯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 

編輯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

您是否在'MANIFEST.MF'中定義了您的'Main-Class'? – Reimeus 2013-02-21 19:28:23

+1

你還沒有說過你顯示什麼錯了... – 2013-02-21 19:28:30

+0

請確保輸入java -version – Aubin 2013-02-21 19:29:57

回答

0

我用下面的代碼來開始我的GUI應用:

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

刪除這個,解決了這個問題。有任何想法嗎 ?

0

嘗試使用完整路徑運行java。

運行「哪個java」來計算完整路徑。

1

有些東西,你可以添加,以幫助我們來幫助你

  • 顯示我們的jar(艙單)
  • 你如何建立你的可執行的JAR(Maven的?)

內容要能夠從您需要的可執行文件Jar中啓動應用程序:

定義清單內的Main-class 定義清單內的類路徑幷包含罐子裏面的所有依賴 或 -cp與路徑添加到Java調用你的依賴的類路徑

編輯:從我瞭解java命令正常工作的意見確定...所以你的概率與SH

添加到您的SH

!/ bin中/ KSH

的頂部,並通過鍵入./scriptname啓動它。KSH

(由SH取代ksh的,如果你是絕對需要在SH運行)

編輯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 2013-02-21 19:49:12

+0

#!/ bin/sh然後。這應該做;-) – Cygnusx1 2013-02-21 20:02:44

相關問題