2012-09-24 17 views
0

請在UNIX中建議一種從我的類中獲取返回字符串的方法。如何在UNIX中獲得Java類的返回值

這是我的示例類:

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 
+2

getDate正在做一個返回。它不是在做輸出。 '的System.out.println(GETDATE())'? –

+0

我已更新...請建議一種方式...! – buttowski

+0

我認爲你遇到的問題是Java只會將「退出值」返回給調用進程。正如MarcB指出的那樣,您按照現狀編程並不會產生任何輸出。 – MadProgrammer

回答

1

兩個建議:

把你的程序的輸出在標準輸出

System.out.println(getDate()); 

呼應結果在您的UNIX腳本

echo `$JAVA_BIN/java ${JVM_OPTION:-} -classpath $CP $MAIN_CLASS` 
1

您可以從程序返回INT代碼(通常爲0手段成功和其他任何東西都是錯誤的)並獲得它在$? shell變量 - 但不是字符串。在shell中使用println和your-program-here-以獲取輸出。

+0

該死的..那是反引號字符,不知道如何讓它正確顯示 – keltar

2

用途:SimpleDateFormat,有很多的日期格式

DateFormat Example

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yy"); 
    String dateAsString = simpleDateFormat.format(new Date()); 
    System.out.println(dateAsString); 
1

不能返回一個字符串,UNIX程序有一個整數返回值(您可以用System.exit(value)指定

您在Java中打印的所有內容均標準輸出,並且通常打印在終端上。

您可以在一個變量輸出存儲與

Data_from_getDate=$($NOHUP $JAVA_BIN/java ${JVM_OPTION:-} -classpath $CP $MAIN_CLASS) 
echo $Data_from_getDate