Java eclipse indigo中的可运行jar创建选项
我使用eclipse indigo创建了一个可运行的jar,在这里我遇到了两个选项:Java eclipse indigo中的可运行jar创建选项,java,eclipse,jar,executable-jar,eclipse-indigo,Java,Eclipse,Jar,Executable Jar,Eclipse Indigo,我使用eclipse indigo创建了一个可运行的jar,在这里我遇到了两个选项: 将所需库提取到生成的jar中 及 将所需库打包到生成的jar中 虽然使用第一个选项创建时只生成一个包含应用程序包和META-INF包的jar文件,但第二个选项也创建了一个org包 这个org包通过其子文件夹进一步扩展为org>eclipse>jdt>internal>jarinjarloader。jarinjarloader包包含一些我以前没有见过的类 这是第二个选项中的清单文件: Manifest-Versi
将所需库提取到生成的jar中
及
将所需库打包到生成的jar中
虽然使用第一个选项创建时只生成一个包含应用程序包和META-INF
包的jar文件,但第二个选项也创建了一个org
包
这个org
包通过其子文件夹进一步扩展为org>eclipse>jdt>internal>jarinjarloader
。jarinjarloader
包包含一些我以前没有见过的类
这是第二个选项中的清单文件:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: main.SimpleCalculator
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
main
是我的应用程序包,SimpleCalculator
是我的主类
我的问题是:
1) 这两个选项有何不同?第二个选项添加了哪些新类?第二个选项的清单中有哪些不同的名称-值对
2) 另外,非可运行jar和可运行jar之间有什么区别吗?除了它们的清单文件允许可运行jar成为可执行文件之外。(我在创建一个不可运行的jar文件时发现了一个在项目中指定主类的选项,那么我是在这里遗漏了什么,还是只是eclipse试图提供额外的帮助?)
注意:我对这两个选项有一些猜测,但它们只是。。。猜猜看
先走一步 1)这两个选项有何不同
2) 第二个选项添加了哪些新类
org
包用于jar-in-jar加载程序中的jar。使用package选项
它将成为胖jar,您的主类将不再是真正的主类,在这种情况下请参见清单
来自Ant,但你的想法是对的
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
<attribute name="Rsrc-Main-Class" value="YourRealMainClass"/>
3) 另外,除了清单文件之外,非可运行jar和可运行jar之间有什么区别吗
我不这么认为,但是从Eclipse导出不可运行的jar时,您可以指定要包含的文件,而不是更灵活的文件。1)这两个选项有何不同
2) 第二个选项添加了哪些新类
org
包用于jar-in-jar加载程序中的jar。使用package选项
它将成为胖jar,您的主类将不再是真正的主类,在这种情况下请参见清单
来自Ant,但你的想法是对的
<attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
<attribute name="Rsrc-Main-Class" value="YourRealMainClass"/>
3) 另外,除了清单文件之外,非可运行jar和可运行jar之间有什么区别吗
我不这么认为,但是从Eclipse导出不可运行的jar时,您可以指定要包含的文件,而不是更灵活的文件。第一个问题的答案是,第一个选项提取依赖类文件和资源,然后将它们打包为jar文件,您需要注意使用此选项的许可证问题 至于第二个选项,它只打包,即:将jar文件原样添加到jar文件中,并通过清单引用它们 还有一个用于创建可运行jar文件的选项,它将所有依赖项jar文件放在项目可运行jar旁边的文件夹中,并在清单中包含对该文件夹中jar的引用
第二个问题的答案是,是的,eclipse正试图通过使用您的运行时配置使生活变得更轻松,这样您就可以基于您选择的任何配置创建一个可运行的jar。您可以通过手动创建包含主类的清单来创建可运行的jar。第一个问题的答案是,第一个选项提取依赖类文件和资源,然后将它们打包为jar文件,您需要注意使用此选项时的许可证问题 至于第二个选项,它只打包,即:将jar文件原样添加到jar文件中,并通过清单引用它们 还有一个用于创建可运行jar文件的选项,它将所有依赖项jar文件放在项目可运行jar旁边的文件夹中,并在清单中包含对该文件夹中jar的引用
第二个问题的答案是,是的,eclipse正试图通过使用您的运行时配置使生活变得更轻松,这样您就可以基于您选择的任何配置创建一个可运行的jar。您可以通过手动创建包含主类的清单来创建一个可运行的jar。@NikolayKuznetsov我已经读过了,它没有回答我的问题questions@NikolayKuznetsov我已经读过了,它没有回答我的问题。当我在eclipse中使用non-runnable jar选项创建一个可运行的jar时,为什么没有添加这些加载程序类?那么它不需要它们吗?还有为什么清单文件中的
类路径
和Rsrc类路径
的值不同?保持它们不变是否也会起作用?@SurenderThakran,如果您将依赖的罐子嵌入一个罐子,则会添加该加载器。@SurenderThakran,因为这是一个特例。如果您将值重置为与提取选项
相同的值,则会出现许多ClassNotFound异常。当我在eclipse中使用非runnable jar选项创建可运行jar时,为什么不添加这些加载程序类?那么它不需要它们吗?还有为什么清单文件中的类路径
和Rsrc类路径
的值不同?保持它们不变是否也会起作用?@SurenderThakran,如果您将依赖的罐子嵌入一个罐子,则会添加该加载器。@SurenderThakran,因为这是一个特例。如果将值重置为与提取选项相同的值
,则会出现许多ClassNotFound异常。