9

因此,我使用one-jar将我的类及其依赖项(apache commons cli)打包在一个 jar 文件中(这很容易做到,请参阅命令行方法一节)。现在我很好奇是否可以使用类外的 Junit jar 在 jar 内运行 java 测试类。所以里面的测试类的路径sw.jar是:

sw.jar\main\sw.jar\uoa\di\ys11\hw2\TestSmithWaterman.class

(这main\是一个罐子的东西)。我尝试了以下变化:

java -jar -cp lib/junit.jar org.junit.runner.JUnitCore  uoa.di.ys11.hw2.TestSmithWaterman

没有运气 - 那么命令行是什么?还是我需要以某种方式修改单罐清单?

编辑/boot-manifest.mf

Manifest-Version: 1.0
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Main-Class: uoa.di.ys11.hw2.Hw2

/META-INF/MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_09 (Oracle Corporation)
Main-Class: com.simontuffs.onejar.Boot
One-Jar-Main-Class: uoa.di.ys11.hw2.Hw2
4

1 回答 1

3

使用以下命令行进行测试

java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore  uoa.di.ys11.hw2.TestSmithWaterman

编辑:

这应该适用于普通罐子,但罐子是由一个罐子创建的

One-JAR 允许您将 Java 应用程序及其依赖项 Jar 打包到单个可执行 Jar 文件中。

在那之后,junit 就不可能了,因为我在我的案例中提到了 junit-4.4 来加载这些类进行测试。

于 2013-01-26T13:45:55.163 回答