/* * Encog(tm) Workbench v3.4 * http://www.heatonresearch.com/encog/ * https://github.com/encog/encog-java-workbench * * Copyright 2008-2016 Heaton Research, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * For more information on Heaton Research copyrights, licenses * and trademarks visit: * http://www.heatonresearch.com/copyright */ package org.encog.workbench.util; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.encog.Encog; public class JavaLaunchUtil { private List<String> classpath = new ArrayList<String>(); private String mainJar; public void scanJARs(File jarDir) { File[] list = jarDir.listFiles(); for(int i=0;i<list.length;i++) { File f = list[i]; if( f.isFile() ) { String str = f.toString(); final int idx = str.indexOf("jar"); if (idx != -1) { str = str.substring(idx); } classpath.add(str); if( str.indexOf("encog-workbench")!=-1 ) { mainJar = str; } } } } public void writeLaunchConfig(File stageDir, File utilDir) throws IOException { File pathEXE = new File(stageDir,"EncogWorkbench.exe"); File pathICO = new File(utilDir,"Encog.ico"); scanJARs(new File(stageDir,"jar")); PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter(new File(utilDir,"launch.xml")))); out.println("<launch4jConfig>"); out.println("<dontWrapJar>true</dontWrapJar>"); out.println("<headerType>gui</headerType>"); out.println("<jar>"+this.mainJar+"</jar>"); out.println("<outfile>"+pathEXE+"</outfile>"); out.println("<errTitle></errTitle>"); out.println("<cmdLine></cmdLine>"); out.println("<chdir></chdir>"); out.println("<priority>normal</priority>"); out.println("<downloadUrl>http://java.com/download</downloadUrl>"); out.println("<supportUrl></supportUrl>"); out.println("<customProcName>false</customProcName>"); out.println("<stayAlive>false</stayAlive>"); out.println("<manifest></manifest>"); out.println("<icon>"+pathICO+"</icon>"); out.println("<classPath>"); out.println("<mainClass>org.encog.workbench.EncogWorkBench</mainClass>"); for(String cp: this.classpath) { out.println("<cp>"+cp+"</cp>"); } out.println("</classPath>"); out.println("<jre>"); out.println("<path></path>"); out.println("<minVersion>1.5.0</minVersion>"); out.println("<maxVersion></maxVersion>"); out.println("<jdkPreference>preferJre</jdkPreference>"); out.println("</jre>"); String version = Encog.VERSION + ".0"; int year = Calendar.getInstance().get(Calendar.YEAR); out.println("<versionInfo>"); out.println("<fileVersion>"+version+"</fileVersion>"); out.println("<txtFileVersion>"+version+"</txtFileVersion>"); out.println("<fileDescription>Encog Workbench</fileDescription>"); out.println("<copyright>Copyright "+year+" by Heaton Research, Inc.</copyright>"); out.println("<productVersion>"+version+"</productVersion>"); out.println("<txtProductVersion>"+version+"</txtProductVersion>"); out.println("<productName>Encog Workbench</productName>"); out.println("<companyName>Heaton Research, Inc.</companyName>\n"); out.println("<internalName>Encog Workbench</internalName>"); out.println("<originalFilename>EncogWorkbench.exe</originalFilename>"); out.println("</versionInfo>"); out.println("</launch4jConfig>\n"); out.close(); } public static void main(String args[]) throws IOException { JavaLaunchUtil utl = new JavaLaunchUtil(); if( args.length==2 ) { File stageDir = new File(args[0]); File utilDir = new File(args[1]); utl.writeLaunchConfig(stageDir, utilDir); } else { System.err.println("Usage: [stage dir] [util dir]"); } } }