2012-07-21 26 views
0

我想从commad行(Java 7.0,Windows XP)启动java类。将类打包为jar并将其部署到执行环境中,并与执行所需的其他jar相关联。不要滥用职权(并且不要硬编码很难被破解的jar列表)我试图使用通配符。下一个代码不适用于我启动java类和类路径通配符

java -cp ../classes/* some.package.Main 

它说:“无法从该目录的第一个罐子中找到或加载主类”。 Java不会在其他jar中寻找我的类。
它应该按照Understanding the class path and package names,不是吗?

所有工作正常,如果我设置的jar文件中明确

java -cp ../classes/playground.jar some.package.Main 

但是,这并不适合我,因为在其他坛子里我也有主要的类,我想有只有一个配置类路径启动脚本和环境变量等,只将类名称作为参数来启动。

第一个命令行有什么问题?

解决:escape wildcard processing in java classpath

感谢。

+0

什么JRE版本您使用的? – 2012-07-21 14:01:56

+0

Java版本“1.7.0_03” – 2012-07-21 14:08:52

回答

0

您需要创建一个清单并定义哪个类是主类。这是reference

+0

如果我的jar包含“有用的命令行工具”用于我的项目,可以作为分离的作业/任务启动,由管理员执行?舱单中的主要类迫使我只有一个主要类在一个罐子里。 – 2012-07-21 13:38:17

+0

@MykhayloAdamovych在这种情况下,您可以创建一个jar并传递可用于控制程序流路径的命令行参数。您不需要创建或执行多个罐子 – 2012-07-21 13:42:13

+0

当前的项目持续近10年,并且拥有大量的相关罐子,大量的脚本和公制的ant编译脚本。我需要编写一个更简单灵活的脚本来启动我需要的类,而不是为每个作业/任务创建脚本。 – 2012-07-21 13:48:52

0

运行罐子有主类,只是做:

java -jar ../classes/playground.jar 

它将..尝试

+0

我不想开始有主类的jar。我想从classpath开始确切的类。 – 2012-07-21 13:39:20