2015-10-07 62 views
0

所以..这是推动我坚果。试图让MySQL在Java上工作的第2天,它仍然无法正常工作。的IntelliJ IDEA - 神器(JAR)MySQL的缺失

我在Windows上使用的IntelliJ IDEA(最新版本)开发一个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 

在此先感谢!

+0

您使用的构建脚本?如果是这样,请将其包含在您的问题中 – leeor

回答

0

嵌套的jar文件不支持Java。您需要确保所有必需的库都在您的类路径中作为单独的jar或目录。

如果你正在做一个企业应用程序,应用程序服务器通常应为您提供的JDBC驱动程序,这意味着你需要配置正确并设置应用程序检索使用JNDI的连接。

0

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

例如:

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

我想我已经解决了这个问题,但我不知道究竟如何。在项目结构 - >工件下,我右键单击库(JAR)并选择“提取到输出根目录”。我不知道这有什么concequences,但至少在目前,这是工作,我可以继续发展..

为了记录在案,这里是我的.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>