Как передать пустую строку из Perl Script в файл Java в качестве аргумента командной строки - PullRequest
0 голосов
/ 16 января 2019

У меня есть сценарий order.pl, он имеет 3 переменные

$dbcount=$ARGV[0];
if($dbcount == ""){$dbcount = 196001;}

$Num_Batches =$ARGV[1];
if($Num_Batches == ""){$Num_Batches=1;}
print "batches:$Num_Batches\t";

$TimeStamp = $ARGV[2];
if($TimeStamp == ""){$TimeStamp = "";}

$DBFetch = 'java GetWOConfHold_Auto '. $dbcount." ".$TimeStamp ;
print "DBFetch:$DBFetch\n";
print "timestamp :$TimeStamp";
system($DBFetch);

Здесь java-файл - GetWOConfHold_Auto.java, и я хочу отправить как dbcount, так и пустую строку в java-файл GetWoConfHol_Auto в качестве аргументов командной строки, но

во время работы показывает

perl order.pl 196000 1
batches:1       timestamp:      dbcount:196000  DBFetch:java GetWOConfHold_Auto 196000 

timestamp :args[0] 19600 

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at GetWOConfHold_Auto.main(GetWOConfHold_Auto.java:18)
no of picking updates data : 0
No data.exiting

Я пытался напечатать отметку времени, но она показывает

timestamp :args[0] 19600  not the empty String

и в java он останавливается на сигнатуре основного метода

Я хочу отправить пустую строку в файл Java в качестве аргумента командной строки. и я проверяю, является ли отметка времени нулевой, просто иди и выбери значение из файла свойств

1 Ответ

0 голосов
/ 16 января 2019

В строковом варианте system необходимо заключить в кавычки пустую строку. Вы пробовали список версии system?

my $DBFetch = system 'java', 'GetWOConfHold_Auto' ,$dbcount, $TimeStamp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...