【问题标题】:Isabelle HOL on Windows 10Windows 10 上的伊莎贝尔·霍尔
【发布时间】:2015-08-16 13:59:50
【问题描述】:

我安装了 Windows 10(64 位)。从那以后,Isabelle HOL 不再启动,即使在重新安装后(运行顺利)。错误消息如下:“启动错误:启动 Java VM 时出错”。我测试的两个版本(2013-2 和 2015)都会发生这种情况。 配置文件中指定的 jvm.dll 存在于正确的文件夹中。此外,我在 32 位和 64 位都安装了最新版本 (8.51) 的 Java SDK。 Windows 10 是否存在已知的兼容性问题? Isabelle 曾经使用 Windows 7 和 8。 谢谢你的帮助。

【问题讨论】:

  • Isabelle自带Java安装,所以不使用系统版本。请在 isabelle-users 邮件列表中报告此问题。

标签: isabelle


【解决方案1】:

更新 (150822)

在开发者的邮件列表中,有一个测试版本的链接:

这与 Isabelle2015 的工作方式不同,它如何使用路径执行某些操作,因此它可能会找到 Windows 10 所需的东西,也可能不会。然而,即使它有效,也可能与 Isabelle2015 存在一些不兼容(在定理证明中)。

不管怎样,Isabelle 每年只发布 1 到 2 次,而且我不希望在 4 到 6 个月内发布适用于 Windows 10 的任何特别内容。不过,上面的链接显示 M.Wenzel 可以打包一个测试版本,但他主要在用户的邮件列表上操作。

在下面的批处理文件中,我设置了HOMEDRIVEHOMEPATH,如果您希望.isabelleC:\user 中,则不需要它们。

在此测试版本中,这些设置不会影响我的主路径。似乎也使用了USER_HOME,尽管我的USER_HOME 设置不会使我的批处理文件适用于此测试版本。

无论如何,这个测试版本改变了它发现事物的方式,并且更加适应 Windows,正如函数 File.platform_path 的新行为所示。

它的工作方式非常不同,需要进行足够多的更改,我应该继续使用 Isabelle2015,否则我将与官方版本不同步。)

原创

(Zeroeth:像这样的问题通常会在邮件列表中散列,但我继续向您展示如何使用批处理文件启动 Isabelle,这是我在必须开始之前就开始做的。)

首先,Isabelle 使用的 Java 在这个文件夹中:

Isabelle2015\contrib\jdk\x86-cygwin\jre

为 Windows 进行常规 Java 安装不会改变 Isabelle 使用的 Java。

下面,我给你一个批处理文件和 bash 文件来启动 Isabelle/jEdit,这是使用 Isabelle2015\Isabelle2015.exe 的替代方法。

就我自己而言,我所做的是将上面显示的 32 位 jre 文件夹手动替换为 jre-8u45-windows-x64.tar.gz 中的 jre。 (我重命名了旧的 32 位文件夹。最新的 Java tar 文件可以在 at the download page 找到。)

因此,如果我尝试使用 Isabelle2015.exe 启动 Isabelle,我还会收到一个弹出窗口,上面写着“启动错误,启动 Java VM 时出错”,但在 Windows 8.1 上使用批处理/bash 组合启动 Isabelle 对我有效.

我在下面向您展示的内容可能无法解决您的问题,但我猜 Isabelle2015.exe 必须从操作系统获取一些信息才能正常工作,也许这在 Windows 10 中有所改变:

https://lists.cam.ac.uk/mailman/htdig/cl-isabelle-users/2014-December/msg00033.html

您将下面的批处理和 bash 文件放在您拥有或想要您的 .isabelle 文件夹的文件夹中。将下面的 ISAHOME 更改为您的 Isabelle 分布所在的位置。 PATH 需要路径中的 Cygwin bin,以及我在批处理文件中设置的 isabelle 的路径。

文件:start-isabelle.bat

:: Isabelle2015.exe uses these directly. Setting HOME or USER_HOME doesn't work
set HOMEDRIVE=%~d0
set HOMEPATH=%~p0

:: Cygwin uses HOME, and this is how HOME is set in Cygwin-Terminal.bat
set HOME=%HOMEDRIVE%%HOMEPATH%

:: ADD PATHS: 'cygwin/bin' to start terminal, 'Isabelle2015/bin' for 'isabelle'
set ISAHOME=E:\E_2\d ev\Isabelle2015
set PATH=%PATH%;%ISAHOME%/contrib/cygwin/bin;%ISAHOME%/bin;

set CHERE_INVOKING=true
::MINTTY CONSOLE
start /MIN mintty.exe -i /Cygwin-Terminal.ico "%~dp0start-isabelle.bash"

:: REGULAR WINDOWS CONSOLE
::bash --login -i "%~dp0start-isabelle.bash"

文件:start-isabelle.bash

#!/usr/bin/env bash
#
isabelle jedit -l HOL

使用 64 位 Java,我可以通过在 .isabelle\Isabelle2015\etc\settings 中进行此更改来增加 Isabelle 使用的内存大小:

JEDIT_JAVA_OPTIONS="-Xms1g -Xmx4g -Xss4m"
  or
JEDIT_JAVA_OPTIONS="-Xms1024m -Xmx4096m -Xss4m"

对于 32 位 Java,当我这样做时,Isabelle 将启动但随后终止。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多