.jar中缺少依赖项

时间:2014-01-04 23:11:11

标签: java jar intellij-idea

我刚刚使用Intelij Idea创建了jar文件(所有依赖项,想法配置在下面进行筛选)。在我的电脑上一切正常。但是当我在其他电脑上运行这个jar时我得到一个错误(可能缺少mysql-adapter依赖,错误在下面的屏幕上)。你能告诉我,我做错了吗?

我没有足够的声誉在这里发布图片,所以我在社交网络托管他们 - vk.com并提供链接。很抱歉给您带来不便。

Intelij想法设置:

http://cs14113.vk.me/c322718/v322718617/964b/HDHClNkavg4.jpg

http://cs14113.vk.me/c322718/v322718617/9642/nFliouxOVKU.jpg

其他PC上的问题: http://cs14113.vk.me/c322718/v322718617/9639/AdIOBlObCak.jpg

1 个答案:

答案 0 :(得分:0)

创建JAR文件时的标准行为以包含所有依赖项,但告诉java包含-cp所需的jar文件,例如: -cp mysql-driver.jar在运行时。我强烈建议这样做!

但是如果你真的想要一个包含所有依赖关系的“吃到饱”的jar,你可以转到File > Project Structure...,选择Modules,选择你的模块,点击{{1选项卡,然后选择列Dependencies下的复选框。

在屏幕截图中,如果您包含lib文件夹的所有jar,但是作为Classpath,您有一个mysql-connector的绝对路径名。解压缩创建的jar并查看META-INF / MANIFEST.MF。可能只是在那里引用了mysql-connector而没有包含在你的jar中:

Export

作为替代方案,您可以尝试jar tvf Rate_Updater.jar | grep mysql 并选择包含所有依赖项的工件。不确定您的项目类型是否存在类似的内容。

如果您使用Maven,则可以使用插件copy-dependencies。与使用maven一样,您将以数百行不可读的XML结束; - )