使用外部JAR创建Java小程序

5
我在Netbeans中创建了一个Java Applet,使用了几个外部库。当我在Netbeans中运行applet.java文件时,它可以正常工作。我正在尝试在网页中获得相同的结果。
当我在build文件夹中运行自动生成的applet.html文件时,它无法加载外部库,即使我已经将它们在APPLET归档标签中指定并移动到同一文件夹中。
这是我的html文件:
<HTML>
<HEAD>
   <TITLE>Applet HTML Page</TITLE>
</HEAD>
<BODY>

<H3><HR WIDTH="100%">Applet HTML Page<HR WIDTH="100%"></H3>

<P>
<APPLET codebase="classes" code="applet/MyApplet.class" width=350 height=200 archive="jcommon-1.0.17.jar,  jfreechart-1.0.14.jar, sqljdbc4.jar"></APPLET>
</P>

<HR WIDTH="100%"><FONT SIZE=-1><I>Generated by NetBeans IDE</I></FONT>
</BODY>
</HTML>

这些库是第三方Java库(jfreeChart和SQL-JDBC驱动程序)。


1
你有什么问题吗?你有要加载小程序的HTML吗?如果有,请将内容复制/粘贴到此处,并附上Java控制台的任何报告。 - Andrew Thompson
2个回答

9
创建使用外部JARS的Java小程序。将其引用添加到applet元素的archive属性中即可。
<APPLET codebase="classes" code="applet/MyApplet.class" width=350 height=200 archive="jcommon-1.0.17.jar,  jfreechart-1.0.14.jar, sqljdbc4.jar"></APPLET>

重新格式化会导致:
<APPLET 
    codebase="classes" 
    code="applet/MyApplet.class" 
    width=350 
    height=200 
    archive="jcommon-1.0.17.jar,  jfreechart-1.0.14.jar, sqljdbc4.jar">
</APPLET>

1.

    code="applet/MyApplet.class" 

应该是类的完全限定名称。如果类名是MyApplet,包名是applet,那么翻译成:

    code="applet.MyApplet" 

2.

    archive="jcommon-1.0.17.jar,  jfreechart-1.0.14.jar, sqljdbc4.jar">

请确认,applet.MyApplet是否在jcommon-1.0.17.jar中?

3.

    codebase="classes" 

那听起来很不妙。这是一个完整的带有JSP / servlets的Web应用程序吗?如果是这样,我怀疑该路径是错误的,因为它指向服务器上客户端(浏览器或)小程序无法访问的位置。尝试对每个小程序Jar进行直接提取(将预期的地址粘贴到浏览器地址栏中,然后按“回车”键),如果MyApplet.class不在一个Jar中,则对松散类文件进行单独检查。

我已经这样做了,但它仍然无法加载外部的 jar 文件。Thompson,我使用自动生成的 HTML 文件来在浏览器中显示小程序。顺便说一下,没有使用外部库的小程序是正常工作的。 - Freek8
我将其添加到原始问题中。 - Freek8
applet.MyApplet不在jcommon.jar中。它是使用其他3个jar文件显示一些图表的主要Java文件。该程序本身不是完整的Web应用程序。它是一个非常基本的Java小程序,从数据库检索记录并根据这些记录创建图形。 - Freek8
现在它可以工作了。代码库是正确的,小应用程序/MyApplet.class 也是正确的。结果发现我没有把 JAR 包放在正确的位置。 - Freek8

0
package example.jni;

public class HelloWorld {
    private static native void writeHelloWorldToStdout();

    public static void main(String[] args) {
        System.loadLibrary("HelloWorld");
        writeHelloWorldToStdout();
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接