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