使用 JDK(64 位)的 SQL Developer 找不到 JVM

Posted

技术标签:

【中文标题】使用 JDK(64 位)的 SQL Developer 找不到 JVM【英文标题】:SQL Developer with JDK (64 bit) cannot find JVM 【发布时间】:2015-09-19 19:09:02 【问题描述】:

我只是浪费了一个上午试图让 SQL 开发人员处理我当前的设置:

操作系统:通过 Parallels 在 Mac 上运行的 Windows 8.1 虚拟机。 未安装 oracle 客户端或即时客户端 未安装 Java

可重现的步骤是

我下载了带有 JDK(全 64 位)的 SQL Developer for Windows 并将其解压缩到 C:/Program Files/。 我双击了 C:/Program Files/sqldeveloper/sqldeveloper.exe

我收到以下消息:

无法启动 Java 虚拟机 位于路径: C:/Program Files/sqldeveloper/jdk/jre/bin/server/jvm.dll

有人可以帮帮我吗?我还尝试先安装 Java 1.8(64 位),然后安装没有 Java 的 SQL 开发人员版本。这也不起作用。当我选择 JDK home 的位置时,它还发送了一条错误消息,说它找不到我所说的任何 JVM。雪上加霜,每次我按照这个程序操作时,熊猫杀毒软件都会告诉我 sqldeveloper 被感染,删除文件并鼓励我重新启动。

有人可以帮帮我吗?我会很感激的。

非常感谢您

【问题讨论】:

似乎重复了***.com/questions/24390562/… 虽然相似,但两个问题并不相同。我也尝试了他们建议的所有方法,但仍然出现错误。请注意,它会找到 jdk。它说它无法启动它 它是否表明为什么它无法启动它 - 是否有详细信息按钮或日志?您的 VM 内存设置是否允许 SQL Developer 配置的 JVM 大小?只是一个想法,可能是那个配置有问题。 (而且不是很相关,但你知道你可以直接在你的 Mac 上运行 SQL Developer?) 不幸的是,没有详细信息按钮,我找不到任何日志。关于您的评论,我知道,但我正在编写的应用程序只能在 Windows 上运行,我正在为完整的 Windows 环境准备设置 好的,您可以从 Parallels 添加您的 Windows VM 内存分配设置吗? (从控制中心的配置->常规) 【参考方案1】:

我遇到了同样的问题,并通过将MSVCR100.dll 文件从sqldeveloper\jdk\jre\bin 复制到sqldeveloper\sqldeveloper\bin 文件夹来解决它。

感谢 Erik Anderson 来自 SQL Developer failed to start


请注意,不同版本的 SQL Developer 需要不同版本的MSVCR*.dll。下面的各种 cmet 提供了适合他们的版本。

【讨论】:

该死的。这也对我有用!你怎么想的都超出了我的想象。 Funny 似乎很容易解决,但我仍然需要这样做才能正常工作。使用 SQL Developer 4.2 以防万一它抓住了一些人,我下载了 SQL 3.0,文件名是MSVCR71.dll,但复制和粘贴的东西仍然有效 我从 c:\windows 找到并复制了 dll,因为我安装的 sql developer dint 不包含 jre。 我需要顶部复制这些文件:msvcr71.dll, msvcrt.dll【参考方案2】:

中创建目录bin
D:\sqldeveloper\jdk\

复制

msvcr100.dll

来自

D:\sqldeveloper\jdk\jre\bin

D:\sqldeveloper\jdk\bin

【讨论】:

谢谢 :) 我被困了一段时间。【参考方案3】:

我在打开 sql developer 时遇到了类似的问题,它给了我以下错误

由于缺少文件 MSVCR100.DLL

,无法启动 Java 虚拟机

我使用的是 JDK 8 和 windows 64 位版本。我还下载了没有 jdk/jre 选项的 oracle sql 开发人员软件,因为我的系统中已经安装了 jdk 8。双击 sqldeveloper.exe 文件时,它要求我输入 JDK 的路径。我给了路径,然后它给了我 JVM MSVCR100.DLL 错误。

