我正在做一个与mysql数据库交互的简单java应用程序。它应该在ubuntu服务器上运行。我正在用intellij的想法开发它,它在那里非常有效。
但是,当我生成jar文件并在ubuntu命令行中启动它(服务器和运行ubuntu的家用电脑)时,什么都不起作用。
我只是简单地键入java -jar %my_jar_filename%
然后得到错误
“无法加载主类。。。class.forname(“com.mysql.jdbc.driver”)
我知道,既然Java5(我不确定这里使用的是哪个版本,我使用的是8)就没有必要编写它,但是如果我不编写它,我会得到
“找不到合适的驱动程序”
我在google上搜索了这个问题,我找到的唯一解决方法是确保驱动程序确实存在于pc上,并添加这个驱动程序 Class.forName("");
这帮不了我。驱动程序存在,因为在ide程序中工作。我认为问题在于java选项。我试着通过 java -cp
,
但它给了我同样的错误,甚至试图从源代码通过javac在终端上编译程序,但也是同样的问题。在我的电脑上mysql连接器在文件夹中 usr/share/java/
应用程序最终应该运行的服务器具有相同的设置我做错了什么?
**解决了:*谢谢大家解决方法很简单。这个答案有帮助https://stackoverflow.com/a/45303637/9184305
2条答案
按热度按时间kwvwclae1#
这可能是因为您使用了错误的驱动程序-我们改用此类:
阅读您的描述时,您可能也会遇到这样的问题:您的代码在ide中工作,但当您尝试从jar/命令行运行它时却没有。
那样的话,
你是如何制作jar的?
您是否将所有依赖项与jar一起部署?
是否有指示主类的manifest.mf文件?
uubf1zoe2#
这看起来像是类路径的问题,它可能没有h jar文件。我建议使用maven并创建maven项目和构建jar文件。maven将负责依赖关系和打包。