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)
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)