我正在寻找一个批处理文件片段,它以某种方式读取Windows注册表并检测Windows系统上的哪个Java JDK,然后询问用户他们想要使用哪一个并记住该选择.
这是我到目前为止......需要一些修改.这个脚本只找到第一个JDK ......它不处理倍数.
@echo off
SETLOCAL EnableDelayedExpansion
:: findJDK.bat
start /w regedit /e reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
type reg1.txt | find "JavaHome" > reg2.txt
if errorlevel 1 goto ERROR
for /f "tokens=2 delims==" %%x in (reg2.txt) do (
set JavaTemp=%%~x
echo Regedit: JAVA_HOME path : !JavaTemp!
)
if errorlevel 1 goto ERROR
echo.
set JAVA_HOME=%JavaTemp%
set JAVA_HOME=%JAVA_HOME:\\=\%
echo JAVA_HOME was found to be %JAVA_HOME%
goto END
:ERROR
echo reg1.txt is: & type reg1.txt
echo reg2.txt is: & type reg2.txt …Run Code Online (Sandbox Code Playgroud) 我将此行添加到/home/{user}/.bashrc文件中:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Run Code Online (Sandbox Code Playgroud)
但是当我想在eclipse中运行一个ant文件时出现了这个错误:
BUILD FAILED
/home/bakish/Work/new/hadoop-0.20.2/build.xml:316: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "/usr/lib/jvm/java-6-openjdk/jre"
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
谢谢
我有一个有趣的问题。在 Linux 上使用 Jenkins 构建 master,并拥有一个 Mac Mountain Lion 节点(此处描述的内容在 Linux 和 Windows 上运行良好,但仅在这台 Mac 计算机上使用 SSH 连接和 Java Web Start 时出现问题。
在客户端机器上:
但 Jenkins 总是在启动作业后设置另一个 JAVA_HOME ($JENKINS_HOME/tools/JDK/jdk1.6),但该文件夹是空的(在 Linux 节点上,应该在该文件夹内部署 JDK,但在 Mac 上则不然)。
有谁知道是否有可能改变詹金斯的这种行为?在 Jenkins 配置中设置自定义 JAVA_HOME 、使用 .profile 文件、在作业中动态导出变量等都没有帮助。
我使用的是最新版本1.477
2012 年 8 月 15 日更新和修复
因此,在 Mac 上运行作业时会出现一行内容:
跳过 JDK 安装:未知的 CPU 名称:mac os x
关键是 Oracle 没有发布适用于 Mac 的 JDK,这是一种“功能”。
我为解决此问题所做的步骤是:
我正在尝试使用 debug 命令在 Ubuntu Linux 上运行 Catalina。我收到以下错误:
JAVA_HOME should point to a JDK in order to run in debug mode.
/bin/sh died with exit status 1
Run Code Online (Sandbox Code Playgroud)
但是,我尝试将 JAVA_HOME 设置.bashrc为以下所有内容:
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/bin"
export JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-i386/jre/bin/"
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我正确地设置了zkServer.cmd在Windows上启动Zookeeper时出现"JAVA_HOME设置错误"错误!当我发出%JAVA_HOME%我得到的C:\Program Files\Java\jdk1.7.0_45是java instalation的正确目录.
我怀疑问题是由于程序文件中的空间,因为当我发出%JAVA_HOME%\bin\java.exe(zkEnv.cmd中使用的命令)时,我得到了:
'C:\Program' is not recognized as an internal or external command, operable program or batch file.
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
windows command-line environment-variables java-home apache-zookeeper
每当我尝试在离子上构建我的android平台时,我会被错误表示欢迎,声明我的JAVA_HOME无效,而它指向正确的路径,如下所示.我尝试删除并重新添加平台并重新添加环境变量中的路径,但似乎没有任何效果.我一直试图解决这个错误几天了.请帮忙!
输入:
ionic build android
Run Code Online (Sandbox Code Playgroud)
输出:
[Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: C:\Program Files\Java\jdk1.7.0_75;
]
ERROR building one of the platforms: Error: C:\myApp\platforms\android\cordova\b
uild.bat: Command failed with exit code 2
You may not have the required environment or OS to build this project
Error: C:\myApp\platforms\android\cordova\build.bat: Command failed with exit co
de 2
at ChildProcess.whenDone (C:\Users\com\AppData\Roaming\npm\node_modules\cord
ova\node_modules\cordova-lib\src\cordova\superspawn.js:131:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16) …Run Code Online (Sandbox Code Playgroud) 我将java 1.7从1.8降级,但我仍然看到1.8 java -version.我改变了,path并JAVA_HOME改为1.7作为
JAVA_HOME: C:\Program Files (x86)\Java\jdk1.7.0_79
PATH: C:\Program Files(x86)\Java\jdk1.7.0_79\bin
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我在我的道路上也有这个:C:\ProgramData\Oracle\Java\javapath我相信保留这个1.8版本.当我从路径上取下它时,我得到这样的信息:C:\Program Files\Java\jre7\lib\amd64\jvm.cfg.我不知道发生了什么事.任何建议都会非常有帮助.
我需要在 Java 中获取 JAVA_HOME 和 CATALINA_HOME 环境变量的值。我正在运行一个 JAR(不是 WAR)并且在System.getProperties()我只能找到"java.home".
我在这里阅读了一些关于它的其他问题,尝试了它们,但无法使它们起作用 - 我得到了不同的例外或null结果只是价值。
我记得多年前使用JNA做过类似的事情,但那是在 Windows 的 16 位时代。我能找到的最新JNA jar 是 2011 年的,在 intelliJ 工作中运行它,但是当我在 maven 中进行构建时,我会收到关于找不到某些类的错误。
我将继续调查JNA 的方向,很高兴收到任何帮助和/或想法。我认为我只是缺少正确的Maven 依赖项。
到目前为止,这是我班级的源代码:
// C:\devtools\java-external-jars\jna-4.2.2\jna-platform-4.2.2.jar
import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.List;
import java.util.prefs.Preferences;
public class WinRegistryHelper {
public static final String SYSTEM_ENVIRONMENT_KEY_PATH = "SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment"; …Run Code Online (Sandbox Code Playgroud) 我的 docker 容器需要设置 JAVA_HOME。我已将其添加到 Dockerfile 中,如下所示
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre
Run Code Online (Sandbox Code Playgroud)
但是,这是值的硬编码。有没有办法可以从图像本身动态获取这个值
我有intellij-idea安装.虽然我已经设置了JAVA_HOME环境变量,引用了"C:\ Program Files\Java\jdk1.8.0_45"但是当我尝试运行它时,我最终得到以下错误:
failed to create JVM: error code -1. JVM path: "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.2\jre64\" if you have a 64-bit jdk installed, define a JAVA_HOME variable in Computer> system variables> system settings> environment variables.
Run Code Online (Sandbox Code Playgroud)
Windows 7_ 64位