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

Gradle在运行cordova android build时使用了错误的JAVA_HOME

穆德海
2023-03-14

操作:我遇到了这个问题,似乎处理了同样的问题,我有。不幸的是,我的usr/bin/gradle文件中没有export java_home=/usr/lib/jvm/default-java行。

我的错误显示java_home=/usr/lib/jvm/java-7-openjdk-amd64/jre

但是echo$JAVA_HOME返回/usr/lib/jvm/java-8-openjdk-amd64/jre

我尝试在真实的JAVA_HOME和gradle试图使用的一个符号链接之间创建符号链接,但gradle试图使用的一个符号链接不是真实的,因此我得到错误ln:failed to create symbolic link'/usr/lib/jvm/java-7-openjdk-amd64/jre':No such file or director

我试着在gradlew文件周围挖掘,发现了我认为可能是违规代码,但我不是100%确定它是如何工作的,而且当我编辑文件并执行cordova run android时,我的所有更改都被抹掉了。

这是我在Gradlew找到的代码:

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

我的完整错误报告:

Running command: /home/grant/Development/Projects/ACA/hooks/after_prepare/icons_and_splashscreens.js /home/grant/Development/Projects/ACA
Running command: /home/grant/Development/Projects/ACA/hooks/after_prepare/update_platform_config.js /home/grant/Development/Projects/ACA
ANDROID_HOME=/home/grant/Development/Android
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre
No target specified, deploying to device '05157df5a3d39408'.

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-7-openjdk-amd64/jre

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

ERROR running one or more of the platforms: Error code 1 for command: /home/grant/Development/Projects/ACA/platforms/android/gradlew with args: cdvBuildDebug,-b,/home/grant/Development/Projects/ACA/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true
You may not have the required environment or OS to run this project

共有1个答案

郗奇玮
2023-03-14

首先,Java home应该看起来像/usr/lib/jvm/java-8-oracle,没有“jre”部分。其次,它应该放在/etc/profile文件中:

export java_home=“/usr/lib/jvm/java-8-oracle”

导出路径=$JAVA_HOME/bin:$PATH

 类似资料:
  • 我正在尝试使用Spock运行geb测试。我已经在groovy脚本中编写了所有内容,该脚本位于中,如下所示

  • 问题内容: 我正在使用gradle作为JavaFX插件。即使在 distribution /下 构建和运行可执行文件之后,一切都可以完美运行,但只有一类: 为了多种目的,我创建了以下对象: 在IDE中运行该程序没问题,一切正常。但是,如果我构建并尝试运行.exe文件,则会得到以下-StackTrace: 我真的不明白。怎么可能找不到这个类,而我所有其他的类却都找不到呢? 我的build.gradl

  • 我得到了这个错误: 我在pom中添加了这些依赖项。xml。我已经检查了stackflow的类似实现,并进行了干净的安装。我的项目正在生成文件,但运行测试时出现错误。我正在试着穿越日食。 我使用PowerMockRunner运行java类,并使用annotation InjectMock注入测试类。然后使用MockStatic方法模拟静态类。此外,我还添加了PrepareForTest注释,并添加了

  • 问题内容: 我在gradle中运行测试时遇到问题。我知道我的gradle配置可以在其他机器上运行,但是不幸的是我的不行。我们有junit test和testNG,当尝试执行时,它们都产生如下的stacktrace: 它将连续产生此错误并带有不同的编号(Gradle Worker 2,Gradle Worker 3等)。有没有人遇到过类似的问题? 我正在使用gradle 1.6。 编辑:我忘了告诉我

  • 嗨,我试图用gradle设置我的intelliJ。 IntelliJ创建并使用项目。中的iml。idea \模块目录。 当我将gradle与idea插件一起使用时,它会生成一个项目。项目根目录中的iml。如何说服gradle插件使用正确的iml文件? 我使用Gradle 3.5和IntelliJ 2017.1.4

  • 当尝试使用gradle从Jenkins构建一个android应用程序时,我得到以下错误: 但是,当我检查JAVA_HOME变量时,我得到: 运行。 为什么Gradle会找到