我有一台 Windows file.exe
,我需要 Wine 和 Java 来打开它。我不知道如何在 Wine 中安装 Java。当我尝试打开 Java 设置时,它说
Wrapper.CreateFile failed with error 32: Sharing Violation.
它还说
Wrapper.CreateFile failed with error 123: Invalid name. Please Help.
答案1
我发现了问题并找到了解决方案(见下文)。
问题
Windows 目录需要存在:
C:\Users\USERNAME\appdata\LocalLow\Sun
在您的机器上,您很可能有以下目录结构:
/home/USERNAME/.wine/drive_c/users/USERNAME/
*USERNAME 是您的实际用户名
解决方案:
创建子目录
(点击方法)
打开主文件夹
打开 .wine
打开 drive_c
打开 users
创建文件夹 appdata
打开 appdata
创建文件夹 LocalLow
打开 LocalLow
创建文件夹 Sun(控制台/终端)
cd /home/`whoami`/.wine/drive_c/users/`whoami`/ mkdir -p appdata/LocalLow/Sun
*注意:appdata/LocalLow/Sun 区分大小写,因此请严格按照显示内容输入
双击 JRE 可执行文件(我使用的是 32 位,但我相信 64 位也可以。请务必检查 winehq 的网站和您的 Ubuntu 版本以确保无误)
安装吧:)
重要性/相关性
由于有些程序是 Windows 专用的,并且只部分使用 Java,我发现仍然需要解决这个问题。因此,我提供了上述步骤来解决这个问题。
参考
答案2
你不需要 wine 来在 Ubuntu 上运行 Minecraft 启动器,只需执行以下操作即可
- 从 Minecraft 网站下载并保存 jar 文件。
https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar - 从软件中心安装“OpenJDK Java 7”。
- 找到.jar 文件并转到属性中的权限选项卡。
- 点击“允许作为程序执行文件”。
- 转到“打开方式”选项卡并将“OpenJDK Java 7 Runtime”设置为默认值。
- 单击 jar 文件,您就可以开始在 Ubuntu 上玩 minecraft 了 :)
答案3
由于我最近需要为一个改装实用程序执行此操作,因此我认为我应该为此添加 2023 更新(主要是为了方便搜索引擎的搜索)。不,我没有玩 Minecraft,我同意 Cody 对此的回答。
就我而言,我正在玩 GOG 版的 Morrowind,我想让 Mod Organizer 2 mod 管理器 (exe) 打开Esp-快速编辑器jar 文件。此 mod 管理器会创建一个虚拟文件系统,您需要从 mod 管理器中启动任何应用程序才能看到该虚拟文件系统。因此,对于这种特定用例,使用我系统上安装的 jre 是行不通的。我可能还应该注意,我使用的是 Fedora(撰写本文时为 Fedora 38 + wine-8.17 Staging),但据我所知,这些步骤应该与发行版无关。
另外,我也这么做了不是必须drive_c/users/$USERNAME/appdata/LocalLow/Sun
按照另一个答案的建议创建文件夹 - 它由安装程序自动创建。同样,我这样做了不是需要winxp
按照建议使用winehq 应用程序数据库(我WINEPREFIX=/path/to/my/prefix winetricks win10
在安装jre之前已经运行过了)。
首先,尝试正常运行安装程序,会出现原始发帖人提到的错误。截至 2023 年 10 月 / jre1.8.0_381,这一点仍然没有改变(我不记得是否是同一个错误;我认为对我来说实际上是其他问题,但我确实记得正常运行它不起作用)
1. 我下载了离线安装的“jre-8u381-windows-x64.exe”并将其复制到我的前缀下的临时文件夹(例如drive_c/temp
)。
在撰写本文时,这是此页面上的“Windows 脱机(64 位)”链接:https://www.java.com/en/download/manual.jsp
2. 假设我进行的是静默安装,就不需要绘制 GUI(因此出错的可能性会更小),如果我可以关闭其他功能(比如分析),出错的可能性会更小,我查看了安装程序选项的文档这里和这里并使用它来为安装程序创建配置文件。
cd "$WINEPREFIX/drive_c/temp"
printf '%s\n' STATIC=1 AUTO_UPDATE=Disable INSTALL_SILENT=Enable INSTALLDIR='C:\java\jre' NOSTARTMENU=Enable REBOOT=Disable REMOVEOUTOFDATEJRES=0 WEB_ANALYTICS=Disable WEB_JAVA=Disable > install.cfg
unix2dos install.cfg
3. 然后我使用 firejail + wine 以静默方式使用配置文件进行安装,忽略终端上的任何错误
/usr/bin/env WINEPREFIX="/path/to/my/prefix" /usr/bin/firejail --profile=custom12 --whitelist="/path/to/custom/prefix" /usr/bin/wine64 start /D"C:/temp" "jre-8u381-windows-x64.exe" /s /L 'C:\temp\java-install.log' 'INSTALLCFG=C:\temp\install.cfg'
如果您不使用 firejail*,那么这将是:
/usr/bin/env WINEPREFIX="/path/to/my/prefix" /usr/bin/wine64 start /D"C:/temp" "jre-8u381-windows-x64.exe" /s /L 'C:\temp\java-install.log' 'INSTALLCFG=C:\temp\install.cfg'
4. 之后,我确认安装程序已将文件提取到drive_c/java/jre/bin
我在配置文件中指定的位置。然后,我能够使用以下方法从 firejail + wine 成功启动 jar 文件
/usr/bin/env WINEPREFIX="/path/to/my/prefix" /usr/bin/firejail --profile=custom12 --whitelist="/path/to/custom/prefix" /usr/bin/wine64 start /D"C:/java/jre/bin" "java.exe" -jar 'C:\temp\Esp-QuickEditor.jar'
如果您不使用 firejail*,那么这将是:
/usr/bin/env WINEPREFIX="/path/to/my/prefix" /usr/bin/wine64 start /D"C:/java/jre/bin" "java.exe" -jar 'C:\temp\Esp-QuickEditor.jar'
* 对于那些不熟悉 firejail 的人来说,它是一个安全沙盒程序。我--profile=custom12
指出它是wine
软件包附带的配置文件的修改版本(至少在 Fedora 上);您可以用它替换它,--profile=wine
或者编写自己的自定义配置文件并将其放入~/.config/firejail
。我的自定义配置文件只是阻止了一些额外的东西并虚拟化了一个假的主文件夹。