【发布时间】:2019-07-04 12:04:21
【问题描述】:
我从网上得到了一个非常简单的 cmake-java 项目,如下:
猫 HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
然后是 CMakeLists.txt 文件:
cmake_minimum_required (VERSION 2.8)
find_package(Java REQUIRED)
include(UseJava)
enable_testing()
project (HelloWorld)
set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.8" "-target" "1.8")
add_jar(HelloWorld HelloWorld.java)
get_target_property(_jarFile HelloWorld JAR_FILE)
get_target_property(_classDir HelloWorld CLASSDIR)
message(STATUS "Jar file ${_jarFile}")
message(STATUS "Class compiled to ${_classDir}")
add_test(NAME TestHelloWorld COMMAND ${Java_JAVA_EXECUTABLE} -cp ${_jarFile} HelloWorld)
我在 centos7 上使用 jdk 1.8 和 cmake 3.8,然后
cmake . && make -j8
有HelloWorld.jar文件,运行时报错:
java -jar HelloWorld.jar HelloWorld
no main manifest attribute, in HelloWorld.jar
是的,里面没有主类定义:
$ cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.8.0_191 (Oracle Corporation)
我只是想知道如何使用 cmake 将内容添加到 MANIFEST.MF 中,您能帮忙解释一下吗? 非常感谢。
【问题讨论】:
标签: java jar cmake manifest main