我通过applet创建一个浏览器小程序,然后在自己的电脑上配置一个tomcat5.0.28,然后访问applet小程序,程序报如下错误:(注意:我通过JCreator编译运行,程序正常;通过在我的目录C:\JCreatorV3\MyProjects\test_dd\classes下点击Test_dd.htm文件,程序正常。但是启动tomcat,在IE中输入http://localhost:8080/Test_dd.htm就报如下错误)*** Error: 文件名、目录名或卷标语法不正确。
org.jdesktop.jdic.init.JdicInitException: java.io.IOException: 文件名、目录名或卷标语法不正确。
at org.jdesktop.jdic.init.JdicManager.initShareNative(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<clinit>(Unknown Source)
at Test_dd.init(Test_dd.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: 文件名、目录名或卷标语法不正确。
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Unknown Source)
at java.io.File.getCanonicalPath(Unknown Source)
... 5 more
java.lang.NullPointerException
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at Test_dd.init(Test_dd.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
-----------------------------------------------------------------------------------我的程序原代码如下:
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.net.URL;
import java.net.MalformedURLException;
import org.jdesktop.jdic.browser.*;public class Test_dd extends Applet
{
JPanel panel;
WebBrowser webBrowser;
public void init()
{
this.setLayout(null);
this.setBackground(Color.gray);
this.webBrowser = new WebBrowser();
webBrowser.addWebBrowserListener(
new WebBrowserListener() {
boolean isFirstPage = true;
public void initializationCompleted(WebBrowserEvent event){;}
public void downloadStarted(WebBrowserEvent event) {;}
public void downloadCompleted(WebBrowserEvent event) {;}
public void downloadProgress(WebBrowserEvent event) {;}
public void downloadError(WebBrowserEvent event) {;}
public void documentCompleted(WebBrowserEvent event) {;}
public void titleChange(WebBrowserEvent event) {;}
public void statusTextChange(WebBrowserEvent event) {;}
public void windowClose(WebBrowserEvent event) {;}
});
try
{
webBrowser.setURL(new URL("http://www.sohu.com.cn"));
}
catch (MalformedURLException e)
{
System.out.println(e.getMessage());
return;
}
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.blue);
panel.add(webBrowser,BorderLayout.CENTER);
panel.reshape(20,20,560,560);
add(panel);
}
}
其中org.jdesktop.jdic.browser.*类包可以从https://jdic.dev.java.net/servlets/ProjectDocumentList?folderID=7790&expandFolder=7790&folderID=8895处下载到。请高手指点
org.jdesktop.jdic.init.JdicInitException: java.io.IOException: 文件名、目录名或卷标语法不正确。
at org.jdesktop.jdic.init.JdicManager.initShareNative(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<clinit>(Unknown Source)
at Test_dd.init(Test_dd.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: 文件名、目录名或卷标语法不正确。
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Unknown Source)
at java.io.File.getCanonicalPath(Unknown Source)
... 5 more
java.lang.NullPointerException
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at org.jdesktop.jdic.browser.WebBrowser.<init>(Unknown Source)
at Test_dd.init(Test_dd.java:30)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
-----------------------------------------------------------------------------------我的程序原代码如下:
import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.net.URL;
import java.net.MalformedURLException;
import org.jdesktop.jdic.browser.*;public class Test_dd extends Applet
{
JPanel panel;
WebBrowser webBrowser;
public void init()
{
this.setLayout(null);
this.setBackground(Color.gray);
this.webBrowser = new WebBrowser();
webBrowser.addWebBrowserListener(
new WebBrowserListener() {
boolean isFirstPage = true;
public void initializationCompleted(WebBrowserEvent event){;}
public void downloadStarted(WebBrowserEvent event) {;}
public void downloadCompleted(WebBrowserEvent event) {;}
public void downloadProgress(WebBrowserEvent event) {;}
public void downloadError(WebBrowserEvent event) {;}
public void documentCompleted(WebBrowserEvent event) {;}
public void titleChange(WebBrowserEvent event) {;}
public void statusTextChange(WebBrowserEvent event) {;}
public void windowClose(WebBrowserEvent event) {;}
});
try
{
webBrowser.setURL(new URL("http://www.sohu.com.cn"));
}
catch (MalformedURLException e)
{
System.out.println(e.getMessage());
return;
}
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.blue);
panel.add(webBrowser,BorderLayout.CENTER);
panel.reshape(20,20,560,560);
add(panel);
}
}
其中org.jdesktop.jdic.browser.*类包可以从https://jdic.dev.java.net/servlets/ProjectDocumentList?folderID=7790&expandFolder=7790&folderID=8895处下载到。请高手指点
是哪句?
是这句:this.webBrowser = new WebBrowser();
我怀疑不是程序本身的问题,可能是tomcat配置的问题。因为我在Jcreator中执行是完全正确的。
改成webBrowser = new WebBrowser();
this.webBrowser = new WebBrowser(); 改成 WebBrowser webBrowser = new WebBrowser();
试试
现在的问题是:用鼠标点击applet的程序Test_dd.htm,程序运行正常。但是我启动了tomcat后,然后在IE中输入http://localhost:8080/Test_dd.htm后,就报错误。请高手指点。
org.jdesktop.jdic.init.JdicInitException: java.io.IOException: 文件名、目录名或卷标语法不正确不是报的这个错误嘛,你应该从文件名称下手啊!
像什么文件的命名,有没有特殊符号,文件夹的命名是不是不合乎规范,大小写等。。
多谢yojiwei的指点,在你的提示下,我顺藤摸瓜找到问题所在。原来是java的File()函数的问题。此函数对URL类型的字符串不识别,导致找不到资源。