【问题标题】:Export and run java jar file in Ubuntu在 Ubuntu 中导出并运行 java jar 文件
【发布时间】:2011-11-18 03:14:46
【问题描述】:

我从 Springsource Tools Suite 导出了一个 jar 文件,当我尝试在命令行中执行它时,我总是收到这个错误:

线程“main”中的异常 java.lang.NoSuchMethodError: main

这是我在 jar 文件中输入的命令:java -cp ojdbc6.jar oracle.jdbc.driver.OracleDriver -jar ETS.jar

我已经将主入口点设置为具有 main 方法的类。有什么建议吗?

【问题讨论】:

  • 如果你只做java -cp ojdbc6.jar -jar ETS.jar会发生什么?
  • 您可以将 -jar 与 -cp 结合使用

标签: java ubuntu jar terminal


【解决方案1】:

请参阅此链接,了解如何在打包应用程序时在清单中设置应用程序入口点。

基本上你应该有一个清单来标识主类。

http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

【讨论】:

    【解决方案2】:

    您正在通过“oracle.jdbc.driver.OracleDriver”在命令行中指定入口点,它会覆盖目标 jar 文件中的任何指定。假设您的 ETS.jar 设置正确,以下内容就足够了。

    java -cp ojdbc6.jar -jar ETS.jar
    

    而且 oracle.jdbc.driver.OracleDriver 没有静态 main 方法。

    【讨论】:

    • 我之前尝试过,但是当我这样做时会发生此异常。java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(URLClassLoader.java:202 ) 在 java.security.AccessController.doPrivileged(Native Method)
    【解决方案3】:
    java -cp ojdbc6.jar oracle.jdbc.driver.OracleDriver -jar ETS.jar
    
    1. 使用-jar 选项时会忽略类路径。在ETS.jar 的清单中指定ojdbc6.jar
    2. oracle.jdbc.driver.OracleDriver 应该是什么意思?
      • 如果尝试将单个未压缩的类添加到类路径中,那么这不是解决问题的方法。
      • 如果打算作为主类,则应在 Jar 的清单中提及。 OTOH,听起来确实不像主要课程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 2015-07-25
      • 2013-06-08
      • 2012-11-23
      • 2014-05-06
      • 2015-09-08
      • 1970-01-01
      相关资源
      最近更新 更多