ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/java/PlatformTools/src/net/oni2/platformtools/applicationinvoker/Wine.java
Revision: 767
Committed: Sun Mar 31 16:02:09 2013 UTC (12 years, 6 months ago) by alloc
Content type: text/x-java
File size: 1357 byte(s)
Log Message:
AEI2 0.99y:
- Perhaps fixes launching Oni on MacOS

File Contents

# Content
1 package net.oni2.platformtools.applicationinvoker;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.Vector;
6
7 import net.oni2.platformtools.PlatformInformation;
8 import net.oni2.platformtools.PlatformInformation.Platform;
9
10 /**
11 * @author Christian Illy
12 */
13 public class Wine {
14 private static File winePath = null;
15 private static int isInst = -1;
16
17 /**
18 * @return Is Wine installed?
19 */
20 public static boolean isInstalled() {
21 if (isInst < 0)
22 getRuntimeExe();
23 return isInst == 1;
24 }
25
26 /**
27 * @return path to wine, null if not found or not Linux
28 */
29 public static File getRuntimeExe() {
30 if (isInst < 0) {
31 isInst = 0;
32 if (PlatformInformation.getPlatform() == Platform.LINUX) {
33 Vector<String> params = new Vector<String>();
34 params.add("wine");
35 ApplicationInvocationResult res = null;
36 try {
37 res = ApplicationInvoker.executeAndWait(EExeType.OSBINARY,
38 null, new File("which"), params, false);
39 } catch (IOException e) {
40 e.printStackTrace();
41 } catch (ERuntimeNotInstalledException e) {
42 e.printStackTrace();
43 }
44 if (res != null) {
45 if (res.output.size() > 0) {
46 if (res.output.get(0).startsWith("/")
47 && res.output.get(0).endsWith("wine")) {
48 winePath = new File(res.output.get(0));
49 isInst = 1;
50 }
51 }
52 }
53 }
54 }
55 return winePath;
56 }
57 }