我在 C:\Program Files\Java\jdk1.8.0_271\jre\bin 里面查了一下,没找到 MSVCR100.DLL 文件。

然后搜索了microsoft forum,了解到这个dll是64Bit: Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)的一部分。

安装上述 microsoft 包后,我可以在 C:\Windows\System32 下找到 dll

然后做了以下,

复制了 C:\Windows\System32\msvcr100.dll --> C:\Program Files\Java\jdk1.8.0_271\jre\bin

这解决了错误,当它找到正确的 dll 时,我能够打开 Oracle SQL 开发人员。

【讨论】:

这解决了我在 sqldeveloper 版本 18.4.0.376 中遇到的同样问题【参考方案4】:

如果文件夹sqldeveloper/jdk 不包含文件夹bin, 您可以将文件夹 bin 从文件夹 sqldeveloper/jdk/jre 复制到 sqldeveloper/jdk

【讨论】:

这应该是一条评论 在 oracle 12c 上像 sql developer 4.2 一样工作。 对 sql developer 版本 3.2.20.09 也很有吸引力。【参考方案5】:

根据问题,是否JAVA主路径设置不正确或缺少msvcr100.dll文件,请按照以下方法解决问题:

1.未正确设置 JAVA 主路径的问题:

按照以下步骤操作:

转到安装 SQL Developer 的目录。 打开/bin 目录。 在任何编辑器中打开sqldeveloper.conf 进行编辑。 删除以“SetJavaHome”开头的整行 如果您看到:SetJavaHome ../../jdk,这可能是错误的配置文件。 相反,尝试类似:C:\Users\$username\AppData\Roaming\sqldeveloper\4.2.0\product.conf 或:C:\Users\$username\Application Data\sqldeveloper\4.2.0\product.conf 保存并关闭文件 再次启动SQL Developer。 提供 JAVA_HOME 路径,例如,C:\Program Files (x86)\Java\jdk1.8.0_92 重要提示:不要包含后缀\bin\java.exe 重要提示:如果运行 32 位 SQL Developer,请务必使用 32 位 JVM。 (同样适用于 64 位。)

2。缺少 msvcr100.dll 文件的问题:

OP 在下面的 cmets 中声明如下:

如果我先安装 jdk,然后再安装没有 Java 的 sql developer,它 告诉我无法启动位于路径的 Java 虚拟机: C:/Program Files/Java/jdk1.8.0_45/bin/msvcr100.dll

所以,错误信息很清楚:

Unable to launch the Java Virtual Machine Located at path: 
C:/Program Files/Java/jdk1.8.0_45/bin/msvcr100.dll

按照以下步骤操作:

复制:

MSVCR100.dll

来自:

sqldeveloper\jdk\jre\bin

到:

sqldeveloper\sqldeveloper\bin

然后重新启动 SQL Developer。

什么是 msvcr100.dll 文件?

msvcr100.dll 是 Microsoft Visual C++ 的一部分,需要运行使用 Visual C++ 开发的程序。问题中的 SQL Developer 等一些应用程序需要 SQL Developer 安装文件夹中的文件。

有哪些方法可以解决这个问题?

将其从 Windows 系统文件夹复制到应用程序的安装文件夹应该可以解决问题。此外,您可以根据 32/64 位要求将 PATH 添加到 msvcr100.dll 文件。如果本地文件本身被删除或损坏,则可以在线下载或通过 Microsoft Visual C++ 2010 Redistributable 软件包重新安装。根据软件使用正确的版本很重要。 32位软件使用32位dll文件,64位软件使用64位dll文件。

【讨论】:

对了,我安装了sqldeveloper-4.1.1.19.59-x64.zip (with java 1.8) JAVA_HOME 环境变量是否设置正确?指向java所在的Oracle安装目录。 正如我所说,我没有安装 Oracle。我相信你不需要它来安装 SQL Developer 您不需要安装任何其他Oracle组件; SQL Developer 客户端,并且是自包含的(除了JDK)。而且它不使用环境 JAVA_HOME,因为它存储了自己的路径。 谢谢亚历克斯,但我仍然遇到错误。如果我先安装 jdk,然后在没有 Java 的情况下安装 sql developer,它会告诉我无法启动 Java 虚拟机位于路径:C:/Program Files/Java/jdk1.8.0_45/bin/msvcr100.dll【参考方案6】:

