【发布时间】:2021-05-27 17:53:35
【问题描述】:
我有一个 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
但还是不行。
我做错了什么?
Initiator.java
package com.myApp.initiate.Initiator;
public class Initiator {
public static void main(String... args) {
System.out.print("hello");
}
}
更新:
Initiator 类被打包在 BOOT-INF/classes 文件夹下。当我在 jar 根目录复制它并尝试下面的命令时,它起作用了
myApp.jar
|
|--org
|--BOOT-INF
|--META-INF
|--Initiator.class
java -cp myApp.jar Initiator
hello
【问题讨论】:
-
您能否添加一些代码,以便我们查看您的应用程序的功能?
-
为什么你认为那还是不行?顺便说一句,包名中只使用小写字符
-
@Jens 这只是一个常规的 Spring Boot 应用程序,可以通过命令行正常运行。 Ans Initiator 类现在只打印“hello”。我从与 jar 文件相同的目录运行上述命令。
-
spring-boot 应用在哪里。
@SpringBootApplication注解在哪里?
标签: java spring-boot jar classpath