当前位置: 首页 > 面试题库 >

是否可以打包可执行文件以便可以从Java运行它?

茹正祥
2023-03-14
问题内容

简而言之,我需要能够将已编译的可执行文件粘贴到Java jar文件中,然后能够从Java运行它(可能通过ProcessBuilder)。

原因 ,是我想使用Java来包裹ImageMagick的可执行文件成分的图像处理弹性的Map
Reduce任务。EMR只希望获取一个jar文件,因此我认为没有空间在旋转的数据节点上安装软件。


问题答案:

jar中的可执行文件是一种资源,您可以通过Stream访问它,并将可执行文件扩展到TEMP目录,然后使用ProcessBuilder执行它。

File target = new File( System.getProperty( "java.io.tmpdir" ), <filename> );
InputStream  is =
   getClass().getClassLoader().getResourceAsStream( <path to rc> );
OutputStream os = new FileOutPutStream( target );
<copy is to os>
Process p = new ProcessBuilder( target ).start();


 类似资料:
  • 问题内容: 现在我有了一些C源代码,我想在我的Java应用程序中使用它。我需要执行C源代码,并将结果返回到我的Java应用程序。与其将所有C源代码重写为Java,我如何在Java应用程序中重用C源代码? 问题答案: 看一下Java Native Interface 。 Java本机接口(JNI)是一种编程框架,它使Java虚拟机(JVM)中运行的Java代码能够被本机应用程序(特定于硬件和操作系统

  • 通过on_delete选项,Django提供了各种方法来处理具有被删除对象外键的对象。 我想知道是否有一种方法,我可以做类似的事情,但有条件的。下面是一个场景。我正在使用Django1.5新的自定义用户模型,我的所有用户都有一个网站的外键。像这样: 如果一个站点被删除了,那么我更愿意删除所有链接到该站点的非超级用户(即类似KASKADE的behavoir),因为它们的存在现在已经没有意义了。但如果

  • 问题内容: 我想将所有内容都保留在virtualenv中。OpenCV有可能吗?我可以从头开始构建,我是否只需要先设置virtualenv,然后使用特殊的编译标志告诉它安装在哪里? 问题答案: 我发现解决方案是必须将cv2.so和cv.py复制到运行virtualenv的目录,然后pip install numpy。为此,我使用了Ubuntu12.04。

  • 问题内容: 是否可以在Java属性文件的下一行继续长字符串? 例如,以某种方式 当我得到它时,它将返回“ Hello World”? 问题答案: 行尾的反斜杠使您可以跨越多行,而以行开头的空格将被忽略: 在Java文档这样说: 逻辑行包含一个键元对的所有数据,这些数据可以通过用反斜杠字符将行终止符序列转义而分布在几条相邻的自然线上。

  • 是否可以直接运行我的模拟,而不必查看GUI?我感兴趣的只是控制台输出数据,所以我不需要与GUI交互来播放、暂停或重置模拟。

  • 问题内容: 是否有可能以某种方式停止或终止JavaScript,从而防止再次发生基于JavaScript的执行,而无需重新加载浏览器? 我在想JavaScript等同于PHP。 问题答案: 简短答案: 如果您想了解更多,请继续阅读。 您是否要停止JavaScript的开发/调试工作? 代码中的表达式将停止页面执行,然后您的浏览器开发人员工具将使您可以查看页面冻结时的状态。 您是否要故意停止设计您的