相关文章推荐
没读研的火柴  ·  制作vb dll的总结 - ElNinoT ·  3 周前    · 
大鼻子的弓箭  ·  GO:交互式命令行工具 survey开发者社区·  3 周前    · 
温暖的凉面  ·  Scrapy爬虫框架(实战篇)【Scrapy ...·  2 年前    · 
高大的豆浆  ·  (8)PDFBOX读取PDF(元数据、纲要、 ...·  2 年前    · 
讲道义的鸡蛋面  ·  PHP does not resolve ...·  2 年前    · 
Code  ›  【Java专栏 01】探索Java命令行输入参数:从基础到高级开发者社区
控制台 命令行
https://cloud.tencent.com/developer/article/2393724
另类的手链
1 年前
夏之以寒

【Java专栏 01】探索Java命令行输入参数:从基础到高级

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
夏之以寒
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 【Java专栏 01】探索Java命令行输入参数:从基础到高级

【Java专栏 01】探索Java命令行输入参数:从基础到高级

作者头像
夏之以寒
发布 于 2024-03-04 17:55:12
861 0
发布 于 2024-03-04 17:55:12
举报
文章被收录于专栏: Elasticsearch专栏

在Java编程中,命令行输入是一种常见的数据获取方式,它允许用户在程序运行时动态地提供数据。Java提供了多种方法来处理命令行输入,每种方法都有其特定的使用场景和优势。在本文中,我们将详细探讨Java如何接收命令行输入,并通过相关的代码案例来帮助您更好地理解这些概念。

01 使用 args 数组接收命令行参数

当您从命令行启动Java程序时,可以通过命令行参数将值传递给程序。这些参数可以通过 main 方法的 String[] args 参数来访问。 args 数组中的每个元素都是一个字符串,表示一个命令行参数。

代码案例:

代码语言: javascript
复制
public class CommandLineArgsExample {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("没有提供命令行参数。");
        } else {
            for (String arg : args) {
                System.out.println("参数: " + arg);
}

运行此程序时,可以像下面这样传递参数:

代码语言: javascript
复制
java CommandLineArgsExample arg1 arg2 arg3

输出将是:

代码语言: javascript
复制
参数: arg1
参数: arg2
参数: arg3

02 使用 Scanner 类从标准输入读取

Scanner 类是Java标准库中的一个强大工具,它可以从各种输入源(包括命令行)读取数据。要使用 Scanner 从命令行读取输入,您可以将 System.in 作为输入源传递给 Scanner 的构造函数。

代码案例:

代码语言: javascript
复制
import java.util.Scanner;
public class CommandLineScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的名字:");
        String name = scanner.nextLine();
        System.out.println("您好," + name + "!");
        scanner.close();
}

在这个例子中,程序会提示用户输入他们的名字,然后使用 Scanner 读取输入,并打印出一条问候消息。 System.in 是标准输入流的引用,通常指向键盘。

03 使用 Console 类进行控制台交互

Console 类提供了一个与字符控制台交互的接口。它提供了一些方法来读取和写入字符控制台,包括读取密码。要使用 Console 类,您需要在 main 方法中调用 System.console() 方法。

代码案例:

代码语言: javascript
复制
public class CommandLineConsoleExample {
    public static void main(String[] args) {
        Console console = System.console();
        if (console == null) {
            System.err.println("当前环境没有控制台可用。");
            return;
        System.out.println("请输入您的名字:");
        String name = console.readLine();
        System.out.println("您好," + name + "!");
}

在这个例子中,我们使用 Console 类来读取用户输入。和 Scanner 类似, Console 的 readLine() 方法会等待用户输入一行文本,然后返回该文本。需要注意的是, Console 类可能不在所有的环境中都可用,比如在某些IDE的控制台窗口中。

04 使用 JLine 库进行更高级的命令行交互

JLine 是一个流行的Java库,用于提供丰富的命令行界面和更高级的输入处理功能。它支持历史记录、自动补全等特性。

代码案例(需要添加JLine依赖):

首先,您需要将JLine库添加到项目的依赖中。如果您使用Maven,可以在 pom.xml 中添加以下依赖:

代码语言: javascript
复制
<dependency>
    <groupId>org.jline</groupId>
    <artifactId>jline</artifactId>
    <version>3.x.x</version> <!-- 使用最新版本 -->
</dependency>

然后,您可以使用 Reader 和 Terminal 类来创建一个交互式的命令行界面。

代码语言: javascript
复制
import org.jline.reader.LineReader;
import org.jline.reader.LineReaderBuilder;
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;
public class JLineExample {
    public static void main(String[] args) throws Exception {
        Terminal terminal = TerminalBuilder.builder().system(true).build();
        LineReader reader = LineReaderBuilder.builder()
                .terminal(terminal)
                .build();
        String line;
        while ((line = reader.readLine("请输入您的名字:")) != null) {
            System.out.println("您好," + line + "!");
 
推荐文章
没读研的火柴  ·  制作vb dll的总结 - ElNinoT
3 周前
大鼻子的弓箭  ·  GO:交互式命令行工具 survey开发者社区
3 周前
温暖的凉面  ·  Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】 - 疾风_lu - 博客园
2 年前
高大的豆浆  ·  (8)PDFBOX读取PDF(元数据、纲要、文本、图片)_pdfbox遍历pdf_Fighting_No1的博客-CSDN博客
2 年前
讲道义的鸡蛋面  ·  PHP does not resolve .local dns names with gethostbyname - Stack Overflow
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号