我試圖編寫一個Perl腳本來啓動我的Java程序。使用Cygwin中啓動的perl腳本運行帶有2個參數的Java文件
我試圖使用Cygwin在Windows 10
來執行它的Java程序的主要方法需要兩個參數。
主要方法是這樣的
public static void main(String[] args) throws InterruptedException, IOException
{
String ipAddress = args[0];
int port = Integer.parseInt(args[1]);
ACPCGame acpc1 = new ACPCGame();
acpc1.play(ipAddress, port);
}
然後我有我的Perl腳本稱爲canarybot.pl
。
my @args = ("java", "-jar", "canarybot.jar", "localhost", "55001");
system(@args);
localhost
和55001
應該是兩個參數由Java main方法的預期。
我然後打開包含Perl腳本和jar
文件的目錄Cygwin的bash提示符並嘗試這樣
./canarybot.pl
這將導致錯誤
./canarybot執行它。 pl:line 1:syntax error near unexpected token'('
./canarybot.pl:line 1:my @args =(「java」,「-jar」,「canarybot.jar」,「localhost',」55001 「);
我不是很熟悉cygwin(更多),但是:你的腳本中是否有shebang行('#!/ usr/bin/perl')?並且:當你發出'perl。/ canarybot.pl'時它是否工作? – PerlDuck
我的整個腳本貼在上面。我不知道shebang線是什麼,但現在我會google。 –
shebang行告訴系統使用哪個程序來解釋腳本的其餘部分。在你的情況下,你想'perl'來處理腳本(比如'bash')。嘗試將'#!/ usr/bin/perl'或只是'#!perl'添加到腳本的第一行。 (你顯示的兩條線看起來不錯,順便說一句) – PerlDuck