【问题标题】:Meaning of the java command in unixunix中java命令的含义
【发布时间】:2014-03-18 15:33:22
【问题描述】:

我正在尝试执行保存在 Linux 系统中的 .sh 文件。 .sh 文件中的所有命令都工作正常,除了一个给出执行权限被拒绝语句的 java 命令。任何人都可以帮助我理解整个命令以及权限被拒绝返回的原因是什么?我也试过 chmod 777 来获得许可,但还是一样。 -classpath .:lib/:cl-ebook-import.jar 的确切含义是什么?

java命令是-

   java -DCL_LOG_DIR="/Users/MO/Importebook" -classpath .:lib/:cl-ebook-import.jar org.xy.ebook.ebook.CLImportebook

返回我得到的是-

  ksh: java: 0403-006 Execute permission denied.

【问题讨论】:

  • 你的java在哪里?您可以通过which java 找到它。这个文件有执行权限吗?
  • 一个副本,虽然它不允许我设置它,因为它没有好的答案:stackoverflow.com/questions/19398676/…
  • 首先要测试的是运行“java”。没有其他的。然后看看会发生什么。
  • 当我使用“which java”命令时,我得到了这个返回 - 0652-141 /usr/bin /etc /usr/sbin 中没有 java .....这个文件是可执行的,因为我能够从保存在另一个系统中的 .bat 文件执行它。
  • @Anilkumar:啊!那么答案很简单!您需要安装 Java。实际上是一个 JRE。 Java 运行时环境。您不需要开发工具。

标签: java linux unix


【解决方案1】:

该命令的确切含义是启动Java。它告诉 Java 类路径,Java 将在其中查找要加载的类。路径由冒号分隔。所以 -classpath 参数告诉 Java 是在 . (当前目录)、lib/ 和 cl-ebook-import.jar。

然后它告诉 Java 启动 org.xy.ebook.ebook.CLImportebook 作为应用程序的主类。

-DCL_LOG_DIR 告诉 Java 将名为 CL_LOG_DIR 的属性设置为“/Users/MO/Importebook”。

你知道,你确定这是一个 Linux 系统吗?因为这条路径在我看来就像 Mac OS X。

【讨论】:

  • lib/目录在Linux系统中是否有特殊意义?我在哪里可以找到这个?有什么命令可以查找这个目录吗?
  • @Anilkumar:没有特殊含义。这不是绝对路径,因为它不以 / 开头,所以它表示当前目录下名为 lib 的目录。 shell 脚本可能会在尝试启动该程序之前找到它的安装位置并执行“cd”命令。
  • 我在当前目录中没有看到任何 lib 文件夹。还好吗?
  • 你是对的,-DCL_LOG_DIR 在 MAC OS 的 .sh 脚本中...我实际上必须为 Linux 系统编写一个新的 .sh 文件,它必须像 MAC OS 可用的 .sh 文件一样工作.你能告诉我Linux系统中-DCL_LOG_DIR对应的命令是什么吗?
  • @Anilkumar:将其设置为您想要写入日志文件的任何目录。我会假设,因为这个名字。
猜你喜欢
  • 2014-01-18
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
相关资源
最近更新 更多