我有一个 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