使用 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\<USER>\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
第二步,点击你的快捷方式sqldeveloper启动Sql developer
第3步,再次弹出窗口询问JRE位置,选择一个合适的。
如果还是不行,再从第1步到第3步再执行一次,记得每次都改JRE位置,直到能用为止。
【讨论】:
以上是关于使用 JDK(64 位)的 SQL Developer 找不到 JVM的主要内容,如果未能解决你的问题,请参考以下文章
转 powerdesigner12.5在64位JDK下连接mysql数据库问题