Olá pessoal! Meu problema é o seguinte, eu preciso carregar um Applet pela web que carrega outro Applet por um Link, Motivo? Proteção do arquivo Jar original, assim quem quiser pegar o meu Jar original teria que baixar o Loader, decompilar e pegar o link do original pela String, mas eu irei encriptar essa String também =D
Bem estou fazendo assim:clientClassLoader = new URLClassLoader(new URL[] { new URL(jarURL) });
clientClass = clientClassLoader.loadClass(mainClass);
loader = (Applet) clientClass.newInstance();
loader.init();
Quando eu visualiso no Applet Viewer do Eclipse ele funciona perfeitamente!
Mas ao utilizar na web Após a introdução do Java, aparece uma tela dizendo : Error. Click for details.
Quando clico aparece o console apenas sem nada escrito só aquelas linhas normais.
PS: Eu ja dei um Sign no meu jar!
Alguém sabe se o java não permite esse tipo de código para funcionar na Web por motivo de segurança? Mas eu ja vi pessoas ultilizando ;/
Obrigado.
[img]http://i.imgur.com/SIeLL.png[/img]
Eu coloquei para inicializar em outra classe, ai desta outra classe ela chama a classe Loader e ai eu recebi este erro:Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.nDec")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.System.getenv(Unknown Source)
at aN.a(Unknown Source)
at client.a(Unknown Source)
at aY.a(Unknown Source)
at ap.<clinit>(Unknown Source)
Será que SecurityManager security = System.getSecurityManager(); Pode me ajudar? Tenho quase certesa que o problema é o SecurityMenager
Aqui Esta meu código(Funcional no Applet Viewer do Eclipse)import java.applet.Applet;
import java.applet.AppletStub;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Panel;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
public class LoaderApplet extends Applet implements AppletStub {
private final String JARURL = "http://realjar.tk";
private final String MAINCLASS = "MyAppet";
AppletStub stub;
public void init() {
stub = this;
System.out.println("Initializing Thread");
Thread pbThread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Initializing WebLoader");
/** Interface **/
panel = new Panel();
setBackground(Color.black);
panel.setBackground(Color.black);
setLayout(new BorderLayout());
panel.setVisible(true);
add(panel, BorderLayout.CENTER);
/** Loader **/
try {
clientClassLoader = new URLClassLoader(new URL[] { new URL(JARURL) });
clientClass = clientClassLoader.loadClass(MAINCLASS);
loader = (Applet) clientClass.newInstance();
loader.setStub(stub);
panel.setLayout(new BorderLayout());
panel.add(loader, BorderLayout.CENTER);
loader.init();
} catch (ClassNotFoundException e) {
System.out.println("Class not found Error: " + e);
e.printStackTrace();
} catch (MalformedURLException e) {
System.out.println("Url Error: " + e);
e.printStackTrace();
} catch (InstantiationException e) {
System.out.println("Instantiation Error: " + e);
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("Ilegal acess Error: ");
e.printStackTrace();
}
}
});
pbThread.setName("PbThread");
pbThread.start();
}
Applet loader;
ClassLoader clientClassLoader;
Class<?> clientClass;
Panel panel;
@Override
public void appletResize(int width, int height) {
System.out.println("Resized: " + width);
}
}