2012-09-24 22 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