【问题标题】:gradle determine if on 32bit or 64bit windows systemgradle 判断是在 32bit 还是 64bit windows 系统上
【发布时间】:2016-05-10 14:33:36
【问题描述】:

我正在构建一个 java 应用程序并在使用 java 打包程序打包之前复制一些本机 dll。

如何在 gradle 中确定构建系统是 32 位还是 64 位,以便复制正确的 dll 文件?目前我正在手动设置一个变量,当我记得时。

【问题讨论】:

  • 您创建了 2 个包。一个用于 32 位,一个用于 64 位。
  • 不幸的是我不能。我不知道为什么,因为我没有研究它,但是当在 64 位机器上使用 Javapackager 打包成 .exe(带有 inno 设置)时,它将安装但不会在 32 位上运行或启动。我认为这与 .exe 包装器有关,但还不确定。
  • @Rob: javapackager 显然只能为当前架构创建二进制文件,因此您需要在 32 位架构上构建 32 位二进制文​​件。

标签: java gradle 32bit-64bit


【解决方案1】:

您可以查询系统属性 os.arch 以确定您的操作系统架构,并得出您是在 32 位还是 64 位操作系统上的方式

如果您关心您的 JVM(您可以在 64 位系统上运行 32 位 JVM),请使用 sun.arch.data.model属性

以这个任务为例如何访问这些值

task printProps << {
    println System.properties['os.arch']
    println System.properties['sun.arch.data.model']

}

更多信息可以在以下链接中找到:

How can I tell if I'm running in 64-bit JVM or 32-bit JVM (from within a program)?

How to find the OS bit type

【讨论】:

  • 这不是我关心的java,而是一些我必须打包的dll才能访问sqlserver。感谢您的回答,我稍后会尝试一下
  • 它像宣传的那样工作。我不知道我们可以在 gradle 中做类似 java 的事情。谢谢
  • Gradle 只是一堆带有简单执行器/调度器的 groovy 方法/闭包。 Gradle 脚本是 groovy 代码。 Groovy 反过来建立在 JVM 之上。因此,您可以从构建脚本 stackoverflow.com/questions/7567378/… 调用任何 Java 类,您甚至可以调用非标准包并从 maven repos docs.gradle.org/current/userguide/organizing_build_logic.html 下载它们
猜你喜欢
  • 1970-01-01
  • 2011-02-13
  • 2011-12-14
  • 2011-02-04
  • 2011-12-06
  • 2020-09-06
  • 1970-01-01
  • 2013-05-12
相关资源
最近更新 更多