0

我有一个我正在尝试运行的 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 文件中。陌生人应用程序类在一个陌生人应用程序.jar 中。各种 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 run 语句不起作用?我不想在类路径引用中键入所有 jar 名称...

4

2 回答 2

0

如果你使用 -cp 你必须命名所有你想要包含的 jars。为避免这种情况,只需将它们添加到您的清单中,java 就会选择它们。

对于 javac 我认为你应该使用 -classpath 而不是 -cp

于 2013-11-12T23:14:57.533 回答
0

你应该试试这个:

javac -cp ".;*.jar" com\myapp\test\myTest.java
java -cp ".;*.jar" com.myapp.test.myTest
于 2013-11-12T23:19:22.713 回答