最适合网络开发者的网站
Java 编程语言。hyperskill 为初学者提供的课程

尿素

IntelliJ IDEA 运行配置


理论

IntelliJ IDEA 使用运行/调试配置来运行、调试和测试应用程序。运行/调试配置代表一组用于运行程序的启动属性,例如 VM 或 JRE 选项。它还包含有关您在启动时传递给程序的命令行参数的信息。


§1. 运行/调试配置对话框

应用程序运行/调试配置使您可以通过主方法运行或调试应用程序。要设置配置,请打开 编辑配置 对话。

编辑配置对话框

程序启动时要传递的命令行参数在 程序参数 场地。

程序参数字段

参数以空格分隔的字符串序列传递。在运行程序时,字符串将是传递给其入口点的命令行参数。命令行元素之间的分隔符是空格字符,行尾分隔符是换行符。


§2. 在配置中传递参数

要将参数传递给程序,您应该以在命令行上使用的格式输入参数列表。空格将被解析为分隔符,将一个参数与另一个参数分开。这些参数将作为数组传递给程序的入口点。

重要的是要记住,所有命令行参数都是作为字符串传递的,因此如果它们应该被视为整数,则应该在程序内部明确转换它们。

为了正确传递参数,您应该使用下一段中的规则列表。


§3. 参数传递规则

指定参数时,请遵循以下规则:

  • 使用空格分隔各个参数,例如, --数据文本.txt.
  • 如果参数包含空格,请将空格或包含空格的参数括在双引号中,例如, 一些” “参数 或者“一些参数”.
  • 如果参数包含双引号(作为参数的一部分),请使用反斜杠对双引号进行转义,例如, \"quoted_value\".

例如,如果你想传递两个参数, - 数据文本.txt,您应该按照上述规则按照以下示例插入它们:

使用规则

§4。结论

让我们回顾一下在本主题中学到的知识:

  • 要在 IntelliJ IDEA 中为应用程序传递命令行参数,请转到 运行/调试配置 对话框并设置程序参数 场地。
  • 为了正确指定命令行参数,请遵循第三段中的规则。

您还可以查看 hyperskill.org 上的课程.


实践任务及答案

给出了任务和答案选项。正确选项以 蓝色的 颜色。

№1. 注意规则

问题: 将传递的参数行与实际参数进行匹配。我们已在方括号中指出它们。

匹配左列和右列的项目:

  • --data "Android 指挥官" Soong - [--data] [Android 指挥官] [Soong]
  • --data" "指挥官 Android Soong - [--data 指挥官] [Android] [Soong]
  • --data 指挥官 Android \"Soong\" - [--data] [指挥官] [Android] ["Soong"]
  • --data "指挥官" Android Soong - [--data] [指挥官] [Android] [即将推出]

解释。 传递参数行和实际参数的正确匹配是:

传递参数 | 实际参数

  • --data “Android 指挥官” Soong | --data、指挥官、Android、Soong
  • --data" "指挥官 Android Soong | --data, 指挥官, Android, Soong
  • --data Android 指挥官 \"Soong\" | --data, Android 指挥官, Soong
  • --data “指挥官” Android Soong | --data、指挥官、Android、“Soong”

--data 选项以字符串作为参数。字符串可以包含任何字符,包括空格、逗号和引号。如果字符串包含空格或逗号,则必须使用双引号进行转义。

例如,以下两行论点是等效的:

  • --data “指挥官Android Soong”
  • --data 指挥官 Android \“Soong\”

第一行中,Commander 和 Android 之间的空格使用双引号进行了转义。第二行中,空格没有被转义,但引号被转义了。

以下两行论点并不等价:

  • --data 指挥官Android Soong
  • --data 指挥官, Android, Soong

第一行只有三个参数,第二行有四个参数,第二行的第四个参数是“Android”和“Soong”之间的逗号。


№2. 哪个标签?

问题: 在运行/调试配置对话框中哪里可以找到程序命令行参数?

从列表中选择一个选项:

  • 日志选项卡
  • 发射窗口之前
  • 代码覆盖率选项卡
  • 配置选项卡 ✔

解释。 正确的选项是“配置”选项卡。在“运行/调试”配置对话框中,程序命令行参数位于“配置”选项卡中的“程序参数”字段下。“日志”选项卡显示程序的输出,包括任何错误或警告。“启动前”窗口允许您在程序启动前运行自定义命令。“代码覆盖率”选项卡显示程序运行时执行了多少代码。


№3. 传递一些参数

问题: 假设您有一个程序读取文本文件的内容并将其写入控制台。它通过命令行参数接受文件名。如果您需要输出位于程序根文件夹中的文件 example.txt 和 implementation.txt 的内容,并且 example.txt 文件内容应该放在最前面,那么传递给程序的参数是什么?

