Java 6:构建一个jar,其主类包不在jar的根目录下

时间:2011-10-24 16:16:35

标签: java jar manifest

我想构建一个Jar,其主类包不在jar的根目录。

在应用程序中,我刚刚编写了一个Main类

com.gmail.bernabe.laurent.test.HelloWorld

我可以简单地从Eclipse IDE中创建一个Runnable jar,但我想更进一步 =>让最后的jar像这样组织


=> META-INF

=>库

=====> COM

==========> Gmail的

...


而不是:

=> META-INF

==> COM

==> Gmail的

...


是否可以配置Manifest文件以便Jar正常运行?

提前致谢


为什么我要这样做?

我想构建一个基于JOGL的jar,如下所示

=> JOGL (subdirectories are JOGL just needed files)
=> CORE (subdirectorie is the core application package)
=> LAUNCHER (subdirectory is the custom classloader package)
=> META-INF

1 个答案:

答案 0 :(得分:2)

是和否。

不,因为你不应该这样做:想象某人支持你的代码。或者甚至自己,两年后,回到项目中:你看到了JarClassLoader定义的数百个罐子,你在几十个“常规”项目中工作过......现在,好了,现在你看到了一个JAR文件。你会期望它有一个棘手的自定义加载方案吗?我对此表示怀疑。

是的,因为您可以添加一个主类,使用它来设置类加载器,然后从任何布局加载类。但是,您需要将清单和启动类保留在“适当的”位置。

关于类加载的教程可以在http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercises/ClassLoader/help.html

找到