我有一个简单的Java程序,它使用:
Runtime.getRuntime().exec("/usr/bin/javaws", [path for JNLP file])
使用java web start打开JNLP文件。
但是,我需要处理未安装javaws的场景。所以我需要检查它是否已安装,如果不是,请安装它。知道怎么做其中任何一个(或两个)吗?
答案 0 :(得分:0)
首先,你假设javaws的路径是/usr/bin/javaws
,可能不是这样。
如果那么简单,那么你可以检查文件是否存在:
File javawsFile = new File("/usr/bin/javaws");
if (! javawsFile.exists()) {
System.out.println("javaws not installed");
}
话虽如此,java不必安装到任何特定位置。因此,你无法假设它在/usr/bin/
中。许多人会下载java二进制zip并简单地将其解压缩到他们选择的位置,并设置环境变量JAVA_HOME
。
现在,您可以沿着解决JAVA_HOME
变量的道路走下去 - 但即使这样,它也只会告诉您是否安装了javaws。
如果没有安装javaws,除了提示用户访问java网站并下载它之外,没有其他方法可以安装它。
您提供的路径是* nix风格。在这种情况下,它将需要root访问权来安装新的应用程序 - 这不是你可以简单制造的东西。
即使您的用户已经以root身份运行您的应用程序,我仍然会对此保持警惕。在用户的计算机上安装软件不是您的责任。