我正在尝试构建一个jar
文件,其中包含JDBC
MySQL驱动程序。到目前为止,我有一个非常基本的构建。gradle
文件,它使用shadowJar
plugin帮助构建这个jar
文件。
问题是,在运行任何与 Gradle 相关的内容时,我会收到此错误:
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/jdk-11.0.1/bin/java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
当试图用$找到爪哇时,我得到的爪哇
/usr/bin/java
使用$ls-la/usr/bin|grep-i javaj
i接收
lrwxrwxrwx 1 root root 22 Sep 21 11:32 java -> /etc/alternatives/java
lrwxrwxrwx 1 root root 29 Nov 5 21:12 java2groovy -> /etc/alternatives/java2groovy
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root root 25 Nov 5 20:33 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javah -> /etc/alternatives/javah
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javap -> /etc/alternatives/javap
到目前为止,这些信息对我都没有帮助,但我把它留在这里以防万一。
另外,当我使用< code>$ readlink -f $(哪个java)时,我收到:
/usr/lib/jvm/jdk-11.0.1/bin/java
在我看来,这是Gradle试图寻找的合适路径。
最后,在我的. bashrc
中,我将其放入文件中以设置我的JAVA_HOME
:
## JAVA ##
export JAVA_HOME="/usr/lib/jvm/jdk-11.0.1/bin/java"
export PATH=$PATH:/usr/lib/jvm/jdk-11.0.1/bin
知道为什么运行< code>$吗?/gradlew shadowJar将无法找到Java?
根据这个似乎与我的问题类似的问题,我的Gradle版本正在尝试设置自己的JAVA_HOME
路径,我发现它被设置为/usr/bin/JAVA/bin/JAVA
,但它并不存在。
我不会在注释中隐藏解决方案,而是创建一个答案。这稍微有点偏离主题,因为它不仅与如何在Linux / POSIX系统上设置JAVA_HOME
有关,而且还与Gradle包装器的行为如何与给定的Gradle可执行文件不同有关。
以这种方式,它与这个Q有关,但并不完全相同
简而言之:
gradlew
,则会使用JAVA_HOME
>,否则将尝试只运行
而不运行任何
JAVA_HOME
。它将记录到控制台上,说明这一点,并且它实际上无法继续
JAVA_HOME
始终应设置为解析为目录而不是文件的路径在这种情况下,JAVA_HOME
被设置为实际的JDKJava可执行文件,并且对于Linux的替代方案(多个软件包和软件包版本如何满足系统需求)以及这些方案如何与JAVA_HOME
一起工作存在一些混淆(大部分混淆是我误解了这个问题!)
这意味着 Gradle 包装器(在本例中)试图调用 /usr/lib/jvm/jdk-11.0.1/bin/java/bin/java
(注意“bin/java”的双重引用)作为JAVA_CMD
当然不存在。
一旦我们将JAVA_HOME
设置为预期的JDK位置,Gradle Wrapper就会成功运行。
AFAIK,替代系统没有任何便利来提供对底层JDK位置的类似JAVA_HOME的引用。我想可以通过编写alternatives
命令的输出脚本来获取当前安装的和活动的JDK位置。
我正在尝试构建一个文件,该文件包含的。到目前为止,我有一个非常基本的文件,它正在使用插件来帮助构建这个文件。 问题是,当运行与Gradle相关的任何内容时,我会收到以下错误: 尝试使用定位Java时,我得到了 并且使用接收 到目前为止,这些信息都对我没有帮助,但我把它留在这里以防万一。 此外,当我使用时,我会收到: 在我看来这是Gradle想要寻找的合适路径。 最后,在我的中,我将其放入文件中以设
我正在使用gradle来构建和测试我的应用程序。我使用命令 但是当从eclipse中运行时,测试工作完美,当使用gradle运行时失败。我的测试定义如下,它找不到的属性文件在这两个文件夹中: /home/user/Development/git/myproject/src/main/java/com/mycompany/config/home/user/Development/git/myproj
当我从命令行运行我的使用Flyway的Spring Boot·科特林应用程序时,它似乎可以工作,但从IntelliJ运行时却失败了。我创建了一个复制这个问题的最小样本项目:https://github.com/pupeno/notflying 我从IntelliJ得到的错误是没有找到迁移: 据我所知,迁移就在那里,并且命名正确: 运行它的IntelliJ配置如下所示: 我补充说: to 和尝试从
我刚刚下载了Eclipse并尝试运行它,它给了我这个错误消息: 错误:打开注册表项'Software\JavaSoft\Java运行时环境 到我得到: java版本“1.8.0_231” Java(TM)SE运行时环境(构建1.8.0_231-B11) Java HotSpot(TM)64位服务器VM(构建13.0.1+9,混合模式,共享) 我使用的是Windows 10 Pro EclipseI
问题内容: 我在本地计算机上使用创建了一个新的Rails项目,但是当我尝试启动服务器时,我得到了:找不到JavaScript运行时。请参阅以获取可用运行时列表。() 注意:这与Heroku无关。 问题答案: 安装诸如nodejs之类的javascript运行时库可以解决此问题 要在ubuntu上安装nodejs,可以在终端中键入以下命令: 要在使用yum的系统上安装nodejs,请在终端中键入以下
问题内容: 通常,我可以使用 npm 安装库,但是今天在安装yeoman时遇到了此错误。请帮助找出根本原因。 我查看了文件夹: C:\ Program Files \ nodejs \ node_modules \ npm \ bin \ 但看不到 node_modules 文件夹作为描述的错误。 我也尝试找到 npm-cli.js 并查看它实际上在 问题答案: 事实证明,问题出在系统变量中节点的