我想从Java环境的上下文启动.NET应用程序(与Mono兼容)。
我的猜测是,我必须以某种方式弄清楚是否安装了mono,找到位置并使用.NET应用程序路径作为参数启动它。
但是这样做的有效方法是什么?或者有更好的方法吗?
也许我应该澄清一下上下文:Java部分在一个可能有限的交互环境中作为插件运行,所以我更愿意找到一种方法,而不需要配置文件或用户界面。
答案 0 :(得分:1)
如果你已经安装了.net / mono,你可以双击exe文件并运行,那么你可以使用Desktop.open()
一样简单:
Desktop.getDesktop().open(file);
有关详细信息,请参阅此处:Using the Desktop API in Java SE 6
击>
编辑
我必须启动我的Linux机箱,我有一个单声道应用程序,这很有效:
class Launch {
public static void main( String ... arg ) {
new ProcessBuilder("/usr/bin/myapp").start();
}
}
重复,工作得很好!
答案 1 :(得分:0)
有趣的问题!答案不是那么直截了当
你肯定需要Mono来运行CLR可执行文件
你可以通过shell运行CLR可执行文件 OR 使用本地Mono安装(因为Mono也在Windows上运行),但是在Windows上运行Mono的原因很少
所以,我认为你应该先用Java检测操作系统(请不要问我怎么做),然后如果你在运行Linux找到Mono。
Mono的主要可执行文件通常位于/usr/bin
,但始终位于$PATH
中,因此您可以从控制台运行mono Executable.exe
。如果您无法在Java中运行此类命令,或者Mono不在路径中,那么您需要运行whereis mono
以获取可执行文件的路径。
没有其他想法。
答案 2 :(得分:0)
我对.Net或Mono一无所知,但我认为,启动.Net应用程序与普通应用程序没什么不同,或者?
用于与环境接口的类是java.lang.Runtime。它还允许您执行命令。 (.exec-方法)
为了构造一个合适的命令,java.lang.System上的各种功能可能会派上用场。
如果此选项不足以满足您特定情况的要求,JNI可能是您唯一的选择......