我是 Perl 的新手,但已经使用 Java 编程几个月了(来自 C++ 背景)。我写了一个解析一些数据日志的 Perl 脚本,现在我工作的客户想要一个 GUI。 GUI 已创建为 java 小程序(使用 Netbeans),我想将 perl 脚本“嵌入”其 jar 文件中作为默认安全功能。预计 perl 脚本将来会进行多次更新,因此我想对其进行设置,以便在更新出现时用户必须做的就是通过 GUI 定义最新 perl 脚本的新文件路径。我已经使用文件浏览器实现了此功能,并且一切正常。
我遇到的问题非常简单,对于具有更多 Java 经验的人来说可能不是很难。以防万一他们将来收到的更新的 perl 脚本无法正常工作,我希望他们能够使用默认的“嵌入式”脚本(如果他们不得不求助于此)。当我通过 Netbeans 运行 applet 时,一切正常,但是当我尝试从命令行运行 jar 文件时,程序返回一个错误,指出找不到该文件。我可能没有使用正确的术语来搜索此问题的解决方案,但我希望能够让我的 jar 文件在运行时执行嵌入式 perl 脚本。任何建议表示赞赏。我试过将 perl 文件放在与 java 文件相同的包中,并仅通过文件名调用脚本,但这是不行的。
最佳答案
您可以访问 jar 中的任何文件作为类路径资源,但您将遇到的问题是用户可能没有安装 perl 解释器。
编辑:既然您已经提到用户将拥有 Perl 运行时,那么这是可行的。您可以尝试使用 Process.getOutputStream()
管道传输文件的内容,或者使用 File.createTempFile()
将内容复制到临时文件并将该文件名传递为perl 解释器的参数。
关于java - 如何将 perl 脚本嵌入到 jar 文件中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837941/