IntelliJ IDEA - 工件中的mysql(JAR)缺少

时间:2015-10-07 12:14:58

标签: java intellij-idea mysql-connector artifact

所以..这让我疯了。第2天试图让mysql处理Java并且它还没有工作。

我正在使用IntelliJ IDEA(最新版本)在Windows上开发Java应用程序,将其导出为JAR(构建工件)并在Ubuntu服务器上运行。

选择在IDEA中运行(Windows)会导致包含库( mysql-connector-java-5.0.8 ),因为程序找不到数据库。 但是,当我上传JAR(工件)时,我得到了:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我已经尝试了几乎任何事情,在花了将近16个小时之后,我没有选择并且变得非常沮丧。我在这里阅读了大部分帖子,并尝试了所有这些帖子,但都没有奏效。

查看JAR的大小,包括图书馆;只是不被Ubuntu认可。也许我需要使用某种命令参数来启用库?以下是我如何运行JAR:

java -jar output.jar

提前致谢!

3 个答案:

答案 0 :(得分:2)

我想我已经解决了这个问题,但我并不确切知道如何做。在项目结构下 - >工件我右键单击了库(JAR)并选择了“提取到输出根”#39;。我不知道这是否有任何后果,但至少目前这是有效的,我可以继续发展..

为了记录,这里是我的.IML文件:

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/production" />
    <output-test url="file://$MODULE_DIR$/test" />
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
      <excludeFolder url="file://$MODULE_DIR$/.idea" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="module-library" exported="">
      <library>
        <CLASSES>
          <root url="file://$MODULE_DIR$/libs" />
        </CLASSES>
        <JAVADOC />
        <SOURCES />
        <jarDirectory url="file://$MODULE_DIR$/libs" recursive="false" />
      </library>
    </orderEntry>
    <orderEntry type="library" name="mysql:mysql-connector-java:5.1.36" level="project" />
  </component>
</module>

答案 1 :(得分:0)

Java不支持嵌套jar文件。您需要确保所有必需的库都在您的类路径中作为单独的jar或目录
如果您正在制作企业应用程序,那么您的应用程序服务器通常应该为您提供JDBC驱动程序,这意味着您需要正确配置它并设置应用程序以使用jndi检索连接。

答案 2 :(得分:0)

请检查您的库是否包含在MANIFEST.MF文件的类路径中。

例如:

Manifest-Version: 1.0
Class-Path: mysql-connector
Main-Class: some.package.mainClass