当前位置: 首页 > 知识库问答 >
问题:

让Gradle守护进程在特定的Java版本上运行

南门飞扬
2023-03-14

这是在Windows10操作系统上的Cygwin BASH中运行的Gradle5.2.1。

关于让Gradle使用某个JDK和JRE有几个答案。我的系统使用的是Java9(JAVA_HOME指向它的JDK,路径的第一个条目指向它的\bin目录)...但是对于使用TestFX的特定项目,我必须使用Java8。

我花了几个小时试图让事情运转起来,但我总是遇到这个问题。产出:

    null

在那个地方确实有一个JRE...但是在我的系统中,我从来没有说过,也没有人说它是一个“java home”/“java.home”/JAVA_HOME,或者实际上,如这里所印的,javahome。

顺便说一句,我在gradlew中添加了ECHO语句,以告诉我将使用哪个JAVA_HOME和JAVACMD。这些实际上显示了Java9路径,这就是我的系统的配置方式。但是,很明显,使用Java8的指令确实起作用了(如果我把它放在gradle.properties中,也同样起作用),因为最终生成的守护进程显然是在Java8上运行的。但是为什么或者如何找到这个JRE路径...然后称之为“javahome”/“java.home”/“java_home”?

共有1个答案

高增
2023-03-14

我认为这是一个变通办法,因为我真的不明白这里的机制。

我去Oracle下载了JDK8U191 installation.exe并安装在我的系统上。这个过程的一部分涉及“组件注册”和其他东西...可以说,在这个过程结束时,守护进程不兼容问题似乎已经消失了。

查看我的“Java”图标(“Java控制面板”?)在W10控制面板中,我发现没有任何变化:我在用户选项卡中有3个Java版本:11.0.2、1.8.0_201(如果启用,则未勾选)和1.8.0_191。在System选项卡中只有一个:1.8.0_201(如果启用,则未打勾)。

守护进程似乎是由1.8.0_191创建的,这是因为它与。/gradlew构建指令中的Java版本相同。我仍然想知道这一切是如何工作的:配置Java8似乎促使Gradle找到一些看起来“适合Java8 JDK”的位置。

 类似资料:
  • 维基百科中守护进程的解释 守护进程是一个运行后台进程, 非交互式用户直接控制的在计算机程序 Gradle 守护进程是一个后台进程, 它运行着繁重的构建, 然后在构建等待下一次构建的之间保持自身存在. 这使得数据和代码在下一次构建前已经准备好,并存入内存中. 这显著的提高了后续构建的性能. 启用Gradle守护进程是一种节约构建时间的廉价方式. 强烈建议在所有开发机器上启用Gradle的守护进程.但

  • 我有一个自定义的CI运行器来构建我们的Gradle项目。我们面临的问题是Gradle守护进程很快就会停止,因此每个作业都需要很长时间,因为启动了gradle守护进程: 启动Gradle守护进程时,无法重用3个繁忙和32个停止的守护进程,请使用--status了解详细信息 有没有办法让一些守护进程保持新鲜和就绪?让20个守护进程始终处于就绪状态?

  • 建议在开发环境中使用Gradle的守护进程,不建议在持续集成环境和构建服务器环境中使用守护进程. 守护进程可以更快的构建,这对于一个正坐在椅子前构建项目的人来说非常重要.对于CI构建来说,稳定性和可预见性是最重要的.为每个构建运行时用一个新的,完全孤立于以前的版本的程序,更加可靠。

  • linux计算机上安装的java版本 sudo更新备选方案--配置java /usr/lib/jvm/java-17-oracle/bin/java /usr/lib/jvm/java-17-oracle/bin/java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 我如何制作一个文件. sh,它在java版本1.8下运行我的程序,而不改变java

  • 本文向大家介绍python实现守护进程、守护线程、守护非守护并行,包括了python实现守护进程、守护线程、守护非守护并行的使用技巧和注意事项,需要的朋友参考一下 守护进程 1、守护子进程 主进程创建守护进程 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allow