鱼C论坛

 找回密码
 立即注册
查看: 1061|回复: 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的作者)开发,旨在简化命令行参数的解析,支持复杂的参数关系,如列表、映射等,同时提供了国际化和自定义验证器的支持。 要实现前后端结合,使前端发送命令给后端,后端解析这些命令并返回结果的功能 鱼油可 ...
小甲鱼最新课程 -> https://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应用程序中很常见,尤其是在创建交互式命令行界面或模拟系统操作时。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

首先,你需要在你的项目中导入Apache Commons CLI库。你可以通过在你的项目的pom.xml文件中添加以下依赖来实现:
  1. <dependency>
  2.     <groupId>commons-cli</groupId>
  3.     <artifactId>commons-cli</artifactId>
  4.     <version>1.4</version>
  5. </dependency>
复制代码

接下来,你可以使用以下代码示例来解析命令行参数并执行相应的操作:
  1. import org.apache.commons.cli.*;
  2. public class CommandLineTool {
  3.     public static void main(String[] args) {
  4.         // 创建Options对象
  5.         Options options = new Options();
  6.         // 添加命令行选项
  7.         Option pathOption = new Option("p", "path", true, "显示当前路径");
  8.         options.addOption(pathOption);
  9.         // 创建命令行解析器
  10.         CommandLineParser parser = new DefaultParser();
  11.         try {
  12.             // 解析命令行参数
  13.             CommandLine cmd = parser.parse(options, args);
  14.             // 判断是否提供了-p选项
  15.             if (cmd.hasOption("p")) {
  16.                 String path = System.getProperty("user.dir");
  17.                 System.out.println("当前路径: " + path);
  18.             }
  19.         } catch (ParseException e) {
  20.             // 处理解析异常
  21.             System.out.println("命令行解析失败:" + e.getMessage());
  22.         }
  23.     }
  24. }
复制代码

你可以在这个基础上进行扩展,添加更多的命令选项和操作。当你运行这个程序时,可以通过在命令行中加入"-p"选项来显示当前路径。

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-9 15:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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