java - 在谷歌应用程序引擎项目中使用java小程序

标签 java google-app-engine applet

我有一个关于在 Google 应用引擎上使用 Java 小程序的问题。我创建了 2 个类,分别称为 InteractiveGraphView1 和 SimpleApplet。在 SimpleApplet 中使用 InteractiveGraphView1 的对象。不管怎样,我正在为这两个类使用一些外部 jar 。我为我的项目创建了一个名为“GraphApplet”的 jar。然后我将这个 jar 放入 WEB-INF/lib 中,并将其作为外部 jar 添加到 gae 项目中。可以肯定的是,我还将 GraphApplet 类中使用的外部 jar 添加到了我的 gae 项目中。我部署了 gae 项目,当我尝试运行小程序时,它给出了以下错误:

load: class SimpleApplet.class not found.
java.lang.ClassNotFoundException: SimpleApplet.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: SimpleApplet.class
java.lang.RuntimeException: java.lang.NoClassDefFoundError:    edu/uci/ics/jung/algorithms/layout/Layout
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: edu/uci/ics/jung/algorithms/layout/Layout
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
  Caused by: java.lang.ClassNotFoundException: edu.uci.ics.jung.algorithms.layout.Layout
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 20 more
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: edu/uci/ics/jung/algorithms/layout/Layout

我应该做什么?

附注我忘了告诉我我正在 GraphApplet 项目中使用 JUNG 库。我还将其添加到谷歌应用程序引擎项目中

添加到HMTL

<html>

你好应用程序引擎

This is my page<br>
Below you see an applet<br>
<br>
<Applet Code="SimpleApplet.java" archive="graphic.jar" width=200 Height=200>
</Applet>

最佳答案

Applet 只是一个 jar 文件,由浏览器下载并在客户端作为 applet 执行。

与服务器代码无关。从服务器的角度来看,它只是一个静态文件。因此,您不应该将其放在服务器库所在的 WEB-INF/lib 中。只需将其放在 html 文件旁边即可。

有关引用其他 jar 的小程序,请参阅:How do I build an applet which needs an external jar, using ant?

关于java - 在谷歌应用程序引擎项目中使用java小程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632348/

相关文章:

google-app-engine - Google App Engine 的执行方式与其本地应用程序服务器不同

Java applet 与 Rails 应用程序通信

java - 为什么 ArrayList 大小字段不是 transient 的?

java - 尝试从 ear 文件编辑 jar 中的属性文件。最好的方法是什么?

google-app-engine - 使用 Google App Engine 和 Go 的静态文件

java - 运行我的小程序所需的最低 Java 版本

Java 小程序登录尝试计数器无法正常工作

Java:当并非所有行都有新行时从文件中读取行

java - 使用 system-property 作为 @WebAppConfiguration 的值

android - Protobuffers错误将库添加到android