首页 > 解决方案 > cmake for Java,如何指定主类并使jar文件可执行?

问题描述

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选项。
即使我已经添加:

设置(CMAKE_JAVA_EXECUTABLE 你好)

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

标签: javacmake

解决方案


您需要将指向主类的ENTRY_POIN添加到 add_jar 中,如下所示:

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

推荐阅读