我有一个简单的测试程序,只有一个按钮。当用户单击按钮时,程序应该创建一个 Runnable JAR。Runnable JAR 是一个在 Firefox 中打开 google.com 的简单程序。该计划分为三个班级。
1) Main.java
package test;
public class Main {
public static void main(String[] args) {
Selenium.getGoogle();
}
}
2) Selenium.Java
package test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Selenium {
public static void getGoogle () {
WebDriver driver = new FirefoxDriver();
driver.get("http://google.com");
}
}
3)TestGUI.java
package test;
import javax.swing.*;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestGUI extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
public TestGUI() {
setSize(200, 100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
/*
* JButton.
*/
JButton startButton = new JButton("Create Runnable JAR file ! ");
add(startButton);
startButton.addActionListener(this);
}
public static void main(String[] args) {
new TestGUI();
}
public void actionPerformed(ActionEvent e) {
System.out.println("The Button Works");
String file1ToCompile = "test" + java.io.File.separator + "Main.java";
String file2ToCompile = "test" + java.io.File.separator + "Selenium.java";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null, file1ToCompile, file2ToCompile);
if (compilationResult == 0) {
System.out.println("Compilation is successful");
} else {
System.out.println("Compilation Failed");
}
}
}
我有两个主要课程。我添加TestGUI.java
到清单中,所以 GUI 会显示出来。一旦用户单击按钮,我希望我的程序创建一个可运行的 JAR,其中包含Main.java
和Selenium.java
.
null pointer exception
但是,我得到一个错误int compilationResult = compiler.run(null, null, null, file1ToCompile, file2ToCompile);
我怎样才能做到这一点?