如何在Jar文件中运行 类?
How to run classes inside Jar file?
我创建了一个启动应用程序的 jar 文件,以允许用户select他们想要运行的测试。每个测试都有自己的 class 和 main 方法。 UI 应用程序将参数传递给表示测试的 class 的主要方法。
我能够为 UI 应用程序创建可执行 JAR 文件,但是当我 select 我想要 运行 的测试时没有任何反应。我认为是JAR文件只能处理一个主要方法。
下面是允许用户 select 测试 运行 的应用程序代码的一部分。
public class UI extends JFrame {
String[] args={Environment, Browser, TestingCoverage, DBLog, "UI"};
if (chckbxEQ_CA_Home.isSelected())
{
EQ_CA_Home.main(args);
}
if (chckbxEQ_CA_Condo.isSelected())
{
EQ_CA_Condo.main(args);
}
if (chckbxEQ_CA_Renter.isSelected())
{
EQ_CA_Renter.main(args);
}
}
您可以使用 Junit
库来做到这一点。
JUnitCore junit = new JUnitCore();
Result res = junit.run(yourTestClass);
不要调用 main() 方法以避免任何可能的中断,只需让 JUnitcore
找到合适的测试方法。
并且不要忘记将 Junit.jar
包含在类路径中(或)将其作为 jar 文件的一部分(作为胖 jar)包含。
我创建了一个启动应用程序的 jar 文件,以允许用户select他们想要运行的测试。每个测试都有自己的 class 和 main 方法。 UI 应用程序将参数传递给表示测试的 class 的主要方法。
我能够为 UI 应用程序创建可执行 JAR 文件,但是当我 select 我想要 运行 的测试时没有任何反应。我认为是JAR文件只能处理一个主要方法。
下面是允许用户 select 测试 运行 的应用程序代码的一部分。
public class UI extends JFrame {
String[] args={Environment, Browser, TestingCoverage, DBLog, "UI"};
if (chckbxEQ_CA_Home.isSelected())
{
EQ_CA_Home.main(args);
}
if (chckbxEQ_CA_Condo.isSelected())
{
EQ_CA_Condo.main(args);
}
if (chckbxEQ_CA_Renter.isSelected())
{
EQ_CA_Renter.main(args);
}
}
您可以使用 Junit
库来做到这一点。
JUnitCore junit = new JUnitCore();
Result res = junit.run(yourTestClass);
不要调用 main() 方法以避免任何可能的中断,只需让 JUnitcore
找到合适的测试方法。
并且不要忘记将 Junit.jar
包含在类路径中(或)将其作为 jar 文件的一部分(作为胖 jar)包含。