从 Java 应用程序调用 Cygwin

发布于 2024-10-12 07:32:02 字数 90 浏览 3 评论 0原文

我需要从Java代码中调用Cygwin(例如:从在Linux和Windows上运行的Java应用程序中调用Cygwin中的make命令)。有人有解决这个问题的经验吗?

I need to call Cygwin from Java code ( example : to call make command in Cygwin from Java app which run on linux and windows ).Does anybody have experience with this problem ?

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

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

发布评论

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

评论(2

他不在意 2024-10-19 07:32:02

我认为你必须区分 Linux 和 Windows

  • 上的代码,只需在 Windows 上执行命令
  • 执行命令即可

,在 cygwin 中使用C:\cygwin\bin\bash.exe --login -i -c

注意:您可以使用 apache commons exec 从 java 启动外部命令

I think you have to differentiate youre code for linux and windows

  • on linux simply execute the command
  • on windows lauch your command in cygwin with

C:\cygwin\bin\bash.exe --login -i -c <cmd>

note: you may use apache commons exec to lauch an external command from java

笔芯 2024-10-19 07:32:02

从 Java 使用 ProcessBuilder:

http://download.oracle。 com/javase/7/docs/api/java/lang/ProcessBuilder.html

您需要确保您的路径/环境设置正确,但这取决于您的计算机和设置。

另外,请注意,许多 cygwin“功能”(例如 less、awk、sed 等)只是可以直接调用的二进制文件(可执行文件)——不需要 bash shell 来方便访问这些文件。查看 bin 文件夹所在位置的实际文件(通常为 c:/cygwin/bin),并尝试直接从 ProcessBuilder 调用这些文件。如果您需要实际利用 shell(例如,管道、变量、通配符等),那么那就是一个不同的故事 - 然后您将与 bash.exe 文件本身集成(检查手册页以获取使用信息)。

Use ProcessBuilder from Java:

http://download.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

You will need to make sure your path/environment is set up properly, but that depends on your machine and set up.

Also, note that many cygwin "capabilities" (e.g., less, awk, sed, etc) are simply binaries (executables) that you can call directly -- no need for the bash shell to facilitate access to those. Look at the actual files in wherever your bin folder is (usually c:/cygwin/bin) and try calling those directly from ProcessBuilder. If you need to actually leverage the shell (e.g., pipes, variables, globbing, etc) then that's a different story -- you would then integrate with the bash.exe file itself (check the man page for usage info).

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