输入简短的文字: 示例.txt 实现.txt

解释。 输出程序根文件夹中的 example.txt 和 implementation.txt 文件的内容(其中 example.txt 文件内容在前),需要传递给程序的参数为:

示例.txt 实现.txt

您需要用空格分隔文件名。然后程序将按照您指定的顺序读取文件的内容,并将它们写入控制台。example.txt 的内容将首先写入,然后是 implementation.txt 的内容。

下面是在基于 Unix 的系统上运行该程序的示例:

$ ./程序示例.txt 实现.txt

这将运行名为 program 的程序,并将文件名 example.txt 和 implementation.txt 作为命令行参数传递。然后程序将读取文件的内容并将其写入控制台。


№4. 确定论点

问题: 您将以下行作为参数列表传递给程序:“sys\”\“ \”path” 参数是什么?

从列表中选择一个选项:

  • “系统路径
  • “系统路径
  • 系统路径
  • sys"" "路径 ✔

解释。 正确答案是 sys"" "path。字符串 "sys"" "path" 用双引号括起来。这意味着单词 "sys"、"""、"path" 之间的空格被解释为文字空格,而不是参数之间的分隔符。因此,传递给程序的参数是 "sys"、""" 和 "path"。其他选项不正确,因为它们没有考虑字符串中单词之间的空格。例如,选项 "sys path" 会将字符串拆分为两个参数:“sys”和“path”。选项 "sys "path" 也会将字符串拆分为两个参数,但第一个参数将是 "sys ",这不是有效参数。选项 "sys" "path" 会将字符串拆分为三个参数:“sys”、“""" 和 "path"。但是,第二个参数将是 """,这不是有效参数。


№5. 计数参数

问题:通过下面这一行向程序传递了多少个参数?

--text-files task.txt output_for"任务"_lines.txt --folder-name "我的主题"

输入一个数字: 5 ✔

解释。 通过下面这行代码向程序传递了五个参数:

--text-files task.txt output_for"任务"_lines.txt --folder-name "我的主题"

论点如下:

  1. --text-files:这是指定程序应该处理的文本文件的选项。
  2. task.txt:这是第一个文本文件的名称。
  3. output_for"Task"_lines.txt:这是第一个文本文件的输出文件的名称。
  4. --folder-name:这是指定包含文本文件的文件夹的选项。
  5. “我的主题”:这是包含文本文件的文件夹的名称。

第一个参数 --text-files 后面跟着一个文本文件列表。文本文件列表用双引号括起来。这意味着文件名之间的空格被解释为文字空格,而不是参数之间的分隔符。因此,第一个参数实际上是 4 个参数合一。

正确的结论是,向程序传递了 5 个参数。


№6. 输出

问题: 您正在传递参数1 2 到以下程序:

Java:

public static void main(String[] args) {
    System.out.println(args[0] + args[1]);
}

科特林:

fun main(args: Array<String>) {
    print(args[0] + args[1])
}

输出会是什么?

从列表中选择一个选项:

  • 12 ✔
  • 将发生 IOException
  • 1+2
  • 3

解释。 发生的是连接,而不是加法!


№7. 查尔的失误

问题: 您的同事 Charles 正在尝试传递这些论点:--data 艾玛·罗道夫“莱昂” 对于这样的程序:

--数据” “艾玛,罗道夫,/“莱昂/”

但他没有成功,他变得悲伤。帮助他发现并改正他的错误,让查尔斯开心。

从列表中选择一个或多个选项:

  • --data 和 Emma 之间不必要的双引号✔
  • 在 Leon 周围使用正斜杠代替反斜杠 ✔
  • Emma 和 Rodolphe 后面的逗号多余 ✔
  • Leon 周围不必要的反斜杠
  • --data 后没有逗号

解释。 以下是查理在指挥中所犯的错误:

  • 他在“Leon”两边使用了双引号而不是单引号。单引号用于传递包含空格或特殊字符(如引号)的参数。
  • 他在“Leon”两边使用了正斜杠,而不是反斜杠。反斜杠用于在 Windows 命令提示符中转义特殊字符。
  • 他在“Rodolphe”后面加了一个逗号。命令参数中不允许使用逗号。

为了纠正他的错误,查尔斯应该使用以下命令:

--data "艾玛,罗道夫,\"莱昂\""

该命令将正确地将参数“Emma”、“Rodolphe”和“Leon”传递给程序。

该命令的具体内容如下:

  • --data 选项告诉程序以下参数是数据。
  • “Emma、Rodolphe 和“Leon””两端的双引号用于将参数作为单个字符串传递。
  • “Leon”两侧的反斜杠用于转义字符串中的引号。
  • “Rodolphe”后面的逗号是不允许的,因此应该将其删除。

№8. 自体配置

问题: 什么代表运行/调试配置?

从列表中选择一个选项:

  • 仅在启动时传递给程序的命令行参数
  • Java 虚拟机选项可提供更好的性能和调试
  • 启动属性集:JVM 或 JRE 选项、命令行参数✔
  • “运行”和“调试”命令

解释。 运行/调试配置是一组启动属性,包括 JVM 或 JRE 选项、命令行参数和其他配置设置,用于定义程序的运行或调试方式。它用于指定应在其中启动应用程序的环境,并且可以包含要执行的主类、程序参数和环境变量等选项。此配置还可以包含 Java 虚拟机选项,以实现更好的性能和调试。因此,正确答案是:

启动属性集:JVM 或 JRE 选项、命令行参数


第九名 战争与和平

问题: 假设您需要向程序传递以下三个参数:L. Tolstoy,“战争与和平”,1867年。在参数字段中正确的写法是什么?

从列表中选择一个选项:

  • 列宁·托尔斯泰《战争与和平》1867年
  • 列宁·托尔斯泰《“战争”与“和平”》1867年
  • “列·托尔斯泰”《战争与和平》1867年✔
  • 列宁·托尔斯泰《战争与和平》1867年

解释。 在参数字段中写入参数的正确方法是:

列宁·托尔斯泰《战争与和平》1867年

书名的字符串文字需要用双引号括起来。单引号不起作用,因为单词“War”和“and”之间的空格将被解释​​为分隔符。

您提供的代码输出以下内容:

列宁·托尔斯泰《战争与和平》1867年

这是不正确的,因为书名没有用双引号括起来。

下面是如何在 Java 程序中使用参数的示例:

例子

public class PrintArguments {

  public static void main(String[] args) {
    printArguments("L. Tolstoy", "\"War and peace\"", 1867);
  }

  public static void printArguments(String author, String book, int year) {
    System.out.println(author);
    System.out.println(book);
    System.out.println(year);
  }
}

此代码定义了一个名为 print_arguments() 的函数,该函数接受三个参数:作者姓名、书名和出版年份。然后,该函数将这些参数打印到控制台。

执行此代码时,它将在控制台上打印以下输出:

列宁·托尔斯泰 战争与和平 1867 年


№10. 难题

问题: 将参数“Bolek_and_Lolek”传递给程序。

提示:所有内容(包括双引号)都是参数的一部分。

输入简短的文字: \“Bolek_and_Lolek\”✔


IntelliJ IDEA 运行配置是什么?

IntelliJ IDEA 运行配置是一组定义如何运行项目的设置。这些设置可以包括以下内容:

  • 要运行的程序
  • 命令行参数
  • 环境变量
  • 其他设置,例如调试器

运行配置可用于在本地计算机、远程服务器或 Docker 容器中运行项目。它们还可用于在不同的环境中运行项目,例如开发、测试和生产。

要创建新的运行配置,请打开“运行/调试配置”对话框 (Ctrl+Shift+F10) 并单击“+”按钮。在“新运行配置”对话框中,选择要运行的程序类型。

创建运行配置后,您可以通过在“运行/调试配置”对话框中双击它来编辑它。您还可以通过单击旁边的绿色箭头从运行配置运行项目。

以下是如何在 IntelliJ IDEA 中使用运行配置的一些示例:

  • 您可以创建运行配置以使用特定命令行参数运行 Java 程序。
  • 您可以创建运行配置以在本地 Web 服务器上运行 Web 应用程序。
  • 您可以创建运行配置以在 Docker 容器中运行 Python 程序。

运行配置是一个强大的工具,可用于在不同的平台和不同的环境中运行项目。

以下是有关 IntelliJ IDEA 中的运行配置的一些其他事项:

  • 您可以为同一个项目创建多个运行配置。如果您想以不同的方式运行项目(例如使用不同的命令行参数或环境变量),这将非常有用。
  • 您可以将运行配置保存为项目文件。这样您就可以与其他开发人员共享它们或将它们导入到其他项目中。
  • 您可以通过键盘快捷键运行运行配置。如果您经常运行相同的运行配置,这将非常有用。

以下是 IntelliJ IDEA 中可用的一些不同类型的运行配置:

  • 应用程序:此类运行配置用于运行独立应用程序。
  • JUnit:这种类型的运行配置用于运行 JUnit 测试。
  • TestNG:此类运行配置用于运行 TestNG 测试。
  • Spring Boot:这种运行配置用于运行 Spring Boot 应用程序。
  • Docker:这种运行配置用于运行 Docker 容器。