鱼C论坛

 找回密码
 立即注册
查看: 710|回复: 2

[已解决]想用java写一个命令行工具有没有什么好用的包

[复制链接]
发表于 2023-12-11 22:36:36 | 显示全部楼层 |阅读模式
60鱼币
想要前后端结合,就是前端传一个指令过来后端解析然后返回结果给前端这种形式,比如linux中的pwd看当前的绝对路径,我给前端返回一个绝对路径这样。有没有解析命令,自定义命令好用的包
最佳答案
2023-12-11 22:36:37
本帖最后由 不二如是 于 2023-12-12 09:10 编辑

这两个 Java 包不错:

  • Apache Commons CLI:提供了一个简单而强大的API来解析命令行选项。支持短格式和长格式选项,以及参数分组、命令行帮助信息的自动生成等功能。
  • JCommander:由Cédric Beust(TestNG的作者)开发,旨在简化命令行参数的解析,支持复杂的参数关系,如列表、映射等,同时提供了国际化和自定义验证器的支持。

要实现前后端结合,使前端发送命令给后端,后端解析这些命令并返回结果的功能

鱼油可以考虑以下几个步骤和技术:

前端设计:
使用JavaScript和HTML/CSS来创建用户界面。
用户可以通过输入框输入命令,比如模仿Linux的命令(例如pwd)。
通过AJAX或其他HTTP客户端库(如Axios, Fetch API)将命令发送到后端服务器。

后端设计:
使用Node.js, Python (Flask或Django), Ruby on Rails等任何后端技术栈。
接收前端发送的命令,并进行解析。
根据命令执行相应的逻辑。

命令解析:
可以自行编写解析逻辑,识别不同的命令并执行相应的操作。
或者使用现有的库,例如在Node.js中,可以使用yargs或commander等库来解析命令行参数。

安全注意事项:
确保后端不会无限制地执行任何前端发送的命令,这可能导致安全漏洞。
对输入的命令进行严格的验证和过滤。

示例场景(以pwd命令为例):
前端用户输入pwd命令。
前端通过HTTP请求将命令发送到后端。
后端解析命令,并执行类似于获取当前工作目录的操作。
后端将结果作为响应返回给前端。
前端展示这个结果。

根据所选择的技术栈(Node.js, Python等),可以找到相应的库或框架来实现这个功能。

这种模式在Web应用程序中很常见,尤其是在创建交互式命令行界面或模拟系统操作时。

最佳答案

查看完整内容

这两个 Java 包不错: [*]Apache Commons CLI:提供了一个简单而强大的API来解析命令行选项。支持短格式和长格式选项,以及参数分组、命令行帮助信息的自动生成等功能。 [*]JCommander:由Cédric Beust(TestNG的作者)开发,旨在简化命令行参数的解析,支持复杂的参数关系,如列表、映射等,同时提供了国际化和自定义验证器的支持。 要实现前后端结合,使前端发送命令给后端,后端解析这些命令并返回结果的功能 鱼油可 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-11 22:36:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 不二如是 于 2023-12-12 09:10 编辑

这两个 Java 包不错:

  • Apache Commons CLI:提供了一个简单而强大的API来解析命令行选项。支持短格式和长格式选项,以及参数分组、命令行帮助信息的自动生成等功能。
  • JCommander:由Cédric Beust(TestNG的作者)开发,旨在简化命令行参数的解析,支持复杂的参数关系,如列表、映射等,同时提供了国际化和自定义验证器的支持。

要实现前后端结合,使前端发送命令给后端,后端解析这些命令并返回结果的功能

鱼油可以考虑以下几个步骤和技术:

前端设计:
使用JavaScript和HTML/CSS来创建用户界面。
用户可以通过输入框输入命令,比如模仿Linux的命令(例如pwd)。
通过AJAX或其他HTTP客户端库(如Axios, Fetch API)将命令发送到后端服务器。

后端设计:
使用Node.js, Python (Flask或Django), Ruby on Rails等任何后端技术栈。
接收前端发送的命令,并进行解析。
根据命令执行相应的逻辑。

命令解析:
可以自行编写解析逻辑,识别不同的命令并执行相应的操作。
或者使用现有的库,例如在Node.js中,可以使用yargs或commander等库来解析命令行参数。

安全注意事项:
确保后端不会无限制地执行任何前端发送的命令,这可能导致安全漏洞。
对输入的命令进行严格的验证和过滤。

示例场景(以pwd命令为例):
前端用户输入pwd命令。
前端通过HTTP请求将命令发送到后端。
后端解析命令,并执行类似于获取当前工作目录的操作。
后端将结果作为响应返回给前端。
前端展示这个结果。

根据所选择的技术栈(Node.js, Python等),可以找到相应的库或框架来实现这个功能。

这种模式在Web应用程序中很常见,尤其是在创建交互式命令行界面或模拟系统操作时。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-11 22:37:24 | 显示全部楼层
在Java中,有一个非常流行的命令行工具包叫做Apache Commons CLI。它可以帮助你解析命令行参数,并且可以很容易地定义和处理自定义命令。

首先,你需要在你的项目中导入Apache Commons CLI库。你可以通过在你的项目的pom.xml文件中添加以下依赖来实现:
<dependency>    <groupId>commons-cli</groupId>    <artifactId>commons-cli</artifactId>    <version>1.4</version></dependency>
接下来,你可以使用以下代码示例来解析命令行参数并执行相应的操作:
import org.apache.commons.cli.*;public class CommandLineTool {    public static void main(String[] args) {        // 创建Options对象        Options options = new Options();        // 添加命令行选项        Option pathOption = new Option("p", "path", true, "显示当前路径");        options.addOption(pathOption);        // 创建命令行解析器        CommandLineParser parser = new DefaultParser();        try {            // 解析命令行参数            CommandLine cmd = parser.parse(options, args);            // 判断是否提供了-p选项            if (cmd.hasOption("p")) {                String path = System.getProperty("user.dir");                System.out.println("当前路径: " + path);            }        } catch (ParseException e) {            // 处理解析异常            System.out.println("命令行解析失败:" + e.getMessage());        }    }}
你可以在这个基础上进行扩展,添加更多的命令选项和操作。当你运行这个程序时,可以通过在命令行中加入"-p"选项来显示当前路径。

希望这个示例对你有所帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 17:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表