0

UbuntuLinuxで*.shスクリプトから開始したい実行可能jarファイルがあります。

現在、myapp.shファイルは次のようになっています(エラー:「何も起こりません」):

java -jar myapp.jar --start

私も試しました(エラー: "/ bin / sh:0:Javaを開けません"):

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

および(エラー: "/ bin / sh:0:java -jar 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

3 に答える 3

1

私たちがあなたを助けるのを助けるためにあなたが追加するかもしれないいくつかのこと

  • JAR(マニフェスト)の内容を見せてください
  • 実行可能な Jar (Maven?) をビルドする方法

実行可能な Jar からアプリを起動できるようにするには、次のものが必要です。

マニフェスト内にメインクラスを定義するマニフェスト内にクラスパスを定義し、jar 内にすべての依存関係を含めるか、依存関係のクラスパスへのパスを使用して Java 呼び出しに -cp を追加します

編集:コメントからわかりました。Javaコマンドが正常に機能することを理解しています...したがって、問題はshにあります

これをshの先頭に追加します

!/ビン/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=$?
于 2013-02-21T19:32:27.323 に答える
0

次のコードを使用して、GUI アプリケーションを開始しました。

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

これを削除すると、問題は解決しました。何か案は ?

于 2013-02-22T14:29:39.647 に答える
0

フルパスで Java を実行してみてください。

フル パスを確認するには、「which java」を実行します。

于 2013-02-21T19:31:50.353 に答える