相关疑难解决方法(0)

JAR中有多个runnable类,如何运行它们?

我在从一个JAR文件中运行多个不同的类时遇到问题.我知道我可以将JAR中的一个类设置为将在命令后运行的Main类java -jar myjar.jar,但我想要的是:

java -jar myjar.jar MyClass
Run Code Online (Sandbox Code Playgroud)

是否有可能以这种方式执行此操作,或者我是否必须创建多个JAR(每个用于一个可运行的类),或者更好地创建将运行我的其他类传递给命令行参数的"manager"类?
我正在寻找文档或参考,但我找不到任何.

java jar

55
推荐指数
3
解决办法
6万
查看次数

如何在Spring Boot Gradle中指定Launcher?

Spring Boot中有三个启动器:JarLauncher/PropertiesLauncher/WarLauncher.对于可执行jar,默认情况下将使用JarLauncher.现在我想使用PropertiesLauncher,以便我可以使用外部类路径.我怎么能指定那是spring boot gradle插件?

根据这个doc D.3.1 Launcher清单的 D3.1 ,我可以在MANIFEST.MF中指定主类,如下所示:

Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.mycompany.project.MyApplication
Run Code Online (Sandbox Code Playgroud)

但是,在Spring Boot Gradle中,以下代码片段实际指定了Start-Class,而不是Main-Class:

springBoot {
    mainClass = "com.sybercare.HealthServiceApplication"
}
Run Code Online (Sandbox Code Playgroud)

我是否需要手动创建MANIFIEST.MF或者有更好的方法来执行此操作?

谢谢!

launcher gradle spring-boot

4
推荐指数
1
解决办法
2294
查看次数

spring boot属性启动程序无法使用

我正在尝试使用弹簧启动属性启动器

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>org.springframework.boot.loader.PropertiesLauncher</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Start-Class>com.att.hadoop.loader.run.Application</Start-Class>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
Run Code Online (Sandbox Code Playgroud)

当我查看清单文件时,它看起来像这样

$ unzip -q -c hdfsloader-0.0.1-SNAPSHOT.jar META-INF/MANIFEST.MF
Manifest-Version: 1.0
Built-By: aq728y
Build-Jdk: 1.7.0_25
Start-Class: org.springframework.boot.loader.PropertiesLauncher
Created-By: Apache Maven 3.1.0
Spring-Boot-Version: 1.0.0.RC1
Main-Class: org.springframework.boot.loader.JarLauncher
Archiver-Version: Plexus Archiver
Run Code Online (Sandbox Code Playgroud)

关于为什么我的mainclass和startclass错误的任何想法

我想把它设置为

Main-Class:org.springframework.boot.loader.PropertiesLauncher

Start-Class:com.att.hadoop.loader.run.Application

spring-boot

3
推荐指数
1
解决办法
1万
查看次数

我可以为 Spring Boot 应用程序创建多个入口点吗?

Spring Boot中,需要指定一个主类,它是应用程序的入口点。通常,这是一个具有标准 main 方法的简单类,如下所示;

@SpringBootApplication
public class MySpringApplication {

    public static void main(String [] args) {
        SpringApplication.run(MySpringApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,当应用程序运行时,该类被指定为主入口点。

但是,我想使用不同的主类运行我的代码,使用配置来定义它,并且不使用不同的jar!(我知道重建 jar 将使我能够指定一个替代主类,但这实际上给了我两个应用程序,而不是一个!那么,我如何才能利用一个jar具有两个主类的应用程序,并通过 Spring 选择要使用的一个应用程序 application.yml文件?

java config spring-boot

3
推荐指数
1
解决办法
4700
查看次数

标签 统计

spring-boot ×3

java ×2

config ×1

gradle ×1

jar ×1

launcher ×1