如何从批处理脚本检查Java安装?

2023-12-21

我需要编写一个批处理脚本来查找是否安装了Java,如果安装了,那么在什么路径下? 我觉得它必须是类似这样的:

for /f %%j in ("java.exe") do (
   set JAVA_HOME=..........
)

但我不明白。

附:它必须与带有空格两个的路径一起使用。就像java被安装到“Program Files”中一样。

Thanks.


使用 reg[.exe] 您可以查询系统上安装的可能的 JRE 候选者。可能没有,也可能有几个。

在测试设置中,在命令 shell 内运行:

reg query "HKLM\Software\JavaSoft\Java Runtime Environment"

我得到三个结果行,其中第一行是CurrentVersion REG_SZ 1.6

以此为基础,查询


reg query "HKLM\Software\JavaSoft\Java Runtime Environment\1.6\"  

给我JavaHome REG_SZ C:\Program Files\Java\jre6

它比扫描文件系统来查找 java 二进制文件要高效得多。

这是在 Windows XP 32 位虚拟安装下进行测试的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从批处理脚本检查Java安装? 的相关文章

  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • 外部硬件指纹扫描仪和 Android 设备集成

    我想建立一个android像员工考勤这样的应用程序使用fingerprint scanner 我想知道 是否可以使用外部硬件设备进行指纹识别 扫描 如何将Android应用程序与外部硬件finger集成 打印扫描设备 如何从外部硬件设备获取
  • 在多个不同线程之间共享变量

    我想在多个线程之间共享一个变量 如下所示 boolean flag true T1 main new T1 T2 help new T2 main start help start 我想分享flag在主线程和帮助线程之间 这是我创建的两个不
  • Java RMI 通过互联网

    我正在用 Java 开发一个游戏 使用 RMI 进行所有网络通信 RMI 允许我调用服务器上的方法 但这对我来说还不够 我还希望服务器能够在连接的客户端之间传播消息 我的客户端查找服务器 它的接口扩展了远程 并在其上注册 它允许服务器知道谁
  • 在 ElasticSearch API 应用程序中找不到 NodeBuilder

    我正在尝试实现 Elasticsearch API 我的系统接受 nodeBuilder 时出现错误 这是代码 import org elasticsearch action index IndexResponse import org e
  • MySQL 中电话号码的最佳数据类型是什么?它的 Java 类型映射应该是什么?

    我正在将 MySQL 与 Spring JDBC 模板一起用于我的 Web 应用程序 我需要存储仅包含数字的电话号码 10 我对使用数据类型的数据类型有点困惑 MySQL 中最适合它的数据类型是什么 为此 Bean POJO 类中的 Jav
  • 二维数组中的寻路

    假设我有这个二维数组地图 0 0 0 0 7 1 1 1 1 1 1 1 1 0 7 7 7 7 1 1 1 24 1 1 1 1 0 7 24 24 24 24 24 24 24 1 1 3 1 0 7 23 23 23 23 23 23
  • Netflix Archaius 动态配置

    我正在将 Hystrix 集成到现有项目中 并且希望从 xml 文件中读取配置值 而不是使用配置管理器提供配置属性 当 xml 文件中的值更新时 我希望 Hystrix 配置在运行时更新 这是我遵循的指南 https github com
  • 如何在批处理文件中测试当前驱动器号?

    我正在尝试编写一个批处理文件 该文件获取运行批处理文件的驱动器号 并使用它的 IF 语句 例如如果字母是M 则会跳转到标签 mSection 这可能吗 您可以使用 d0 来获取驱动器号 像这样的东西 IF d0 M CALL mSectio
  • 运行Java程序时出错

    我正在尝试使用 netbeans 运行我的 java 程序 但收到此错误 有什么建议吗 Exception in thread AWT EventQueue 0 java lang NullPointerException at javax
  • java.util.Objects 与Optional 哪个更可取?

    The java util Objects http download java net java jdk9 docs api java util Objects html类通过许多新方法进行了扩展 对象 requireNonNullEls
  • Spring Boot,使用 EhCache 进行缓存

    我需要在我的应用程序中缓存一些数据 我正在考虑使用 Ehcache 我有几个问题 Ehcache需要另外一台服务器吗 我需要其他客户端来使用 Ehcache 吗 Ehcache 如何与多个实例配合使用 是否有可能使用 Ehcache 创建类
  • 使用 Hibernate 作为 ORM 机制的 Web 应用程序中的 L1 和 L2 缓存有什么区别?

    我只想要一些有关使用 L1 缓存和 L2 缓存的标准用途的一般信息 我很好奇 因为我正在研究使用赤土陶器作为二级缓存的系统 并且我发现它也有一级缓存 L1 缓存是每个 Hibernate 会话都存在的缓存 并且该缓存不在线程之间共享 该缓存
  • 与 Java 中的同步块相比,新的 Lock 接口有什么优势?

    与 Java 中的同步块相比 新的 Lock 接口有什么优势 您需要实现一个高性能缓存 允许多个读取器但单个写入器保持完整性 您将如何实现它 锁的优点是 让他们公平是可能的 可以使线程在等待 Lock 对象时响应中断 可以尝试获取锁 但如果
  • 如何在 groovy 中将输出重定向到 stderr?

    我正在寻找一种将 groovy 脚本中的输出重定向到 stderr 的方法 catch Exception e println Want this to go to stderr 就在我的脑海中 你不能做一些自我接线吗 def printE
  • 如何获取嵌套类型内部结构的所有类型?

    我有一个函数如下 public void park List
  • 更改 Logger 实例的全局设置

    我在用着java util logging Logger http download oracle com javase 1 4 2 docs api java util logging Logger html作为我的应用程序的日志引擎 每
  • 如何提高QNX6下Eclipse IDE的性能

    我们在 VMWare 环境中通过 QNX6 运行 Eclipse 速度非常慢 Eclipse 是这样启动的 usr qnx630 host qnx6 x86 usr qde eclipse eclipse data root workspa
  • 在同一项目上使用 Eclipse 和 NetBeans

    Eclipse 是一个非常棒的编辑器 我更喜欢使用它 但是缺少 Eclipse 的 GUI 设计工具 另一方面 NetBeans 非常适合 GUI 设计 在同一项目中使用 NetBeans 进行 GUI 设计和 Eclipse 进行其他所有
  • 在 Eclipse Testrunner 中使用名称的 ParameterizedTest

    当您使用 Eclipse TestRunner 运行 JUnit 4 ParameterizedTest 时 图形表示相当愚蠢 对于每个测试 您都有一个名为 0 1 ETC 是否可以进行测试 0 1 等显式名称 实施一个toString测试

