所以我使用 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
没有运气 - 那么命令行是什么?或者我是否需要以某种方式修改单 jar list ?
编辑:/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
最佳答案
使用如下命令行进行测试
java -cp lib/junit.jar;sw.jar org.junit.runner.JUnitCore uoa.di.ys11.hw2.TestSmithWaterman
编辑:
这应该适用于普通 jar ,但 jar 是由一个 jar 创建的
One-JAR lets you package a Java application together with its dependency Jars into a single executable Jar file.
在那之后,junit 就不可能了,因为我在我的例子中提到了 junit-4.4 来加载这些类进行测试。
关于java - 在一个 jar 里运行 Junit 测试类,在 jar 外运行 junit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14537233/