CMake编译java代码

CMake编译java代码,java,cmake,Java,Cmake,是否可以使用CMake编译和运行java代码 从命令行,我在终端上写入的命令是: javac-classpath classpath mainClass.java java-classpath classpath main类 如果是这样的话,你能告诉我如何做到这一点吗 PS:我不想生成jar文件;只是编译java类,如果可能的话运行它 谢谢 更新:我已更改命令。我不知道为什么没有显示附加文本。这可能是因为我使用了“.”CMake对编译Java代码和执行Java类文件的支持有些有限 标准模块可用于

是否可以使用CMake编译和运行java代码

从命令行,我在终端上写入的命令是:

javac-classpath classpath mainClass.java

java-classpath classpath main类

如果是这样的话,你能告诉我如何做到这一点吗

PS:我不想生成jar文件;只是编译java类,如果可能的话运行它

谢谢


更新:我已更改命令。我不知道为什么没有显示附加文本。这可能是因为我使用了“.”

CMake对编译Java代码和执行Java类文件的支持有些有限

标准模块可用于查找本地计算机上安装的JDK。标准模块为Java提供了一些函数。其中有一个函数
add_jar
,用于将Java源文件编译成jar文件

下面是一个小示例,演示如何使用
add\u jar
。给定Java示例源文件
HelloWorld.Java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
以下CMake列表文件将编译
HelloWorld.java
为jar文件
HelloWorld.jar
,并添加一个使用JVM运行jar的CMake测试:

cmake_minimum_required (VERSION 2.8)

find_package(Java REQUIRED)
include(UseJava)

enable_testing()

project (HelloWorld NONE)

set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.6" "-target" "1.6")

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)

CMake变量
CMake\u JAVA\u COMPILE\u FLAGS
可用于指定编译标志。作为一个副作用,
add_jar
命令将设置目标属性
jar_FILE
CLASSDIR
,这些属性可分别用于获取生成的jar文件和编译的类文件目录的路径。

不清楚您尝试了什么,或者您目前正在使用什么进行编译。您给出的命令本身不完整。通常要编译java,您需要执行:
javac SomeJavaSourceFile.java
,这将生成您的
.class
文件。然后运行它:
javasomejavasourcefile
Hi,感谢您的回复。然而,我想问的是,是否有可能使用CMAKE编译和运行java类,为什么还要这样做。。。Ant还是Maven有什么不对?因为我试图把java编写的工具集成到C++编写的另一个工具中。为了做到这一点,我编写了一个绑定类来实例化JVM,找到主java类并调用所需的java方法。现在,我需要找到我需要编写什么代码来一起编译所有东西,以及在哪里插入代码来编译整个项目。我使用一个简单的makefile和一个shell脚本完成了这项工作。但是,核心工具(C++软件)使用CMake构建可执行文件。