[英]ClassNotFoundException Java JApplet
我一直在搜索Stackoverflow,發現問題似乎是,該類的路徑不正確。 (我試圖調整我的代碼,但它仍然給我ClassNotFoundException)這個代碼的目的是,讓用戶點擊列表,然后它將它們重定向到一個網站。這也是來自thenewboston的實踐培訓。
Java的:
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:
<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>
錯誤:
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”
這是我的文件流:
website ---->
source packages----->
webApplet---->
- Applet.java
- bucky.html
問題是你有你的HTML文件旁邊的HTML不是類文件。 找到類文件的目錄並將html文件放在那里。
類文件有擴展名Applet.class而不是Applet.java
所以在你的情況下,你的類文件可能在webApplet / bin / classes下
它的Applet.class
在同一個地方結束Applet.java
(請選擇更好的類名BTW,甚至TestApplet01
使得它明確的是,我們不是指java.applet.Applet
),那么bucky.html
所看到需求在父目錄中。
website ---->
source packages----->
- bucky.html
webApplet---->
- Applet.java
- Applet.class
至於HTML。 更改:
<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>
至..
<applet code= "webApplet.Applet" width = "500" height = "250">
...
</applet>
code
屬性應該是類的完全限定名。 雖然webApplet/Applet.class
可能是類的href,而webApplet.Applet
是FQN,但webApplet.Applet.class
只是..wrong。 容忍,但錯了。
問題是Applet.class文件不在類路徑中。 如果您沒有使用任何IDE,則可能需要手動編譯Applet.java文件:
// Assuming the Applet.java is in current directory and Java is setup fully.
prompt> javac Applet.java
這將創建Applet.class文件作為webApplet / Applet.class。 這里webApplet是一個文件夾。
將完整的webApplet / Applet.class文件包含在內
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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.