java - 如何从不同的目录运行 java 程序?

标签 java bash scripting cygwin

我有一个 java 程序,我希望它能够在我机器上的任何地方运行。我想从我的 Cygwin 命令提示符运行它。我已经制作了脚本来调用 java 程序。我将 java 程序的位置添加到类路径中,当我从 java 程序的目录运行脚本时,它们就可以工作了。但是,当我尝试从任何其他目录运行时,我得到:

java.lang.NoClassDefFoundError: commandprogram/CommandProgram

这是我的脚本:

#!/bin/sh
CWD=`dirname "$0"`
java -cp "$CWD/classes;$CWD/lib/AJarFile.jar" commandprogram/CommandProgram

将 java 行更改为以下内容:

java -cp "$CWD/classes;$CWD/classes/commandprogram;$CWD/lib/AJarFile.jar" CommandProgram

产生相同的结果。

最佳答案

将您的目录添加到类路径示例:

java -classpath commandprogram CommandProgram

java -classpath directory_to_program Program

关于java - 如何从不同的目录运行 java 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190018/

相关文章:

linux - 如何使文件夹/目录对用户不可删除/不可移动但仍然可写

scripting - 'args' 在 CliBuilder 上是什么意思?

linux - 在 Bash 中捕获逻辑的返回输出

java - 如何绕过取消时的 Struts 验证

java - 在 Java 中填充多个 JTextfield 的一个 SQL 查询

java - 如何序列化接口(interface)?

linux - 在 windows 操作系统上运行用 linux 编写的 Shell 脚本

java - 使用 GWT FormPanel 和 FileUpload 上传的文件大小是否有限制?

linux - 在 Azure DevOps Pipeline 中提供 SSH 私钥的最佳方式是什么?

bash - 如何在 bash 中捕获 gitlab-runner 的输出