在我的 Windows 10 企业版中尝试从 “包含 JDK 8 的 Windows 64 位” zip 文件安装 SQL Developer 时,我遇到了相同的错误消息。

在 Windows 10 中启动最新的 SQL Developer 版本 4.1.3 显示错误:

Unable to launch the Java Virtual Machine Located at path:
C:\Users\<USER>\Downloads\sqldeveloper-4.1.3.20.78-x64\sqldeveloper\jdk\jre\bin\server\jvm.dll

路径存在且有效。

相同的 zip 文件适用于 Windows 7 Professional。

问题是缺少msvcr100.dll

我只是将C:\Program Files\Oracle\VirtualBox\msvrc100.dll 复制到C:\Users\&lt;USER&gt;\Downloads\sqldeveloper-4.1.3.20.78-x64\sqldeveloper\sqldeveloper\bin\,SQL Developer 就开始工作了。

详情可发邮件至Issue running SQL Developer x64 4.1.3 with JDK。

有趣的是,Oracle VirtualBox 团队可以将 dll 包含到安装包中,但 Oracle SQL Developer 团队不能。

【讨论】:

我的 JDK/JRE (新)副本甚至没有附带 msvcr100.dll。我必须从 c\windows\system32\【参考方案7】:

今天我尝试使用 oracle 客户端 64 并连接连接标识符失败,该标识符在 tnsnames.ora file 中定义。我假设尝试使用 SQL Developer 64 位连接 Oracle 32 位服务器。这就是我安装新 jdk x86 并尝试更改 jdk 路径但发生此错误的原因:

试图下载 SQL Developer 32 位,但在site 说捆绑支持 32 位和 64 位取决于安装的 java。

Windows 32 位/64 位:此存档。将在 32 或 64 位上工作 视窗操作系统。您安装的 JDK 的位级别将决定它是否 作为 32 或 64 位应用程序运行。本次下载不包括 需要 Oracle Java JDK。如果不是,您将需要安装它 已经在你的机器上。

我的 java home 是 64 位的。 java home中没有设置新安装的32位jdk。

我需要打开$User_dir\AppData\Roaming\sqldeveloper\version\product.conf

删除行SetJavaHome C:\Program Files\Java\jdk1.8.0_201

开始 sqldeveloper.exe 而不是 sqldeveloper64W.exe

将显示新的弹出窗口并选择 java home 到新的 jdk 版本(我的 32 位):

C:\Program Files (x86)\Java\jdk1.8.0_201

我的错,我把sqldeveloper64W.exe固定到任务栏,为什么我移动光标后出现这个错误是sqldeveloper64W.exe,我尝试点击sqldeveloper.exe,然后我发现我的设置很顺利。

所以请检查它是否也发生在您的系统上。如果sqldeveloper.exe不起作用,请尝试选择sqldeveloper64W.exe

现在我可以使用新设置 SQL 开发人员 32 位模式调用在 tnsnames.ora 中定义的连接标识符。

【讨论】:

【参考方案8】:

这是因为 sqldeveloper.conf 有一个正在使用的 java home 的条目

look at this solution

【讨论】:

正如我所说,这不是问题,因为它找到了 jvm 但无法启动它。熊猫杀毒坚持sqldeveloper64W.exe有病毒【参考方案9】:

我已按照步骤操作,效果很好。

1) 打开位于:\sqldeveloper-3.2.20.09.87\sqldeveloper\sqldeveloper\bin\sqldeveloper.conf 的文件并删除带有 setJavaHome xxx 的行。

2) 现在点击 Sqldeveloper.exe 并浏览 \sqldeveloper-3.2.20.09.87\sqldeveloper\jdk\jre\bin 中的 java.exe

3) 现在应该会启动 SqlDeveloper。

谢谢。

【讨论】:

