所以我使用one-jar将我的类及其依赖项(apache commons cli)打包在一个jar文件中(这很容易做到,请参阅Command-Line Approach部分)。现在我很好奇我是否可以使用类外的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
答案 0 :(得分:3)
使用以下命令行测试
java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore uoa.di.ys11.hw2.TestSmithWaterman
修改强>
这应该适用于普通的罐子,但罐子是由一个罐子
创建的One-JAR允许您将Java应用程序与其一起打包 依赖Jars到一个可执行的Jar文件中。
之后,junit是不可能的,因为我在我的案例中提到了junit-4.4来加载这些类进行测试。