首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClassNotFoundException Java JApplet

ClassNotFoundException Java JApplet
EN

Stack Overflow用户
提问于 2013-09-18 09:35:23
回答 3查看 958关注 0票数 0

我一直在Stackoverflow上搜索,发现问题似乎是,指向类的路径不正确。(我试着调整我的代码,但它仍然给我ClassNotFoundException)这段代码的目的是,让一个用户点击列表,然后它会将他们重定向到一个website.This也是从新的训练。

Java:

代码语言:javascript
复制
  package webApplet;

  import java.applet.AppletContext;
  import java.awt.BorderLayout;
  import java.net.MalformedURLException;
  import java.net.URL;
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.List;
  import javax.swing.JApplet;
  import javax.swing.JLabel;
  import javax.swing.JList;
  import javax.swing.JScrollPane;
  import javax.swing.event.ListSelectionEvent;
  import javax.swing.event.ListSelectionListener;

  public class Applet extends JApplet {

    HashMap webInfo;
    List<String> name;
    JList list;

    public void init() {

    webInfo = new HashMap();
    name = new ArrayList();

    populate();
    add(new JLabel("please click on a website"), BorderLayout.NORTH);

    list = new JList(name.toArray());
    list.addListSelectionListener(
    new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent event) {

            Object object = list.getSelectedValue();
            URL url = (URL) webInfo.get(object);
            AppletContext browser = getAppletContext();
            browser.showDocument(url);
        }
    });
    add(new JScrollPane(list), BorderLayout.CENTER);
}

public void populate() {

    URL url;
    String title;
    String address;
    int counter = 0;

    title = getParameter("title" + counter);

    while (title != null) {


        try {
            address = getParameter("address" + counter);
            url = new URL(address);
            webInfo.put(title, url);
            name.add(title);

        } catch (MalformedURLException ex) {
            System.out.println("hi");
        }
    }
    counter++;
    title = getParameter("title" + counter);

 }
}

html:

代码语言:javascript
复制
<html>
<body>
    <applet code= "webApplet.Applet.class" width = "500" height = "250">
        <param name= "title0" value = "thenewBoston.org">
        <param name= "address0" value = "http://thenewboston.org">
        <param name= "title1" value = "Awesome forum!">
        <param name= "address1" value = "http://tnbforum.com/">
    </applet>
</body>
</html>

错误:

代码语言:javascript
复制
 Java Plug-in 10.25.2.16
 Using JRE version 1.7.0_25-b16 Java HotSpot(TM) Client VM
 User home directory = C:\Users\tin

 c:   clear console window
 f:   finalize objects on finalization queue
 g:   garbage collect
 h:   display this help message
 l:   dump classloader list
 m:   print memory usage
 o:   trigger logging
 q:   hide console
 r:   reload policy configuration
 s:   dump system and deployment properties
 t:   dump thread list
 v:   dump thread stack
 x:   clear classloader cache
 0-5: set trace level to <n>

在错误下面是这样的:"webApplet.Applet.class“

这是我的文件的流程:

代码语言:javascript
复制
  website ----> 
               source packages----->
                              webApplet---->
                                          - Applet.java
                                          - bucky.html
EN

回答 3

Stack Overflow用户

发布于 2013-09-18 09:40:23

问题是你的html放在java文件旁边,而不是class文件。找到类文件所在的目录,并将html文件放入其中。

类文件的扩展名为Applet.class而不是Applet.java

因此,在您的示例中,类文件可能位于webApplet/bin/classes下

票数 1
EN

Stack Overflow用户

发布于 2013-09-18 12:50:20

如果Applet.class最终与Applet.java在同一位置(请选择更好的类名BTW,甚至TestApplet01也明确表示我们不是指java.applet.Applet),那么所看到的bucky.html需要在父目录中。

代码语言:javascript
复制
  website ----> 
               source packages----->
                                  - bucky.html
                              webApplet---->
                                          - Applet.java
                                          - Applet.class

至于HTML。更改:

代码语言:javascript
复制
<applet code= "webApplet.Applet.class" width = "500" height = "250">
    <param name= "title0" value = "thenewBoston.org">
    <param name= "address0" value = "http://thenewboston.org">
    <param name= "title1" value = "Awesome forum!">
    <param name= "address1" value = "http://tnbforum.com/">
</applet>

为了..。

代码语言:javascript
复制
<applet code= "webApplet.Applet" width = "500" height = "250">
    ...
</applet>

code属性应该是类的完全限定名。虽然webApplet/Applet.class可能是一个类的href,而webApplet.Applet是FQN,但webApplet.Applet.class只是..wrong。可以容忍,但却是错误的。

票数 1
EN

Stack Overflow用户

发布于 2013-09-18 11:05:31

问题是Applet.class文件不在类路径中。如果您没有使用任何集成开发环境,则可能需要手动编译Applet.java文件:

代码语言:javascript
复制
// Assuming the Applet.java is in current directory and Java is setup fully.
prompt> javac Applet.java

这将创建名为webApplet/Applet.class的Applet.class文件。这里的webApplet是一个文件夹。

将完整的webApplet/Applet.class文件Jar为

代码语言:javascript
复制
jar -cvf applet.jar webApplet/Applet.class

将jar路径添加到系统的CLASSPATH环境变量值中。有关如何做到这一点,请参阅以下内容:http://www3.ntu.edu.sg/home/ehchua/programming/howto/Environment_Variables.html

如果你正在使用像eclipse这样的IDE,它可能会帮助你做到这一点。无论如何,主要的事情是确保jar在CLASSPATH中,以便JVM能够识别该jar。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18862530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档