java - 如何使用 32 位 Visual Studio 生成器使 CMake 的 FindJava 获得 64 位 Java
问题描述
我应用 CMake 来生成 Visual Studio 2017 解决方案,以便在 Windows 10 上构建 32 位应用程序。为了创建构建系统,我让 CMake 调用一些 Java 工具来生成一些要编译的代码(应用 Eclipse 建模框架)。为了找到 Java 本身,我FindJava
在find_package(Java)
调用中应用了 CMake finder 模块。
我观察到FindJava
在这种情况下会自动选择 32 位版本的 Java,尽管也可以使用 64 位 Java。请注意,当我调用 CMake 生成 for 时Visual Studio 2017 x64
,FindJava
将返回 64 位 Java。因此,Java 版本似乎取决于使用的生成器的位数。
我的问题是,32 位 Java 有时无法分配足够的堆内存来执行代码生成工具。
为避免这种情况,我希望FindJava
始终找到独立于 Visual Studio 生成器位数的 64 位 Java。
我怎样才能做到这一点?
我目前使用 CMake 3.14,但如果有帮助可以更新。
编辑
我忘了提到我实现了许多开发人员在他们的机器上使用的 CMake 构建系统。所以我不希望在构建机器上假设 32 位和 64 位 Java 安装的固定路径。
解决方案
分析代码FindJava.cmake
显示目前无法按要求手动选择 Java 位数。
我已经为此提交了更改请求:https ://gitlab.kitware.com/cmake/cmake/issues/20306
推荐阅读
- javascript - 如何从 HTML 输入实时更新 Javascript 变量?
- neo4j - Neo4j 密码:结合聚合、排序和限制
- vba - 如何使多个“for”语句在 VBA 中高效运行
- javascript - React 钩子状态变量在重新渲染后不更新
- python - 添加具有相同列的观察并为每个观察创建一个唯一的行
- c# - 在 INotifyPropertyChanged 对象中使用具有通用参数的抽象类
- java - 在加载 swagger-ui.html 页面时,向 host:port/ 和 host:port/csfr 发出请求
- java - Hibernate 异常没有被捕获
- linux - 尽管已经安装了依赖项,但从文件夹中安装 npm 会为 wikimedia 包提供 git 错误(共享主机)
- android - Android 项目在发布版本中生成过多的 DEX 文件