Java 在Eclipse中创建META-INF/services文件夹
我试图用Java创建一个可扩展的应用程序,并选择使用SPI。根据下面的内容,我应该在jar中的Java 在Eclipse中创建META-INF/services文件夹,java,eclipse,meta-inf,service-provider,Java,Eclipse,Meta Inf,Service Provider,我试图用Java创建一个可扩展的应用程序,并选择使用SPI。根据下面的内容,我应该在jar中的META-INF/services中创建一个特定的文件,但不知道如何创建。 我知道如何使用META-INF创建jar,但找不到如何创建services文件夹和该文件夹中的特定文件的方法。(我正在使用Eclipse) 谢谢你的帮助 由于教程指示手动创建,而不是使用ant或maven或其他构建工具,因此只需在根级别创建一个名为META-INF的文件夹,其中包含一个名为services的子文件夹和一个名为MA
META-INF/services
中创建一个特定的文件,但不知道如何创建。
我知道如何使用META-INF
创建jar,但找不到如何创建services
文件夹和该文件夹中的特定文件的方法。(我正在使用Eclipse)
谢谢你的帮助 由于教程指示手动创建,而不是使用ant或maven或其他构建工具,因此只需在根级别创建一个名为META-INF的文件夹,其中包含一个名为services的子文件夹和一个名为MANIFEST.MF的文件 我不确定您计划如何执行jar文件,因为现在您可以在
MANIFEST.MF
中放这一行:
Manifest-Version: 1.0
对于服务文件夹,您需要创建一个名为com.example.dictionary.spi.dictionary
的文件,其中包含教程中提到的以下一行内容:-
com.example.dictionary.GeneralDictionary
FYI-META-INF是一个内部Java元目录。一般来说,您希望依靠您的打包工具(如ant或maven)来构建META-INF文件夹的内容,而不是自己完成
您可以查看META-INF文件夹内容的详细信息:-
假设您正在构建应用程序,您需要添加一个metainf文件集,或者更好地使用如下的服务指令
<jar jarfile="pinky.jar">
<fileset dir="build/classes"/>
<service type="javax.script.ScriptEngineFactory"
provider="org.acme.PinkyLanguage"/>
</jar>
其中包含服务实现的名称
com.mycorp.services.Fooservice
如果您在项目下使用Eclipse的“Runnable JAR file export”生成JAR文件,请选择“另存为ANT脚本”,然后修改ANT脚本,将其打包到上述服务中。他正在按照教程要求手动创建。好吧,到目前为止,我一直在使用Eclipse中的向导构建jar。@tom-一旦您开始构建企业应用程序,您就会希望使用像
ant
或maven
这样的构建工具。不过,使用eclipse构建JAR是可以的,非常感谢。尽管我认为CoolBeans的答案是可以接受的,因为这对我来说比较容易,但你的答案确实有帮助too@tom,如果要使用jar导出器,请使用可运行的jar文件导出,它有一个将导出保存为ant构建文件的选项。保存它,然后编辑到你的心的内容。谢谢,简单,做了job@tom-没问题。欢迎来到堆栈溢出!
jar -uf jarfile.jar META-INF/services/name.of.general.service
com.mycorp.services.Fooservice