1

我正在修复一辆古董车,为此我使用梅赛德斯奔驰的 EPC(电子零件目录)。(会员是免费的,所以那些想看我正在谈论的程序的人可以去这里查看它。)要进入该程序,有一个登录页面,然后是另一个带有链接的页面。单击该链接会下载一个名为 ewa-net.jnlp 的文件,并使用 JavaWS 启动它。

我曾经在我的 Linux 系统上使用过这个程序,它确实有效。我记得我在 /etc 目录中更改了 osname 变量,或者在运行程序之前更改了 Firefox 中的操作系统,并在完成后将其更改回来,因此它不会影响任何其他 Java 程序。EPC 计划在这些条件下运行良好。我强烈怀疑需要 Windows 的原因更多是一种防御性举措(例如,避免责任或避免修复多个操作系统上的错误)。

我知道进行这样的更改可能会弄乱程序,但这仅用于查看零件目录并检查零件图,这有助于确定零件位置或放置或帮助零件人员,因为我可以帮助他们如果我在打电话给他们之前已经完成了我的研究,那么可以快速找到某个部分所在的页面。我不会在磁盘驱动器或其他地方保存数据或修改任何内容(尽管我有时会截取屏幕截图并将其打印出来)。

我无法下载 ewa-net.jnlp 并随时运行它。我必须通过 HTML 登录页面,然后从他们的站点运行程序,所以我不能只从命令行或类似的东西运行程序。(除非在我登录后立即用 JavaWS 代替运行它。)

现在我正在使用 iMac,使用 Snow Leopard。我尝试在此处查找和更改 osname,但没有成功。

现在每当我需要使用 EPC 时,我都必须在 Parallels 中启动一个 Windows VM,而我使用该 Windows VM 的唯一原因就是为了这个程序。

有什么方法可以欺骗 Java,所以当我运行这个程序时,它认为它在 Windows 上?我知道这可能会崩溃,但由于目录在 Linux 上运行良好,我想至少在 OS X 上尝试一下。

我想也许我可以使用运行 JavaWS 的包装脚本,但我不太确定该怎么做,正如我之前所说,更改 osname 设置似乎不起作用。

有什么东西可以帮助我欺骗这个程序,让它认为它在 Windows 上吗?

4

1 回答 1

1

这取决于究竟是什么应用了 Windows 限制。

JNLP 文件可以仅为特定操作系统指定元素,从而有效地将其限制为特定操作系统。因此,如果 JNLP 文件包含类似这样的内容...

<resources os="Windows XP">
    <j2se version="1.5+" />
    <jar href="/example.jar" />
</resources>

...那么这可能是阻止您在 Mac OS X 上运行它的原因。查看 JNLP 文件(我看不到它,作为非美国居民,我无法自己注册)并查看如果这就是原因。如果是,也许你可以编辑它。为什么你说不能下载 ewa-net.jnlp?如果您可以下载 JNLP 文件,请将其编辑为具有os="Mac OS X",然后双击它以运行它(或右键单击并选择Open With> Java Web Start)。

或者,更改 osname 对您不起作用的原因可能是您在错误的 Java 安装中更改了它。在 Snow Leopard 发布后的某个时间(我认为),Apple 移动了 Java 的安装位置。因此,您可能会在以下任一位置找到您的安装:

  • /System/Library/Frameworks/JavaVM.framework/Versions
  • /系统/库/Java/JavaVirtualMachines

如果您只更新了其中一个位置,您可能也必须在其他位置进行更新。

于 2012-06-27T04:49:15.373 回答