我有一个我试图运行的java类,它引用了各种其他jar文件。它看起来像这样:
package com.myapp.test;
import java.io.File;
import com.myapp.ref;
import com.myapp.stuff;
import com.strangersapp.stuff;
import com.strangersapp.morestuff;
public class myTest {
public static void main...
...
}
com.myapp。*类位于另一个名为myapp.jar的jar文件中。 strangersapp类是在strangersapp.jar中。各种罐子中还有其他几个引用的类。我的整个目录结构如下所示:
myapp.jar
strangersapp.jar
someother.jar
yetanother.jar
etc.jar
com\myapp\test\myTest.java
我的问题是尝试编译并运行它。我尝试了显而易见但这个命令不起作用。它没有拾取所有jar文件:
javac -cp . com\myapp\test\myTest.java
java -cp . com.myapp.test.myTest
此命令也不起作用:
javac -cp ".;*.jar" com\myapp\test\myTest.java
但是,这些命令确实有效:
javac -cp ".;myapp.jar;strangersapp.jar;someother.jar;yetanother.jar;etc.jar" com\myapp\test\mTest.java
java -cp ".;myapp.jar;strangersapp.jar;someother.jar;yetanother.jar;etc.jar" com.myapp.test.mTest
有谁知道为什么我的第一个java运行语句不起作用?我不想在类路径引用中输入所有jar名称...
答案 0 :(得分:0)
如果使用-cp,则必须为要包含的所有jar命名。为了避免这种情况,只需将它们添加到清单中,java就会将它们选中。
对于javac,我认为你应该使用-classpath而不是-cp
答案 1 :(得分:0)
你应该试试这个:
javac -cp ".;*.jar" com\myapp\test\myTest.java
java -cp ".;*.jar" com.myapp.test.myTest