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(); Mapenvironment = 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
'Programming > JAVA,JSP' 카테고리의 다른 글
Java notepad.exe Runtime.getRuntime().exec ProcessBuilder 로 실행하기 (0) | 2017.03.02 |
---|---|
Java CreateProcess Error=2 AccessControlException (0) | 2017.02.28 |
Java SocketServer control Image, DBConnect, String (1) | 2016.10.28 |
Get client IP, Location, Address using just JavaScript? (0) | 2016.04.26 |
Web Browser 점유율 통계 (0) | 2016.04.18 |