【问题标题】:How to trim off the ".java" from a Java file when running in Bash script? [duplicate]在 Bash 脚本中运行时如何从 Java 文件中删除“.java”? [复制]
【发布时间】:2015-12-02 12:36:35
【问题描述】:

我有一些 Java 测试想要通过 java <test-name> 运行。但是,所有文件都是.class.java

如何在 Bash 脚本或终端中修剪结尾,以便命令显示为 java <test-name>

【问题讨论】:

  • 仅供参考,这个问题实际上与 Java 编程语言无关(您的文件以 .java 结尾的事实确实与问题无关)。我已经相应地编辑了标签。
  • @ajb,相反,bash 似乎与问题无关。这似乎与java 命令的参数有关,尤其是对要在其中找到入口点方法的类进行命名的参数。任何命令接受的参数都是该命令的范围。但是,鉴于这个问题可以解释,如果我理解正确,我将它留给 OP 来恢复 java 标记。
  • 也许这可以通过@karakfa 在他的回答中显示的 bash 技巧来实现。但为什么?听起来您正在为令人讨厌的陷阱做好准备(更不用说参与该项目的任何其他人了)。
  • @Candic3,当从命令行或脚本运行 Java 程序时,您永远在命令中包含 .java.class 扩展名。取而代之的是,您提供包含您想要开始的main() 方法的类的完全限定名称,例如java my.tests.Test1。该类必须先前已编译,您可能还需要提供一个-classpath 参数来告诉Java 在哪里查找该类文件。
  • @JohnBollinger 不,我认为你已经把它弄反了。你是对的,java 命令控制它需要什么参数。它需要一个没有java 扩展名的参数。但是 OP 和其他所有人都已经知道了——这不是问题所在。因此,您关于问题与 java 命令的参数有关的说法是不正确的。问题是,当您构建 java 命令时,如何从文件名中去除 .java 扩展名——这肯定是关于 bash 或其他 shell 的问题。

标签: bash shell


【解决方案1】:

如果您使用的是bash,您可以执行以下操作

$ file="path/Foo.class"
$ echo "${file%.class}"
path/Foo

【讨论】:

  • 甚至echo "${file%.*}"
猜你喜欢
  • 1970-01-01
  • 2012-08-10
  • 2021-10-20
  • 1970-01-01
  • 2012-11-22
  • 2018-06-16
  • 2021-04-03
  • 2013-08-12
  • 2011-05-08
相关资源
最近更新 更多