Не удается отобразить апплет из HTML с помощью кода javascript в Eclipse

Я попытался запустить java-апплет, используя код javascript в Eclipse IDE, как показано на веб-странице Встраивание Java-апплета в файл .html. Но на странице вывода отображается ошибка. Мой код для использования апплета

<script src="//www.java.com/js/deployJava.js"></script>

в головной части и

<script>
    var attributes = {
        codebase : '../src/',
        code : 'transfol.Main.class',
        //archive: 'my-archive.jar',
        width : '800',
        height : '500'
    };
    var parameters = {
        java_arguments : '-Xmx256m'
    }; // customize per your needs
    var version = '1.5'; // JDK version
    deployJava.runApplet(attributes, parameters, version);
</script>

в корпусе.

То, как я их сохранил, отображается в навигаторе как Main.class внутри пакета transfol, который находится в папке src (в Eclipse) и index.jsp в веб-контенте.

где Main.class - это апплет, а index.jsp - это файл, из которого вызывается апплет.

Я почти уверен, что проблема в кодовой базе или атрибутах кода, где должен быть указан путь, когда я нажимаю на дополнительную информацию об апплете, я получаю исключение как:

Произошло следующее исключение. Для получения дополнительной информации попробуйте запустить браузер из командной строки и изучить вывод. Для получения дополнительной информации посетите http://icedtea.classpath.org/wiki/IcedTea-Web и следуйте инструкциям по получению необходимой информации для сообщения об ошибке. Дополнительная информация может быть доступна в консоли или журналах. Даже больше информации доступно, если включена отладка.

Другая доступная информация: Версия плагина IcedTea-Web: 1.5 (1.5-1ubuntu1) 26/5/15 17:56 Исключение составляло:

net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. For more information click "more information button".
    at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:746)
    at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:675)
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:908)
Caused by: java.lang.ClassNotFoundException: Can't do a codebase look up and there are no jars. Failing sooner rather than later
    at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:716)
    ... 2 more
This is the list of exceptions that occurred launching your applet. Please note, those exceptions can originate from multiple applets. For a helpful bug report, be sure to run only one applet. 
1) at 26/5/15 5:47 PM
net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. For more information click "more information button".
    at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:746)
    at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:675)
    at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:908)
Caused by: java.lang.ClassNotFoundException: Can't do a codebase look up and there are no jars. Failing sooner rather than later
    at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:716)
    ... 2 more

person user41965    schedule 26.05.2015    source источник


Ответы (2)


Попробуйте под кодом

 <APPLET CODE=AppletSubclass.class WIDTH=anInt HEIGHT=anInt>
 </APPLET>

OR

 <object width="400" height="400" data="helloworld.class"></object> 
person harsh    schedule 26.05.2015
comment
Спасибо за ответ, но он не работает. Результат такой же, только в области апплета отображается ошибка. - person user41965; 26.05.2015

Попробуй это

Java-апплет

package cdig;

import java.applet.Applet;
import java.security.AccessController;
import java.security.PrivilegedAction;

public class CDigApplet extends Applet
{

	private static final long serialVersionUID = 1L;

	String ret;

	CDigApplet applet = this;

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public String signFile(String fileID, String pin, String token)
	{
		AccessController.doPrivileged(new PrivilegedAction()
		{
			@Override
			public Object run()
			{
				try
				{
					System.out.println("Iniciando processo de assinatura.");
				}
				catch (Exception e)
				{
					String sl = "{\"success\":false," + "\"message\":\"" + e.getMessage() + "\"}";
					ret = sl;
					System.out.println(sl);
				}

				return null;
			}
		});

		return ret;
	}

	public void init(){
	}

	public void destroy(){
	}

}

HTML

<script>
    <!-- applet id can be used to get a reference to the applet object -->
    var attributes = { id:'cdigApplet', code:'cdig.CDigApplet', archive:'cdig-applet-1.0.jar', width:1, height:1, classloader_cache:'false'} ;
    var parameters = {persistState: false, cache_option:'no' } ;
    deployJava.runApplet(attributes, parameters, '1.8');
</script>

Звоните через javascript

var res = document.getElementById("cdigApplet").signFile(Id, '', token);

Не забудьте подписать свой апплет и не запускать приложение с URL-адресом с подчеркиванием «_», подобным этому.

person Ulysses Marins    schedule 28.05.2015