从 Spring Boot jar 文件运行非主类

2024-02-04

我有一个 spring boot jar 文件,里面有一个清单文件,如下所示

Manifest-Version: 1.0
Implementation-Title: myApp
Implementation-Version: 0.1
Built-By: me
Implementation-Vendor-Id: com.myApp
Spring-Boot-Version: 2.0.0.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.myApp.smartlight.BootMongoDBApp
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.6.1
Build-Jdk: 1.8.0_151

它里面有一个名为的类文件com.myApp.initiate.Initiator (打包在jar内的BOOT-INF/classes文件夹下)。我正在尝试在 Windows 计算机上从命令行运行 Initiator 类,如下所示

java -cp myApp.jar com.myApp.initiate.Initiator

但没有运气。我还尝试在上面的命令中提到类路径

java -cp "myApp.jar;BOOT-INF/*" com.myApp.initiate.Initiator

但它仍然不起作用。

我究竟做错了什么?

启动器.java

package com.myApp.initiate.Initiator;

public class Initiator {

    public static void main(String... args) {

        System.out.print("hello");
    }
}

Update :

Initiator类被打包在 BOOT-INF/classes 文件夹下。当我将其复制到 jar 根目录并尝试下面的命令时,它起作用了

myApp.jar
|
|--org
|--BOOT-INF
|--META-INF
|--Initiator.class
java -cp myApp.jar Initiator
hello

Update: 感谢@Strelok 的提示,我设法让它正常工作

java -cp myApp.jar -Dloader.main=com.myApp.initiate.Initiator org.springframework.boot.loader.PropertiesLauncher


指定类路径、loader.main 和 springboot 启动器,它按照 qwerty 建议的方式工作:

java -cp myApp.jar -Dloader.main=com.myApp.initiate.Initiator org.springframework.boot.loader.PropertiesLauncher
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Spring Boot jar 文件运行非主类 的相关文章

随机推荐

  • 应用程序更新后 CoreData 崩溃

    我有一个非常烦人的问题 我有一个 CoreData 应用程序 目前正在生产中 一切正常 我有该应用程序的更新 但是每当在原始应用程序上安装更新时 该应用程序就会在下面的代码行处崩溃 persistentStoreCoordinator ad
  • `go modvendor` 命令的目的是什么?

    The 文档 https golang org ref mod go mod vendor says go modvendor命令在目录中构造一个名为vendor的目录 主模块的根目录 包含所有包的副本 支持主模块中包的构建和测试所需的 仅
  • Hadoop 文件分割:CompositeInputFormat:内连接

    我正在使用 CompositeInputFormat 为 hadoop 作业提供输入 生成的分割数是作为 CompositeInputFormat 用于连接 输入的文件总数 该作业完全忽略块大小和最大拆分大小 同时从 CompositeIn
  • Android:检查服务是否正在运行。绑定服务

    检查 Android 服务是否正在运行的最佳方法是什么 我知道ActivityManagerAPI 但对于与我类似的场景 似乎不建议使用API source http www mail archive com android develop
  • 使用 SpringBootRequestHandler 访问函数内部的 AWS Lambda 上下文?

    我需要访问我的 lambda 函数的 AWS Lambda 上下文 我在用SpringBootRequestHandler接收请求 应该调用实现 Function 接口的类 下面是这两个类的代码示例 public class A exten
  • Typescript 在 Pick 实现中进行了扩展

    这是 Typescript 的基本实现Pick实用程序类型来自本教程 https learntypescript dev 09 l3 condition utility types type ObjectWithKeys
  • Angular 2 / 4 / 5 - 提前编译如何

    我正在尝试按照本指南引导我的 Angular 2 RC5 应用程序https angular io docs ts latest guide ngmodule html https angular io docs ts latest gui
  • JSF 中的 class 和 styleClass 属性有什么区别?

    我发现 在 JSF 中 大多数标准组件都映射到 HTML 标签 例如
  • 拆分数据库是合法的安全措施吗?

    当我公司以前的开发人员必须存储敏感的用户数据 例如医疗记录 时 他们做了以下操作 我怀疑它的优点 有些数据被认为是 不敏感 用户登录 个人资料信息 和 敏感 用户医疗记录 共有三个数据库 中的不敏感数据A 医疗记录在B 以及之间的映射A a
  • 使用 Web 服务将报价导入 vtiger crm

    我需要将报价导入到vtiger 我发现可以使用 vtiger Web 服务 API 来完成 我找到了参考手册 https wiki vtiger com archives index php vtiger510 Webservice ref
  • 在 shell 脚本中转义单引号

    我需要转义变量中的单引号 ssh command file hostname server setup date Y m d tar gz cd var tar zcvf file ini wc l xargs printf Num fil
  • 如何在不重新启动 MySQL 的情况下刷新 Performance_schema 统计信息?

    我知道性能模式中的统计数据在 MySQL 重新启动后不会持续存在 我想在不重新启动 MySQL 的情况下刷新所有统计信息 有什么办法可以做到吗 Thanks 截断每个单独的表更容易的是调用以下过程 CALL sys ps truncate
  • 如何编写可读的 JavaScript

    在 JavaScript 中 代码格式化的标准规则似乎并没有解决这个问题 你最终还是会陷入混乱 到处都是 我不相信我什至不知道正确缩进声明为其他函数的参数的匿名函数的既定规则 简而言之 我在阅读自己的 JavaScript 时遇到了困难 而
  • 如何在 Oracle 包中执行私有过程?

    这是我第一次尝试创建一个包 所以我一定错过了一些非常明显的东西 我在谷歌上搜索过的东西似乎都不认为值得一提 显然 如果包体中有未包含在规范部分中的过程 那么这些过程就是私有的 我遇到的问题是我似乎不知道如何参考那些私人包裹一旦我做好了 而且
  • 实体包装器 - 自定义

    我想找到一种解决方法来完成一个简单的解决方案 以便通过 EF 自动执行某些操作 我需要的是在保存和检索过程中接管以修改查询结果 但此类将能够使其适用于任何类型的实体 示例 我有一个 MyTestDb 因此 在我的 C 项目中 我创建了一个新
  • 无法更改 Android 中的导航抽屉图标颜色

    好吧 我知道这是一个微不足道的问题 但由于某种原因它对我不起作用 我已经做了很多其他答案中建议的事情 但都是徒劳的 我的可绘制文件夹有白色图标 我什至尝试从 styles xml 更改它 但这也不起作用 我正在我的棒棒糖设备上测试它 任何帮
  • 使用 `` 或 `@import` 包含 CSS - 哪个更好?

    我有一个网站 并且有多个用于打印 电视 屏幕 手持设备等的 css 样式表 我想知道这些方法中哪一种更好用 性能 可用 性等 or
  • 正则表达式问题组名称重新定义?

    所以我有这个正则表达式 s P
  • 线串长度(以英里为单位)

    我将运行数据表示为 Shapely LineStrings 其中 LineString 中的每个点都是一个坐标 我试图计算出以英里为单位的 LineString 长度 我知道 LineString 有一个length方法 但我不知道结果是什
  • 从 Spring Boot jar 文件运行非主类

    我有一个 spring boot jar 文件 里面有一个清单文件 如下所示 Manifest Version 1 0 Implementation Title myApp Implementation Version 0 1 Built