2017-04-21 53 views
0

这是我的问题。运行java类时如何省略包(用jar)

#!/bin/bash 
JAVA_HOME=/usr/local/jdk1.8.0_121 
CLASSPATH=test.jar 

$JAVA_HOME/bin/java -cp $CLASSPATH com.test.job.ExampleJob 

# test.jar 
# ㄴ com 
#  ㄴ test 
#   ㄴ job 
#    ExampleJob.class 

此脚本正常工作。但是,我想省略这样的包:

$JAVA_HOME/bin/java -cp $CLASSPATH ExampleJob 
# error 

我怎么能?

+0

看到这个答案http://stackoverflow.com/a/11754570/2310289 –

回答

1

Manifest.mf文件将具有主要类信息 - 例如, MyJar.jar \ META-INF \ MANIFEST.MF

Manifest-Version: 1.0 
Main-Class: com.mycomp.myproj.dir1.MainClass1 
Class-Path: MyJar.jar 
MyJar.jar\META-INF\MANIFEST.MF 

然后,只需与Java运行-jar MyJar.jar

同样在MANIFEST.MF

为你的项目,你可以配置了主类
+0

谢谢你的回答。但我想要没有MENIFEST.MF文件。有没有其他解决方案? – noritersand

+0

@noritersand是的。将该类放入默认包中,即在源文件的开头移除包语句,并将.class文件直接放入.jar文件中。 – Andreas