运行java类(使用jar)时如何省略包

运行java类(使用jar)时如何省略包,java,classpath,Java,Classpath,这是我的问题 #!/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_HO

这是我的问题

#!/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

我该怎么办?

Manifest.mf文件将包含主类信息- e、 g.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中配置主类。请参阅此答案谢谢您的回答。但是我想要没有MENIFEST.MF文件。还有其他解决办法吗?@noritersand是的。将类放在默认包中,即删除源文件开头的package语句,并将.class文件直接放在.jar文件中。