java - 欺骗 Java Web Start 关于操作系统

标签 java macos

我正在修复一辆古董车,为此我使用梅赛德斯奔驰的 EPC(电子零件目录)。 (成员(member)资格是免费的,所以那些想要查看我正在谈论的程序的人可以访问here,如果他们想查看的话。)要访问该程序,有一个登录页面,然后是另一个带有链接的页面。单击该链接会下载一个名为 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 上吗?

最佳答案

这具体取决于应用 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",然后双击它来运行它(或右键单击并选择打开方式 > Java Web Start)。

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

  • /System/Library/Frameworks/JavaVM.framework/Versions
  • /System/Library/Java/JavaVirtualMachines

如果您只更新了其中一个位置,则可能还需要在其他位置进行更新。

关于java - 欺骗 Java Web Start 关于操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219311/

相关文章:

java - Android - 在同一类中传递 uri/string/int

multithreading - 在与OSX命令行不同的线程中运行程序?

android - 我无法在 eclipse 4.2.1 中配置 ADT 插件(在 Mac OS X 10.5.8 上)

objective-c - 带搜索字段的 Cocoa 绑定(bind)可变字典

java - 在java中使用heapsort进行排序

java - 复制云存储文件(创建文件的副本)

macos - 如何设置NSPopUpButton的菜单位置?

macos - 具有尖顶边框的 cocoa 模态窗口

使用 openssl BadPaddingException 生成 Java PKCS12 keystore

java - Websphere 6.1 UTF-8 编码的 URL 参数