所以..这让我疯了。第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
提前致谢!
答案 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