Java Applet 설정

Programming/JAVA,JSP 2017. 2. 28. 12:58 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java Applet 설정





Java Applet 구동 시





Apache 서버에




AmitApplet.java 를 AmitJavaApplication.jar 로 Export(Java->JAR file) 한다.


package test.Amit;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Map;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class AmitApplet extends JApplet {

	public void init() {

		try {
			for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
				if ("Nimbus".equals(info.getName())) {
					javax.swing.UIManager.setLookAndFeel(info.getClassName());
					break;
				}
			}
		} catch (ClassNotFoundException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (InstantiationException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (IllegalAccessException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (javax.swing.UnsupportedLookAndFeelException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		}
		// 

		try {
			java.awt.EventQueue.invokeAndWait(new Runnable() {
				public void run() {
					initComponents();
				}
			});
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void initComponents() {

		// String defaultCmd = "\\\\192.168.10.17\\tt\\notepad.exe";
		final String defaultCmd = "notepad.exe test.jsp";
		commandTextField = new JTextField();
		logTextArea = new JTextArea();
		runtimeButton = new JButton("getRuntime");
		processBuilderButton = new JButton("processBuilder");
		JPanel topPanel = new JPanel();

		setLayout(new BorderLayout());

		topPanel.setLayout(new GridLayout(4, 1));
		topPanel.add(new JLabel("Command"));
		topPanel.add(commandTextField);
		topPanel.add(runtimeButton);
		topPanel.add(processBuilderButton);
		add(BorderLayout.NORTH, topPanel);
		add(BorderLayout.CENTER, logTextArea);

		runtimeButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {
					try {
						Runtime.getRuntime().exec(defaultCmd);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				} else {
					try {
						Runtime.getRuntime().exec(commandTextField.getText());
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
		processBuilderButton.addActionListener(new ActionListener() {
			public synchronized void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {

					try {
						ProcessBuilder launcher = new ProcessBuilder();
						Map environment = launcher.environment();
						launcher.redirectErrorStream(true);
						launcher.directory(new File("\\\\192.168.10.17\\tt\\"));

						// environment.put("test.jsp", defaultCmd);
						launcher.command("notepad.exe");
						Process p = launcher.start(); // And launch a new
														// process

					} catch (Exception e2) {
						logTextArea.setText(e2.getMessage());
						e2.printStackTrace();
					}
				} else {
					try {
						ProcessBuilder pb = new ProcessBuilder(commandTextField.getText());
						pb.start();

					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
	}

	@SuppressWarnings("unchecked")
	public void launchScript(String cmd, String args) {
		try {
			System.out.println("args value : = " + args);
			System.out.println("cmd value : = " + cmd);
			System.out.println("Full command:  = " + cmd + " " + args);
			if (cmd != null && !cmd.trim().equals("")) {
				if (args == null || args.trim().equals("")) {
					final String tempcmd = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd);
				} else {
					final String tempargs = args;
					final String tempcmd1 = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd1 + " " + tempargs);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd + " " + args);
				}
			} else {
				System.out.println("execCmd parameter is null or empty");
			}
		} catch (Exception e) {
			System.out.println("Error executing command --> " + cmd + " (" + args + ")");
			System.out.println(e);
		}
	}

	JButton runtimeButton;
	JButton processBuilderButton;
	JTextField commandTextField;
	JTextArea logTextArea;
}






test.jsp 를 준비한다.




<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>My first WebApplication using NetBeansIDE</title>

    </head>

    <body>

        <h1>Hello World!</h1>

        <br />

        <p>WebApplication using NetBeansIDE...</p>

        

        <!-- Embedding Applet -->

<applet code="test.Amit.AmitApplet" archive="AmitJavaApplication.jar" width="400" height="350"></applet>

    </body>

</html>









Apache 는 Apache 비트에 맞는 Java 를 연결시키고


Applet 은 32비트에서 돌아간다

(컴퓨터에 32비트 Java JRE가 설치되어 있어야한다.)








Apache ROOT 폴더의 구조






Config