【问题标题】:How omit the package when running the java class (with jar)运行java类时如何省略包(带jar)
【发布时间】:2017-09-17 23:08:10
【问题描述】:

这是我的问题。

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

我该怎么办?

【问题讨论】:

标签: java classpath


【解决方案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 中配置您的主类

【讨论】:

  • 感谢您的回答。但我想要没有 MENIFEST.MF 文件。还有其他解决办法吗?
  • @noritersand 是的。将类放入默认包中,即去掉源文件开头的package语句,将.class文件直接放在.jar文件中。
猜你喜欢
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 2017-01-28
  • 1970-01-01
相关资源
最近更新 更多