1 package org.wcb.installs;
2
3 import org.wcb.installs.OSSystem;
4 import java.util.Vector;
5
6 public class WindowsSystem extends OSSystem{
7
8 private static String homeInstallString = "C:"+SEP+"Program Files"+SEP+"alice";
9 private static String homeJarString = "C:"+SEP+"windows";
10
11 /***
12 * Accessor to allow the user to specify the location
13 * they want to install the program binaries.
14 */
15 public void setInstallDirectory(String binDir){
16 homeInstallString = binDir;
17 }
18
19 /***
20 * Acessor to set the jar file location and check if
21 * the necessary jars exist in that directory.
22 */
23 public Vector setJarDirectory(String jarDir){
24 homeJarString = jarDir;
25 return jarFilesExist(homeJarString);
26 }
27
28 /***
29 * Takes the binary directory string and
30 * Starts creating the necessary directories so that
31 * files can be written into them.
32 */
33 public void makeFile(String homeBinString){
34 if(!directoryExists(homeBinString)) {
35 if(!createNewDirectory(homeBinString))
36 System.out.println("Failed to bin directory");
37 else {
38 writeBatScript(homeBinString);
39 writeServerBatScript(homeBinString);
40 }
41 } else {
42 writeBatScript(homeBinString);
43 writeServerBatScript(homeBinString);
44 }
45 }
46
47 private void writeBatScript(String homeBinString){
48 StringBuffer sb = new StringBuffer("REM Alice bat file");
49 sb.append(LINE_SEP+"\"");
50 sb.append(System.getProperty("java.home")+SEP+"bin"+SEP+"java\" -classpath \"");
51 sb.append("%CLASSPATH%;");
52 sb.append(homeInstallString+SEP+"alice.jar\" ");
53 sb.append("org.wcb.autohome.Main %1 %2 %3 %4 %5 %6 %7 %8 %9"+LINE_SEP);
54 writeFile(sb.toString(), homeBinString+SEP+"jHome.bat");
55 }
56
57 private void writeServerBatScript(String homeBinString){
58 StringBuffer sb = new StringBuffer("REM Alice Server bat file");
59 sb.append(LINE_SEP+"\"");
60 sb.append(System.getProperty("java.home")+SEP+"bin"+SEP+"java\" -classpath \"");
61 sb.append("%CLASSPATH%;");
62 sb.append(homeInstallString+SEP+"alice.jar\" ");
63 sb.append("org.wcb.autohome.JHomeServer "+homeInstallString+SEP+"alice.jar %1 %2 %3 %4 %5 %6 %7 %8 %9"+LINE_SEP);
64 writeFile(sb.toString(), homeBinString+SEP+"HAserver.bat");
65 }
66
67 }