我创建了一个名为a-test的maven项目,其中只有一个主类
package com.jar.test.a;
public class AppTest
{
public static void main( String[] args )
{
System.out.println( "hi test");
}
}
打包
mvn clean install
cd target
它可以正常运行
java -cp a-test-0.0.1-SNAPSHOT.jar com.jar.test.a.AppTest
或
java -cp *.jar com.jar.test.a.AppTest
并打印
hi test
但是当我想指定一个多jars路径(我想导入另一个java项目)时会发出错误
java -cp *.jar:/usr/lib/*.jar com.jar.test.a.AppTest
错误:无法找到或加载主类
当我在macbook os x 10.10.3和centos6上测试它时会出现同样的错误
java version "1.7.0_71"
我试过this,但它对我不起作用。
答案 0 :(得分:2)
您应该发出:
java -cp *:/usr/lib/* com.jar.test.a.AppTest
...因为*
暗示*.jar
。见Understanding class path wildcards:
类路径条目可以包含基本名称通配符*,这相当于指定扩展名为.jar或.JAR的目录中所有文件的列表。例如,类路径条目foo / *指定名为foo的目录中的所有JAR文件。简单地由*组成的类路径条目扩展为当前目录中所有jar文件的列表。无论文件是否被隐藏(即名称以'。'开头),都将考虑文件。
请小心使用单个*
,因为您的shell可能希望将其扩展为通配符,在这种情况下您可以引用它。
答案 1 :(得分:0)
你应该像这样(Unix系统):
java -cp a-test-0.0.1-SNAPSHOT.jar:lib/*:. com.jar.test.a.AppTest