用于在正确路径中运行 Java 类的通用脚本

发布于 2024-12-19 10:11:46 字数 513 浏览 0 评论 0原文

我有一个 package/bin 和 package/lib 的目录结构,其中 package/lib 包含 jar 文件,而 package/bin 应该包含一些脚本。

我有兴趣在 package/bin 中编写基本上从 lib/ 运行 java 类的脚本。这些脚本应该可以从任何目录运行,不一定是package/、package/bin/或package/lib。

这意味着 package/bin 中的脚本(我们称之为“run.sh”)应该执行以下操作:

  1. 识别 run.sh 脚本运行的目录。
  2. 删除该目录,以便我们最终得到 package/
  3. 添加 bin/ 到它,
  4. 并使用这个推导的目录运行必要的 java 类。

遵循步骤 1-3 的最佳方法是什么?我希望它几乎与平台无关,这样至少它可以在所有 Unix 系统和 OSX 上运行。我想避免使用 perl (我可以轻松地用 perl 编写它),而是选择 shell 脚本。

谢谢。

I have a directory structure of package/bin and package/lib, where package/lib contains jar files and package/bin should contain some scripts.

I am interested in writing scripts in package/bin that basically run java classes from lib/. These scripts should be runnable from any directory, not necessarily package/, package/bin/ or package/lib.

This means that the script in package/bin, let's call it 'run.sh' should do something like:

  1. identify the directory from which run.sh script is running.
  2. strip off the directory so that we end up with package/
  3. add bin/ to it
  4. run the necessary java classes with this deduced directory.

What would be the best way to follow steps 1-3? I would like it to be almost platform-independent, so that at the very least it would work on all Unix systems and OSX. I want to avoid using perl (I could easily write this in perl), and instead opt for a shell script.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

潦草背影 2024-12-26 10:11:46

沿着 BASH 线......

my_package_path=$(dirname `dirname $0` )

$0 为您提供正在运行的脚本的路径
dirname $0 为您提供脚本所在文件夹的路径

Along the BASH lines....

my_package_path=$(dirname `dirname $0` )

$0 gives you the path to the script you are running
dirname $0 gives you the path to the folder your script is in

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文