使用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);
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 “);
回答:
错误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