过去几天我一直在寻找解决这个问题的方法,而且我正在靠墙打我的头。我知道用java编程所以请耐心等待。
我目前正在尝试将Java Applet实现到我的学校项目的HTML页面中。 Applet在Eclipse中使用AppletViewer以及在名为Blue Jay的程序中的Web浏览器中运行良好。我已将程序导出到与HTML页面相同的目录中的jar文件中,并将必要的代码添加到我的HTML文件中,但每当我实际运行HTML文件时,Applet都会给出一个"非法参数异常:name& #34;错误。错误的详细信息包括短语" java.net.MalformedURLException:未知协议:e。"
这是我的HTML文件的相关代码:
<applet code="MovingBoxes.class" archive="E:\WebSystems\WebPages\Animations.jar"
width="350" height="350" >Animation of moving boxes</applet>
当错误发生时,如果重要的话,applet标签内的短语也不会显示。我已经尝试导出其他小程序,看看它们是否有效并且每次都收到相同的错误。我也非常确定该文件的目的地是正确的,因为当我将目的地名称改为不正确的地方时,&#34; Class Not Found&#34;而是发生错误。
如果错误发生在我的applet中,这是我的applet代码。
package theBig;
import java.awt.*;
public class MovingBoxes extends java.applet.Applet implements Runnable
{
Thread runner;
int size = 15;
int x_value = 200;
int y_value = 175;
int rndm_x;
int rndm_y;
int move = 1;
int cntr = 0;
Image dbImage;
Graphics dbg;
int x_value2 = 240;
int y_value2 = 250;
int rndm_x2;
int rndm_y2;
public void start()
{
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
public void stop()
{
if (runner != null) {
runner.stop();
runner = null;
}
}
public void run()
{
setBackground(Color.white);
while (true) {
rndm_x = (int)(Math.random()*10+1);
rndm_y = (int)(Math.random()*10+1);
if (rndm_x > 5)
x_value += move;
else
x_value -= move;
if (rndm_y > 5)
y_value = 50;
else
y_value = 50;
rndm_x2 = (int)(Math.random()*10+1);
rndm_y2 = (int)(Math.random()*10+1);
if (rndm_x2 > 5)
x_value2 += move;
else
x_value2 -= move;
if (rndm_y2 > 5)
y_value2 = 50;
else
y_value2 = 50;
if (x_value + size > x_value2)
{
cntr = 50;
}
while(cntr > 0)
{
cntr --;
x_value --;
x_value2 ++;
repaint();
try { Thread.sleep(25); }
catch (InterruptedException e) { }
}
repaint();
try { Thread.sleep(25); }
catch (InterruptedException e) { }
}
}
public void update(Graphics g) {
dbImage = createImage(getWidth(),getHeight());
dbg = dbImage.getGraphics();
paint(dbg);
g.drawImage(dbImage,0,0,this);
}
public void paint(Graphics g) {
g.setColor(Color.red);
g.drawRect(x_value, y_value, size, size);
g.fillRect(x_value, y_value, size, size);
g.setColor(Color.blue);
g.drawRect(x_value2, y_value2, size, size);
g.fillRect(x_value2, y_value2, size, size);
}
} `
就像我说的那样,我到处寻找答案然后空手而归。非常感谢您提供的任何帮助。
答案 0 :(得分:0)
也许这是一个错字,但你错过了一个&#34;在HTML代码中的.jar之后。
如果这没有帮助,那么您的存档可能是一个URL,而不仅仅是文件路径。你能试试这个:
<applet code="MovingBoxes.class" archive="file:/E:/WebSystems/WebPages/Animations.jar"
width="350" height="350" >Animation of moving boxes</applet>