如何使用main方法运行类?

时间:2018-05-16 13:00:43

标签: java spring-boot

我有一个带有main方法的简单类。这不是我在应用程序中的主要类,而是一个工具。我想像

一样运行它
java -cp mySpringBoot.jar com.pkg1.pkg2.pkg3.mytool

我可以看到这个类在同一个包中,但在BOOT-INF/classes/com/pkg1/pkg2/pkg3/mytool.class

我也尝试使用BOOT-INF/classes文件夹,但它一直在说

Error: Could not find or load main class ... com.pkg1.pkg2.pkg3.mytool 编辑: 我在spring boot jar中的工具类非常简单,它与SpringBootApplication类所在的根不在同一个包中。

package com.comp.mypackage.tools;

//imports
public class MyTool{

public static void main (String args[]) {
......
}

}

2 个答案:

答案 0 :(得分:1)

看看这个stackoverflow帖子How to run a JAR file

它将向您展示如何使用清单文件(您在哪里定义主方法),如何打包(创建)jar,以及运行jar。

答案 1 :(得分:0)

Spring boot创建了一个"胖JAR"与maven(所有依赖)。例如,如果您转到Spring Boot指南https://spring.io/guides/gs/maven/

克隆git repo。 mvn包(创建JAR文件)。查看JAR文件 - 内部" META-INF / MANIFEST.MF"。有一个" Main-Class:hello.HelloWorld",它定义了要运行的包类:

git clone https://github.com/spring-guides/gs-maven.git
cd gs-maven/complete

mvn package
cd target/
jar xvf gs-maven-0.1.0.jar
less META-INF/MANIFEST.MF

-----
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: ********
Created-By: Apache Maven 3.5.2
Build-Jdk: 1.8.0_121
Main-Class: hello.HelloWorld