gpt4 book ai didi

java - 小程序的烦恼

转载 作者:行者123 更新时间:2023-11-29 03:54:25 26 4
gpt4 key购买 nike

我正在尝试在我的站点中嵌入一个小程序,但老天爷我无法弄清楚为什么这行不通!我有一个名为 BHSurveyor.jar 的 JAR 文件,我的类在 bhs.gui.GUIApplet 中扩展了 javax.swing.JApplet。现在,我已经尝试将它嵌入到一个页面中,并且我已经尝试了从

开始的所有操作
<applet codebase="/dist/" archive="/dist/BHSurveyor.jar" code="bhs.gui.GUIApplet" width="256px" height="256px" />

(在本地打开的 HTML 文件中,在 JAR 下一个文件夹级别)到

<applet codebase="file://localhost/C:/Users/Supuhstar/Documents/NetBeansProjects/BHSurveyor/dist/" archive="file://localhost/C:/Users/Supuhstar/Documents/NetBeansProjects/BHSurveyor/dist/BHSurveyor.jar" code="bhs.gui.GUIApplet.class" width="256px" height="256px" />

及其所有排列,然后是一些……但每次,我都会收到相同的红色“错误。单击以获取详细信息”消息(未提供详细信息)。 有人可以告诉我该怎么做吗?

我的设置


可以在 http://s.supuhstar.operaunite.com/s/content/test/ 查看我的设置的完整重现。

测试


按照建议,我跑了

jar -tvf BHSurveyor.jar
'jar' is not recognized as an internal or external command,
operable program or batch file.

假设他们有别的意思,我试过了

java -jar -tvf BHSurveyor.jar
Unrecognized option: -tvf
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

所以你看这没有帮助......再次,从假设运行,我运行它并得到我希望的预期输出:

"C:\Program Files\Java\jdk1.7.0\bin\jar" -tvf BHSurveyor.jar
0 Mon Aug 29 11:56:10 EDT 2011 META-INF/
228 Mon Aug 29 11:56:08 EDT 2011 META-INF/MANIFEST.MF
0 Mon Aug 29 11:56:10 EDT 2011 bhs/
0 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/
2264 Mon Aug 29 11:56:08 EDT 2011 bhs/AnswerType.class
1851 Mon Aug 29 11:56:08 EDT 2011 bhs/DefPage.class
1965 Mon Aug 29 11:56:10 EDT 2011 bhs/DefQuestion.class
1463 Mon Aug 29 11:56:10 EDT 2011 bhs/DefTitlePage.class
1338 Mon Aug 29 11:56:10 EDT 2011 bhs/Main.class
615 Mon Aug 29 11:56:08 EDT 2011 bhs/Page.class
786 Mon Aug 29 11:56:10 EDT 2011 bhs/Question.class
402 Mon Aug 29 11:56:10 EDT 2011 bhs/TitlePage.class
1757 Mon Aug 29 11:56:10 EDT 2011 bhs/Utils$1.class
766 Mon Aug 29 11:56:10 EDT 2011 bhs/Utils$2.class
6188 Mon Aug 29 11:56:10 EDT 2011 bhs/Utils.class
3409 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/GUIApplet.class
1218 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/GUIJFrame.class
3549 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/GUIPage.class
824 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/GUIQuestion$1.class
8650 Mon Aug 29 11:56:10 EDT 2011 bhs/gui/GUIQuestion.class

小程序构造器和初始化


  public GUIApplet(Page... pgs)// throws UnknownHostException
{
System.out.println("new GUIApplet(Page... " + pgs + ")");
// System.out.println(java.net.InetAddress.getLocalHost().getHostAddress());
System.out.println(" setting layout...");
setLayout(new java.awt.GridBagLayout());

System.out.println(" adding components...");
addComponents();

System.out.println(" initializing pages...");
pages = new ArrayPP<>();

System.out.println(" installing pages...");
int i=1;
for (Page p : pgs)
if (p != null)
installPage(p);
System.out.println(" changing look-and-feel...");
LookAndFeelChanger.setLookAndFeel(LookAndFeelChanger.NIMBUS);
System.out.println(" fixing nav buttons...");
fixNavButtons();
System.out.println("GUIApplet complete");
}

public void init()
{
// TODO start asynchronous download of heavy resources
System.out.println("GUIApplet.init()");
}

最佳答案

<applet 
codebase="/dist/"
archive="/dist/BHSurveyor.jar"
code="bhs.gui.GUIApplet"
width="256px"
height="256px" />

将其更改为..

<applet 
codebase="dist/"
archive="BHSurveyor.jar"
code="bhs.gui.GUIApplet"
width="256"
height="256" >
</applet>

注意:根据我的统计,这 2 个 applet 元素之间有 5 个不同之处。


代码库

<applet 
codebase="file://localhost/C:/Users/Supuhstar/Documents/NetBeansProjects/BHSurveyor/dist/"
..

对该代码库绝对路径的一些仔细检查促使我做出进一步的评论。

我怀疑是否存在如图所示的路径。将其复制/粘贴到浏览器地址栏中,然后按回车键(对于基于文件的路径,这始终是一个很好的“酸性测试”)。

你得到目录列表了吗?

我猜应该是:

file:///C:/Users/Supuhstar/Documents/NetBeansProjects/BHSurveyor/dist/

(即没有 localhost)。

对于代码库或类似路径中的初始 / 也有特殊意义。它等同于“网站的根”。这意味着您的 /dist/ 的其他代码库将实际上指向

文件:///C:/dist/

您在浏览器中获得该路径的结果是什么?

顺便说一句 - 这些问题都不是修辞性的。为了最好地帮助你,我需要答案。


测试页更新

A full recreation of my setup can be viewed at http://s.supuhstar.operaunite.com/s/content/test/

看起来好像BHSurveyor.jar包含文字,至少是returning a content-type of text/html .控制台非常有用..

java.lang.reflect.InvocationTargetException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(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)
Caused by: java.lang.RuntimeException: java.lang.InstantiationException: bhs.gui.GUIApplet
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$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.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.InstantiationException: bhs.gui.GUIApplet
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
... 15 more
Exception: java.lang.reflect.InvocationTargetException

本地测试小程序更新

在本地下载 Jar 后,(遇到不同的错误,然后安装 JDK 7 修复它),我终于可以看到您描述的内容了。

"Error. Click for details" message (which gives no details).

  1. 首先,请注意您可以使用交叉编译选项在第 7 版 JDK 中编译 Java 1.5(或任何以前的版本)。了解何时需要部署的实用提示。
  2. 但最重要的是..
    • 小程序 init() 方法中是否有任何 try/catch 语句?小程序是否有(非默认)构造函数?如果是这样,请重新尝试/捕获相同的问题。
    • 如果不是太长或太私密,小程序源代码的 init() 和构造函数部分的代码(复制/粘贴)是什么?

我的最新理论(关于 applet 加载的主要问题)是 try/catch 语句吞没或忽略异常。除此之外,我不知道为什么小程序不会加载,但不会在 Java 控制台中显示任何相关输出。

顺便说一句,服务器为 Jar 返回错误的内容类型这一事实应该得到修复,尽管这似乎不是这里的根本问题。

关于java - 小程序的烦恼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7156481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com