我想构建一个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
答案 0 :(得分:2)
是和否。
不,因为你不应该这样做:想象某人支持你的代码。或者甚至自己,两年后,回到项目中:你看到了JarClassLoader
定义的数百个罐子,你在几十个“常规”项目中工作过......现在,好了,现在你看到了一个JAR文件。你会期望它有一个棘手的自定义加载方案吗?我对此表示怀疑。
是的,因为您可以添加一个主类,使用它来设置类加载器,然后从任何布局加载类。但是,您需要将清单和启动类保留在“适当的”位置。
关于类加载的教程可以在http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercises/ClassLoader/help.html
找到