Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java eclipse indigo中的可运行jar创建选项_Java_Eclipse_Jar_Executable Jar_Eclipse Indigo - Fatal编程技术网

Java 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

我使用eclipse indigo创建了一个可运行的jar,在这里我遇到了两个选项:

将所需库提取到生成的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异常。