import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
/**
* @author Serdar TÜRKEL
*/
public class Loader {
Process pr=null;
public Loader(){
try {
URL url=new URL(”http://www.serdarturkel.com/java/Testclass.class“);
HttpURLConnection ucon=(HttpURLConnection)url.openConnection();
InputStream fis = ucon.getInputStream();
int length=ucon.getContentLength();
JProgressBar progress=new JProgressBar(0,0,length);
progress.setString(”% 0″);
progress.setStringPainted(true);
progress.setForeground(Color.blue);
progress.setBackground(Color.white);
Font font=new Font(”Tahoma”, Font.BOLD,12);
progress.setFont(font);
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame jf=new JFrame(”http://www.serdarturkel.com/java/Testclass.class“);
jf.setSize(500,50);
jf.setResizable(false);
jf.setLayout(new BorderLayout());
jf.add(progress, BorderLayout.CENTER);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we){
if(pr!=null){
pr.destroy();
}
System.gc();
System.exit(0);
}
});
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x=(int)((dim.getWidth()-jf.getWidth())/2);
int y=(int)((dim.getHeight()-jf.getHeight())/2);
jf.setLocation(x, y);
jf.setVisible(true);
Thread.sleep(1000);
File tmpFile = new File(”Testclass.class”);
if(!tmpFile.exists())
tmpFile.createnewFile();
FileOutputStream fos=new FileOutputStream(tmpFile);
int reader=-1;
int lng=0;
while((reader=fis.read())!=-1){
fos.write(reader);
lng++;
int div=(int)((((float)lng)/((float)length))*100f);
progress.setString(”% “+div);
progress.setValue(lng);
Thread.sleep(5);
}
fis.close();
fos.close();
pr = Runtime.getRuntime().exec(”java “+tmpFile.getName().replace(”.class”, “”));
} catch (Exception e) {
e.printStackTrace();
}
catch(Throwable t){
t.printStackTrace();
}
}
public static void main(String args[]){
new Loader();
}
}
Security Note: Before from run, download “http://www.serdarturkel.com/java/Testclass.class” and checking viruses and to do control source code.