【问题标题】:Where to put files for a command-line Java program?将命令行 Java 程序的文件放在哪里?
【发布时间】:2015-08-30 07:55:37
【问题描述】:

我编写了一个 Java 程序,它接受参数然后执行。我从命令行传入这些参数(我在 Macbook Pro 上使用终端,使用 bash shell)。假设我的程序的名称是 prgm。我希望能够从 shell 中的任何目录中说出“prgm”,然后让该程序执行。所以我想我需要编写一个 bash 脚本来引用 Java 文件并接受参数,然后将该 bash 脚本放在我的 PATH 中的某个位置。 bash 文件应该放在哪里,Java 文件应该放在哪里?另外,我是否正确地假设我只需要 .class(二进制)Java 文件?

【问题讨论】:

  • 既然您知道必须将 bash 脚本放在 PATH 中,您可以自己回答第一个问题(“我将 bash 文件放在哪里”)。所有其他文件都可以从 bash 脚本中引用。
  • @laune 我知道它必须在我的路径中的某个地方,但具体在哪里?在我的 usr/local/bin 或其他地方?另外,我知道我需要从那里引用我的 java 文件,但是我应该将文件保存在哪里?我从“如果我有一个下载程序按钮,我会在哪里安装所有东西?”的角度来考虑这个问题
  • 这取决于:您是一个人在您的系统上还是有其他用户?您需要共享程序还是独占使用?
  • 我一个人在我的系统上,但我想以这样一种方式实现这一点,即不是一个人在系统上的用户也可以毫无问题地下载这个程序。该程序不需要在用户之间共享。
  • 那么 /usr/local/bin 是系统上所有用户使用程序的典型位置。 Java 的东西应该进入 /usr/local/lib 的子目录,最好是一个 jar 文件。但是:如果你想分发你的软件,你应该提供一个安装,这些选择取决于安装程序。此类规则可能因系统而异。

标签: java bash shell command-line


【解决方案1】:

一步一步:

  1. 假设 Java 可执行文件的名称为 myjavaprog
  2. 假设您的 bash 脚本的名称是 myscript
  3. 确保myscript 使用绝对路径和所需参数调用myjavaprog
  4. 调用echo $PATH,你会看到一堆路径:/some/path1:/some/other/path2:...
  5. 将您的 bash 脚本放在您想要的任何路径中,而不是 echo $PATH 返回的路径。
  6. 去随机路径。
  7. 叫你 bash 脚本bash myscript。查看myjavaprog的执行情况。

提示:

  • 如果 java 程序仅供个人使用,请将其放在以 /usr/ 开头的路径中,甚至放在您的 $HOME 目录中(并将该位置添加到您的 PATH
  • 如果java程序必须与其他用户共享,请将其放在易于访问的地方,这样其他用户就不需要修改他们的PATH变量。

【讨论】:

  • 我的 bash shell 在 $PATH 中的哪个路径重要吗?另外,关于将我的 Java 文件放在哪里的约定是什么?例如,如果我要制作一个下载程序链接,那么一切都将放在哪里的约定是什么?
  • 嗨阿德里安!可能会有很多不同的建议,或多或少取决于每个用户的偏好。但是,由于我们已经触及了 linux fie-system 层次结构的主题,您可以查看官方信息 herehere。我可以给出 2 个提示:如果您使用服务器(在许多用户之间共享的机器),请将您的个人资料放入您的 $HOME 目录并更新您的 $PATH。另一方面,如果这是您的个人计算机,只需进行实验!
猜你喜欢
  • 2011-02-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 2012-03-11
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
相关资源
最近更新 更多