Zac*_*c B 5 java preprocessor shebang intellij-idea
语境:
我经常使用Java 启动 shebang来使我的 Java 源文件像脚本一样运行。我还经常直接从 IntelliJ IDEA 运行项目。我的许多 Java 文件都以#!/path/to/my/java/launcher.
我意识到这种做法在除了最基本的测试场景之外的所有场景中都是有问题的,但这就是我使用它的全部目的。
这很方便,因为当我不在 IDEA 中进行本地测试时,我经常在多个不同的服务器上运行测试。将 IDEA 指向不同的远程服务器以在其上运行代码很麻烦,而直接访问这些服务器(代码已经存在,因为它存储在网络共享上)并使用 运行文件./MyFile.java,或者指示其他人执行以下操作要容易得多相同的。
问题:
如果我在 IDEA 中有一个带有 Java shebang 的文件,它将无法编译。该#!行(以及文件的其余部分)被 IDE 检测为语法错误。
问题:
如何配置 IDEA 来处理包含技术上无效语法 shebang 的 Java 文件?
理想情况下,我能够告诉 IDEA“#!在语法检查/编译时忽略 .java 文件中第一个和开头的行”。但是,如果我可以配置一条“语法检查/编译时忽略所有 .java 文件的第一行”规则,我也会很高兴。
更根本地说:如何让 IDEA 支持(编译,认为有效)包含 -#!前缀第一行的 Java 文件?
我尝试过的:
javac以使用管道/匿名文件描述符并tail排除第一行;没有这样的运气。构建并运行脚本是否因某种原因不可接受?
#!/bin/bash
set -e
CLASSPATH="..."
javac -cp "$CLASSPATH" "$1"
java -cp "$CLASSPATH:." "$1"
Run Code Online (Sandbox Code Playgroud)
这看起来并不比您链接到的 shebang 解决方案更糟糕(实际上更好,因为它是显而易见的和标准的),因为它也依赖于外部文件。
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |