如何在 Ubuntu 上使用 Pearson 的 ePEN java 小程序?

Zan*_*nna 6 firefox java

我使用本网站上名为 e-PEN 的 Java 小程序为 Pearson 在线评分考试。“最低系统要求”声明仅支持 Vista 或更高版本的 Windows,以及 Internet Explorer 9 或更高版本。

我使用的是 Ubuntu 16.04,我相信对“最低系统要求”的正确解释是,当我联系 ePEN 帮助台时,我可以在这些条件下获得帮助。

如何让 ePEN 在 Ubuntu 中工作,最好使用 Firefox?


奖励部分:我已经使用 Oracle Java 8 回答了我自己的问题(见下文),但我更愿意只使用 FOSS。我已经卸载了 Oracle Java,并在 OpenJDK8 和 IcedTea8 上取得了很大进展。在我编写了一个精心设计的 java 安全策略(基本上是授予我在缓慢的逐行过程中遇到错误的每个权限)并将其复制swt.jar到正确的目录中(如在 Oracle 修复中)之后,小程序会启动所有功能。但是,我总是InterruptedException在几秒钟内被抛出:

Caused by: java.lang.InterruptedException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:502)
at
    sun.applet.PluginAppletViewer.requestPluginCookieInfo(PluginAppletViewer.java:1266)
Run Code Online (Sandbox Code Playgroud)

(或与 相同.requestPluginCookieInfo)导致小程序停止。在终端中运行 Firefox 时,我每次也看到这两个错误:

java.io.FileNotFoundException: https://path/to/applet/parent-url/xbean.jar
java.io.FileNotFoundException: https://path/to/applet/parent-url/tiny_mce_3.5.10.zip.pack.gz
Run Code Online (Sandbox Code Playgroud)

如果我尝试访问真实的 URL 或wget它们,我会收到404 Not Found错误消息,所以我猜这些资源不存在。我尝试下载一个xbean.jar与 swt 库 jar 放在同一目录中的文件,但这没有效果。我还进一步收到NoClassDef错误和连接拒绝错误(在Interrupt已经抛出致命错误之后)。

我在网上找到的与这些错误相关的所有信息都是关于如何从另一端阻止它们发生,作为开发人员。我很想放弃,但仍然希望有人能提供线索:)

Zan*_*nna 5

2017 年标记赛季的更新

由于Firefox 已放弃对插件的支持,您需要下载 Firefox ESR(扩展支持版本)。我建议仅将其用于运行 ePEN。假设您将其下载到“下载”,请运行

cd ~/Downloads
tar xf firefox*
cd firefox
./firefox
Run Code Online (Sandbox Code Playgroud)

当提示“将 Firefox 设置为默认浏览器”时,我建议选择否。请注意,运行此版本而不是全局安装的版本,它仍会使用和更新您的配置文件,因此您不会看到与通常的 Firefox 体验有太大区别.

按照以下原始答案进行操作。


我有一个可行的解决方案(在 64 位系统中测试:Ubuntu 16.04、Xubuntu 16.04 和 Ubuntu MATE 16.04),但是我尝试使用 OpenJDK-8 和 IcedTea-8 插件使小程序工作没有成功。如果有人能找到避免使用 Oracle Java 的方法,那将是对这个答案的重大改进。

我只在 Firefox 中测试过这个修复 - 请评论它在其他浏览器中的工作方式

第 1 步例如使用此 ppa安装 Oracle Java (我使用的是版本 8):

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Run Code Online (Sandbox Code Playgroud)

第 2 步安装所需的库

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java
Run Code Online (Sandbox Code Playgroud)

64 位系统的第 3 步:转到exam2score 站点,登录,单击标记学生回答,然后“激活java”回答“运行”“允许”等弹出的任何安全警告*。尝试运行小程序时,您将收到来自 java 控制台的错误:“不满意的链接错误无法在 64 位 JVM 上加载 32 位 SWT 库”要解决此问题,请将swt-gtk-3.8.2.jar文件复制到正确的位置:

sudo cp /usr/lib/java/swt* /usr/lib/jvm/java-8-oracle/jre/lib/ext
Run Code Online (Sandbox Code Playgroud)

32 位系统的第 3 步:(未测试,因为我只能启动 64 位 Ubuntu,但从我的原始过程中得出。如果您已经测试,请发表评论):加载小程序将失败,并显示来自 java 控制台的消息: '无法加载库' 的路径沿着/home/(username)/.swt/lib/linux/x86你可以通过制作这个符号链接来修复它:

sudo ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86/
Run Code Online (Sandbox Code Playgroud)

*您可以通过告诉 Firefox 始终允许 Java 在此页面上运行并在 Java 控制面板安全选项中设置站点例外(在破折号中搜索 Java)来永久消除安全警告

(注意:盯着这个这个以及相关帖子几个小时帮助我弄清楚了这个谜)


2017 年评分会议的额外更新

对于我的一些论文,我被阻止登录:在登录页面,我将被重定向到浏览器健康检查并且无法继续。原来的错误是:

不支持此浏览器。您必须使用 Internet Explorer 11。

我通过安装 User-Agent switcher Add-on 并将用户代理设置为 Microsoft Windows 上的 Internet Explorer 来解决这个问题。但是,我仍然得到了重定向,现在抱怨我的 Java 版本。我以一种不雅的方式绕过它:

  • 选择论文后,在重定向之前获取实际登录页面地址(尝试截取屏幕截图)。
  • about:config在 URL 字段中输入
  • 查找javascript:enable并将其切换为 false 以禁用 JavaScript
  • 打开一个新选项卡并输入登录页面的 URL(例如https://wwb.exam2score.com/epen-webapp/jsp/login.jsp
  • 使用您的凭据登录。它成功了,但是页面功能被破坏了,所以......
  • 返回您的about:config选项卡并切换javascript:enable为 true
  • 返回到您的exam2score 选项卡并刷新页面。