【问题标题】:Run Java application from windows command line从 Windows 命令行运行 Java 应用程序
【发布时间】:2017-11-05 19:44:16
【问题描述】:

所以我对 Java 开发完全陌生,并且正在从事一个学校项目。这也是我在 SO 上的第一篇文章。我有两个相关的问题。首先,当我尝试从命令行运行我的代码时,我收到“错误:无法找到或加载主类 Main”。我相信这与类路径有关,但我不明白为什么它没有运行 main?也许与包裹有关?我希望它可能找不到公共库,因为为什么是 main 的路径?

command line

以下是代码的一些快照:

main

cli

第二个问题是当我将参数传递给 Intellij(下面的配置..)时,它不会在 hasOption("foo").. 处捕获它们。

debug

config

感谢您的帮助!

【问题讨论】:

  • 将问题中的所有相关代码和命令以文本形式发布。不是图像的链接。图像不可搜索。它们不能被编辑、复制、粘贴和修改。

标签: java intellij-idea command-line


【解决方案1】:

首先,您应该阅读并了解如何使用类路径。您的类路径变量设置为 apache commons lib。这意味着它是 only 会搜索您的主类的地方。实际上,您希望它首先在您当前的目录树中搜索。所以你需要将 CLASSPATH 设置为.;[other libs...](其中. 表示当前目录。)然后你需要CD [...]\sim-comm-shell 并输入java com.demand.energy.Main,因为java 命令需要一个完全限定的类名。

第二部分:选项前面有一个连字符。你的命令行应该是-h

【讨论】:

  • 第一个我添加了“.;”到类路径并执行此操作: C:\Class Material\Demand\sim-comm-shell\out\production\sim-comm-shell>java com.demandenergy.simcommand.Main 线程“main”中的异常 java.lang.NoClassDefFoundError : org/apache/commons/cli/ParseException at com.demandenergy.simcommand.Main.main(Main.java:6) 原因:java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException..etc..它现在运行代码(谢谢!)但看不到 apache 库。朝着正确的方向前进!
  • 您究竟将 CLASSPATH 设置为什么?您需要添加both 当前目录 apache 库。 CLASSPATH=.;c:\path\to\lib.jar.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 2013-04-14
  • 1970-01-01
相关资源
最近更新 更多