随机推荐

  • “./docker-compose.yml”中的版本不受支持。您可能会看到此错误,因为您使用了错误的 Compose 文件版本

    这是我的 docker compose yml 文件 version 3 1 services a image tutum hello world b image tutum hello world secrets id my passwo
  • 当 facebook 应用程序未安装问题时,在 android 中使用 facebook sdk 登录

    我已经在 Android 应用程序中实现了通过 facebook 登录 当我的设备上安装了 facebook 应用程序时 它工作正常 卸载应用程序后 当通过 facebook 登录时 它显示 facebook 登录屏幕 授予应用程序权限后
  • 在 MSSQL 中处理加密数据的最佳实践

    我的用户数据库中有一些数据 我希望对其进行加密 大多数数据都需要在请求时解密 但也有一些密码可以保持加密状态 过去我们会使用密码比较但我相信这现在已经过时了 我已按照步骤操作here http www kodyaz com articles
  • 为什么 Node.js 无法提供 .woff 文件

    我下载了 woff由于中国的某些网络原因 来自 Google 网络字体的文件 之前我尝试过 font face那个在Github 页面 http jiyinyiyong github com she bin 它有效 但这一次我花了一个小时才
  • 更新 Autofac 后出现奇怪的异常

    我之前有一个MVC4应用程序 我已经更新了 Autofac 的版本 一切正常 现在我遇到了这个奇怪的异常 请帮忙 Method not found Autofac Builder IRegistrationBuilder 3 Autofac
  • C++ lambda 表达式 - 编译器如何解释它们?

    我刚刚开始学习 C 11 中的新功能 我正在阅读 C Primer Stanley Lippman 中有关 lambda 的内容 并正在尝试使用它们 我尝试了以下代码 auto func gt int int c 0 return gt i
  • Null FragmentTransaction 被传递给 TabListener.onTabSelected()

    我使用此处提供的示例代码将导航选项卡添加到操作栏 http developer android com guide topics ui actionbar html http developer android com guide topi
  • 如何为异步等待调用创建包装器?

    据我所知 没有内置 或框架扩展 支持ConnectAsync AcceptAsync SendAsync ReceiveAsync等等 我将如何编写自己的包装器 该包装器将受到异步等待机制的支持 例如 我当前的代码处理ReceiveAsyn
  • Java 用 '(撇号/单引号)和 \(反斜杠)一起替换问题

    我好像遇到问题了我有一个查询字符串 其中的值可以包含单引号 这将破坏查询字符串 所以我试图做一个替换来改变 to 这是示例代码 This is it replace 其输出仍然是 This is it 它认为我只是在为引用做一个转义字符 所
  • 未能找到目标 Vuzix Corporation:Vuzix M300 SDK:23

    我正在尝试为 Vuzix M300 智能眼镜开发应用程序 我已经通过 Android SDK Manager 安装了 Vuzix SDK 我已遵循 Vuzix 文档中提到的所有步骤 我还将编译 SDK 版本设置为 Vuzix M300 SD
  • 你调用的对象是空的

    当我在 NUnit 中运行这个程序时 出现错误 你调用的对象是空的 虽然这不是原始程序 但我也遇到了类似的错误 任何帮助表示赞赏 异常发生于 driver Navigate GoToUrl http www yahoo com 程序 usi
  • 逐行将 .txt 读取到批处理变量中

    我有一个批处理脚本 可以将 ping 发送到某些 PC 可用的 PC 被写入文本文件中 因此每台 PC 都站在自己的行中 另一个批处理脚本将一些文件复制到 PC 目前它尝试复制到所有 PC 现在我想修改脚本 以便批处理读出文本文件并仅复制到
  • 图结构中拥有的指针

    在 Rust 社区的慷慨帮助下 我成功地获得了使用托管指针组装的拓扑数据结构的基础 这一切结合得相当好 总的来说我对 Rust 非常兴奋 然后我读了这个post http pcwalton github io blog 2013 06 02
  • reflog 过期并 gc prune 后推送到原点

    我使用以下命令删除了本地存储库中的一些无法访问和悬空的提交 git fsck unreachable dangling no reflogs git reflog expire expire now all git gc prune now
  • 如何使用react js在Fetch API中设置超时

    我在 React js 中使用 fetch post 方法 当向后端发送请求时 需要 7 分钟才能提供响应 然后前端会自动超时 你能帮我解决一下如何在 fetch 方法中设置 10 分钟的时间 让前端等待响应 并且只有当后端花费超过 10
  • 前缀/后缀增量运算符

    我想确保我正确理解按值传递与按引用传递 特别是 我正在查看增量的前缀 后缀版本 对象的运算符 假设我们有以下课程X class X private int i public X i 0 X operator i return this pr
  • 单选按钮在 Chrome 中显示不需要的白色背景。火狐浏览器没问题

    在 Google Chrome 中 单选按钮会在圆圈周围显示不需要的白色背景 这在 Firefox 中并未按预期显示 Please check these images 她是有问题的页面的直接链接 在 Firefox 和 Chrome 中检
  • 是否存在 setfable nthcdr 实现?

    我正在使用 clisp 我想知道是否有任何带有可设置版本的 nthcdr 的库可供我使用 你可以用以下方法解决它 let lst list 1 2 3 4 n 2 setf cdr nthcdr 1 n lst 5 6 7 l gt 1 2
  • 改装 400 错误请求

    这是我用于网络调用的函数 private void getSample Log d getSample OkHttpClient client new OkHttpClient HttpLoggingInterceptor intercep
  • 如何从批处理脚本检查Java安装?

    我需要编写一个批处理脚本来查找是否安装了Java 如果安装了 那么在什么路径下 我觉得它必须是类似这样的 for f j in java exe do set JAVA HOME 但我不明白 附 它必须与带有空格两个的路径一起使用 就像ja