使用Cygwin中启动的perl脚本运行带有2个参数的Java文件

我试图编写一个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);

localhost55001应该是两个参数由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 “);

回答:

错误syntax error near unexpected token是一个shell错误。你问Cygwin的shell执行一个Perl程序,当然它使废话在这方面

您可以使用

perl canarybot.pl 

,或者你可以添加一个 shebang line

#!perl 

到程序的开始,这将导致Cygwin外壳在PATH上查找perl并使用它执行后续代码,而不是尝试自行解释它

但我没有看到任何理由在这里使用Cygwin。从Windows cmd提示你可以使用命令

canarybot.pl 

Windows将开始在该文件的当前工作目录搜索,而将使用注册表来确定如何处理.pl文件类型。没有必要在所有

回答:

这是一个shebang行是通过编辑Perl脚本一起使用认领本着对java.exe的文件的具体路径如下解析:

#!/usr/bin/perl 

my @args = ("/cygdrive/c/Program\ Files/Java/jdk1.8.0_152/bin/java.exe", "-jar", "canarybot.jar", "localhost", "55001");

my $ret = system(@args);

以上是 使用Cygwin中启动的perl脚本运行带有2个参数的Java文件 的全部内容, 来源链接: utcz.com/qa/266132.html

回到顶部