You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
package com.fr.start; |
|
|
|
import com.fr.design.RestartHelper; |
|
import com.fr.process.FineProcess; |
|
import com.fr.process.engine.FineJavaProcessFactory; |
|
import com.fr.process.engine.core.FineProcessContext; |
|
import com.fr.stable.StableUtils; |
|
|
|
import java.io.File; |
|
|
|
/** |
|
* @author hades |
|
* @version 10.0 |
|
* Created by hades on 2020/2/21 |
|
*/ |
|
public class DesignerLauncher { |
|
|
|
private static final String BIN = "bin"; |
|
private static final String DOT ="."; |
|
private static final String BIN_HOME = generateBinHome(); |
|
|
|
private static final DesignerLauncher INSTANCE = new DesignerLauncher(); |
|
|
|
private String[] args; |
|
|
|
private DesignerLauncher() { |
|
|
|
} |
|
|
|
private static String generateBinHome() { |
|
return DOT.equals(StableUtils.getInstallHome()) ? |
|
DOT : StableUtils.getInstallHome() + File.separator + BIN; |
|
} |
|
|
|
public static DesignerLauncher getInstance() { |
|
return INSTANCE; |
|
} |
|
|
|
public void start(String[] args) { |
|
this.args = args; |
|
FineJavaProcessFactory.create(). |
|
entry(MainDesigner.class). |
|
javaRuntime(DesignerJavaRuntime.getInstance().getJavaExec()). |
|
classPath(DesignerJavaRuntime.getInstance().getClassPath()). |
|
inheritJvmSettings(). |
|
jvmSettings(DesignerJavaRuntime.getInstance().getJvmOptions()). |
|
arguments(args). |
|
directory(BIN_HOME). |
|
startProcess(DesignerProcessType.INSTANCE); |
|
DesignerSuperListener.getInstance().start(); |
|
} |
|
|
|
private void beforeExit() { |
|
DesignerSuperListener.getInstance().stopTask(); |
|
FineProcess process = FineProcessContext.getProcess(DesignerProcessType.INSTANCE); |
|
process.destroy(); |
|
} |
|
|
|
public void exit() { |
|
beforeExit(); |
|
DesignerSuperListener.getInstance().stop(); |
|
System.exit(0); |
|
} |
|
|
|
public void restart() { |
|
beforeExit(); |
|
RestartHelper.restart(); |
|
} |
|
}
|
|
|