是否可以在命令行/作为 web 服务中运行 java 应用程序

Posted

技术标签:

【中文标题】是否可以在命令行/作为 web 服务中运行 java 应用程序【英文标题】:Is it possible to run java application in both commandline / as a webservice 【发布时间】:2018-11-29 15:51:18 【问题描述】:

我想创建一个类似于比特币客户端的 Java 应用程序。但它可以在命令行 cmd 上运行,也可以作为 Web 服务向其他客户咨询我的客户。我应该使用哪种技术来处理我的任务。请给我一个例子解释问题

【问题讨论】:

你也可以在包中添加一个类,它有一个可运行的 Main - 调用你的 web 服务,我在测试 web 服务时经常这样做 【参考方案1】:

期望

猜猜这就是你所期待的

    从命令行或作为操作系统服务运行 Java 程序 该程序应该是向其他消费者公开一些 API 的 Web 服务

解决方案

您可以在 Spring MVC、Spring Boot 和 Maven 的帮助下做到这一点

原因

Spring MVC 可用于将您的业务公开为 REST Web 服务 Spring Boot 可用于将 Web 服务应用程序作为普通 Java 应用程序(使用主类)启动,而无需使用 Tomcat 或 Jetty 等外部 Web 服务器 Maven 构建工具可用于从 Spring Boot 应用程序创建 fat jar(包含所有依赖项的单个 jar 文件) 您将从命令行运行生成的 fat jar,但服务仍将作为 REST 服务公开

参考

使用https://start.spring.io/ 这个 Spring 自己的托管工具将为您生成所有样板代码。您只需将下载的 zip 导入您的工作区并添加您的业务逻辑 要构建一个胖罐子,您不需要做任何特别的事情。只需运行mvn clean install。样板将有一个 pom.xml 文件,该文件将负责生成 fat jar

【讨论】:

非常感谢您详细、优雅的回答。你的最后一句话引起了我的注意。我将把这个程序提供给我的股票经纪人客户,他们可以使用这个程序访问我系统中的信息。在这样做时,它将使用命令行或浏览器。这部小说有错误吗。不过,我可以用你所说的解决它。 我从来没有使用过spring boot和maven。有没有一个例子涵盖了你提到的完成这项任务的技术。 编辑了答案,希望能帮助你快速启动(也许这就是spring boot的动机)。 这样,我可以同时从命令行和浏览器发出请求吗? 当你的意思是请求时,我猜你的意思是 HTTP 请求。是的,您可以从浏览器和 cmd 中获取。对于 cmd 你必须使用 cURL 命令。

以上是关于是否可以在命令行/作为 web 服务中运行 java 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将输入传递给正在运行的服务或守护进程?

如何将WebLogic服务器运行于Docker容器中

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

Php

如何通过命令行运行Maven / Gradle Web项目?

7.mongo命令行运行JavaScript脚本