Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Perl & Java


Автор: Firebird 4.5.2007, 13:58
  Добрый день! 
  Вопрос касается запуска Java-апплетов в Perl-сценарии.
 
   Есть Java-апплет:
  
Код

import java.applet.*;
import java.awt.*;

public class TEST extends Applet
{
    int curX = 50;
    int curY = 50;
    public boolean mouseDown(int x, int y, Event e)
    {
        curX = x;
        curY = y;
        repaint();
        return true;
    }

    public void paint(Graphics g)
    {
        g.drawString("Java in Action!", curX, curY);
    }
}


   Скомпилировал его, получил класс TEST.class

   Далее пишу Perl-сценарий, в котором этот апплет должен запускаться:

Код

#!c:\perl\bin\perl.exe
use CGI qw \:standard\;

print "
  <html>
  <head>
     <title>Perl&Java</title>
  </head>

  <body>
    <applet code='TEST.class' widht=200 height=200>
     Java not supported!
    </applet>
  </body>
</html>
";  


   Запускаю сценарий в IE, но при загрузке апплета выводится сообщение Applet TEST notinited, т.к. апплет реагирует на движение мышки, то после помещения курсора мыши над апплетом выводится второе сообщение Loading Java Applet Failed...

  Апплет рабочий, запускал его сначала в HTML-скрипте, затем в PHP-сценарии, но в Perl-сценарии не запускается!!!
  В чем причина???

Автор: korob2001 5.5.2007, 10:22
Причина скорее всего в том, что твой апплет находится в каталоге /cgi-bin. Попробуй переместить апплет в каталог www и укажи к нему путь /TEST.class в теге <applet></applet>, в Perl программе.

В Perl коде, передавай заголовок.
Код

print "Content-type: text/html\n\n";
# Здесь твой print


use CGI удали, ты всё равно его здесь не используешь.

К тому же воспользуйся поиском, здесь я как-то приводил пример того, как создавать Java классы прямо из программы Perl, после чего Perl может к ним обращаться как к своим родным классам. Это позволит тебе генерировать аплет на лету и обращаться к его методам. Разумеется для приведённого апплета это и не нужно, но для более крупных проектов это может пригодиться.

Почему наследуешь от Applet, а не от JApplet?  Вообще-то рекомендуется юзать Swing.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)