非法参数例外 - 名称

时间:2014-10-21 02:29:54

标签: java html applet illegalargumentexception

过去几天我一直在寻找解决这个问题的方法,而且我正在靠墙打我的头。我知道用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);
   }   
} ` 

就像我说的那样,我到处寻找答案然后空手而归。非常感谢您提供的任何帮助。

1 个答案:

答案 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>