Java 的 cmake,如何指定 main class 并使 jar 文件可执行?

cmake for Java, how to specify main class and make jar file executable?

Hello.java:

public class Hello {
    public static void main(String[] args) {
        System.out.println("hello java");
    }
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(Hello)

find_package(Java REQUIRED)
include(UseJava)

set(CMAKE_JAVA_COMPILE_FLAGS "-source" "11" "-target" "11")
set(CMAKE_JAVA_EXECUTABLE Hello)

add_jar(${PROJECT_NAME} Hello.java)

生成的 Hello.jar 的 MANIFESET.MF,没有 Main-Class 选项。
尽管我已经添加了:

set(CMAKE_JAVA_EXECUTABLE Hello)

知道如何使 jar 文件可执行吗?
我不想自己写 MANIFEST.MF,或者编辑生成的 .jar.

您需要将指向主 class 的 ENTRY_POIN 添加到 add_jar 中:

add_jar(${PROJECT_NAME} Hello.java ENTRY_POINT Hello)