gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 20:00:56 24 4
gpt4 key购买 nike

我正在尝试编写一个 Perl 脚本来启动我的 Java 程序。

我正在尝试在 Windows 10 中使用 Cygwin 执行它。

Java 程序的 main 方法需要两个参数。

主要方法如下所示

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");

最佳答案

错误意外标记附近的语法错误是一个shell错误。您要求 Cygwin shell 执行 Perl 程序,当然在这种情况下它毫无意义

您可以使用

    perl canarybot.pl

或者您可以添加 shebang line

#!perl

到程序的开头,这将导致 Cygwin shell 在 PATH 上查找 perl 并使用它来执行后续代码,而不是尝试解释它本身

但我看不出有任何理由在这里使用 Cygwin。在 Windows cmd 提示符下,您可以使用命令

canarybot.pl

Windows 将开始在当前工作目录中搜索该文件,并且它将使用注册表来确定如何处理 .pl 文件类型。根本不需要 Shebang 线

关于java - 使用 Cygwin 中启动的 perl 脚本运行带有 2 个参数的 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com