这里的重点是指向Oracle客户端安装下的java.exe二进制文件,而不是Program Files下的JDK安装。【参考方案10】:

对于 Windows 用户:如果有人下载了非 jre 版本并遇到问题,然后尝试使用 JRE 版本仍然遇到问题,您需要删除“%AppData%\sqldeveloper”中的 SQLDeveloper 文件夹。删除后尝试再次打开 sqldeveloper.exe。

【讨论】:

【参考方案11】:

这看起来您可能没有为您的 Windows 虚拟机分配足够的内存。如果 JVM 配置为使用比可用内存更多(最大)的内存,那么您将收到此类错误消息。

您可以阅读更多关于 SQL Developer 的内存at (that) Jeff Smith's blog。

默认设置似乎仍然是-Xms128m -Xmx800m。我可以通过将 -Xmx 设置为大于我的(物理)PC 中的物理 RAM 来生成类似的错误。因此,使用默认设置,如果没有 800m 的内存分配给 Windows,就会出现问题。这似乎不多,但似乎在推荐窗口based on this knowledgebase article。

虽然您可以尝试减少 product.conf 文件中的 JVM 要求,但如果它确实有效的话,以后可能会导致其他问题。因此,增加您的 Windows VM 内存分配,重新启动,然后尝试再次启动 SQL Developer。

【讨论】:

【参考方案12】:

中创建目录“bin”

D:\sqldeveloper\jdk\ 复制

msvcr100.dll 来自

D:\sqldeveloper\jdk\jre\bin 到

D:\sqldeveloper\jdk\bin

【讨论】:

【参考方案13】:

我知道人们可能会对 youtube 示例皱眉,但这对我有用,而且我遇到了同样的问题 https://www.youtube.com/watch?v=ex1dyu0Px8U

它将指导您为 JDK 添加正确的环境变量。

系统属性>高级>环境变量>路径> \sqldeveloper\jdk\bin 和 \sqldeveloper\jdk\bin\server

【讨论】:

【参考方案14】:

我遇到了同样的问题: 这里的重点是指向Oracle客户端安装下的java.exe二进制文件,而不是Program Files下的JDK安装。

【讨论】:

【参考方案15】:

安装 jdk1.8.0_211 并将 product.conf(位于 C:\Users\\AppData\Roaming\sqldeveloper\19.1.0)中的以下变量设置为 JDK8 主页对我有用

SetJavaHome D:\jdk1.8.0_211

【讨论】:

【参考方案16】:

我正在尝试使用Oracle安装附带的sqldeveloper:

C:\oracle\product\11.2.0\dbhome_1\sqldeveloper

我尝试了这篇文章中的大部分建议都无济于事,所以我从oracle's download page(您必须注册)下载了一个,它要求jdk文件夹的位置(而不是java.exe 的位置)。这对我来说没有任何问题。

【讨论】:

【参考方案17】:

我在C:\Program Files\Java\jdk1.8.0_261\jre\bin 中找不到文件。我的 sqldeveloper 根本没有 jre,所以它对我有用的是将文件从较旧的 Oracle jre 版本复制到 C:\Program Files\Java\jdk1.8.0_261\jre\bin

【讨论】:

【参考方案18】:

第一步,到C:\Users\AppData\Roaming,删除整个文件夹[sqldeveloper]

第二步,点击你的快捷方式sqldeveloper启动Sql developer

第3步,再次弹出窗口询问JRE位置,选择一个合适的。

如果还是不行,再从第1步到第3步再执行一次,记得每次都改JRE位置,直到能用为止。

【讨论】:

以上是关于使用 JDK(64 位)的 SQL Developer 找不到 JVM的主要内容,如果未能解决你的问题,请参考以下文章

tomcat安装 64位系统、32位jdk

JDK_如何查看安装的jdk是32位还是64位?

转 powerdesigner12.5在64位JDK下连接mysql数据库问题

WIN10 64位 JDK的安装

有一个工具在32位JDK的环境可以用,但是在64位JDK的环境就用不了,这是为啥

jdk32位跟jdk64位会冲突吗