0

UNIXでクラスから戻り文字列を取得する方法を提案してください。

これは私のサンプルクラスです:

package com.mytest.package.main;

    public class DateExtractor {

        public static String getDate() {
          return "20120924";
        }

        public static void main (String[] args) {
           system.out.println(getDate());
        }

    }

そして私のUNIXスクリプト:

JAVA_BIN="/usr/bin"
log_dir="/usr/tmp/log"
JVM_OPTION="-Xms512m -Xmx2g -DprojectName=mytestproj -Dlog.dir=$log_dir"
CP="/usr/tmp"
MAIN_CLASS=com.mytest.package.main.DateExtractor

$NOHUP $JAVA_BIN/java ${JVM_OPTION:-} -classpath $CP $MAIN_CLASS 

期待される結果:

echo $Data_from_getDate
20120924
4

4 に答える 4

2

使用:SimpleDateFormat、多くの日付形式があります

DateFormatの例

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yy");
    String dateAsString = simpleDateFormat.format(new Date());
    System.out.println(dateAsString);
于 2012-09-24T05:19:10.170 に答える
1

文字列を返すことはできません。UNIXプログラムには整数の戻り値があります(これは。で指定できます)System.exit(value)

Javaで印刷するものはすべて標準出力になり、通常は端末に印刷されます。

次の変数に出力を格納できます。

Data_from_getDate=$( $NOHUP $JAVA_BIN/java ${JVM_OPTION:-} -classpath $CP $MAIN_CLASS )
echo $Data_from_getDate
于 2012-09-24T05:20:51.627 に答える
1

プログラムからintコードを返し(通常、0は成功を意味し、その他はエラーを意味します)、$で取得できますか?シェル変数-文字列ではありません。printlnとinshellを使用your-program-here-して出力を取得します。

于 2012-09-24T05:17:00.137 に答える
1

2つの推奨事項:

プログラムの出力を標準出力に置きます

System.out.println(getDate());

結果をunixスクリプトにエコーするには

echo `$JAVA_BIN/java ${JVM_OPTION:-} -classpath $CP $MAIN_CLASS`
于 2012-09-24T05:21:51.647 に答える