diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java index ee57bb551b..7d63571ad6 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerWorkspaceProvider.java @@ -5,8 +5,10 @@ import com.fr.design.EnvChangeEntrance; import com.fr.design.constants.DesignerLaunchStatus; import com.fr.design.env.DesignerWorkspaceGenerator; import com.fr.design.env.DesignerWorkspaceInfo; +import com.fr.design.env.LocalDesignerWorkspaceInfo; import com.fr.log.FineLoggerFactory; import com.fr.module.Activator; +import com.fr.stable.StringUtils; import com.fr.value.NotNullLazyValue; import com.fr.workspace.WorkContext; import com.fr.workspace.Workspace; @@ -19,6 +21,8 @@ import org.jetbrains.annotations.NotNull; */ public class DesignerWorkspaceProvider extends Activator { + private static final String SPECIFY_WORKSPACE = "fr.designer.workspace"; + private NotNullLazyValue startupArgs = new NotNullLazyValue() { @NotNull @Override @@ -37,7 +41,13 @@ public class DesignerWorkspaceProvider extends Activator { } else { try { String current = DesignerEnvManager.getEnvManager().getCurEnvName(); - DesignerWorkspaceInfo workspaceInfo = DesignerEnvManager.getEnvManager().getWorkspaceInfo(current); + String workspacePath; + DesignerWorkspaceInfo workspaceInfo; + if (StringUtils.isNotEmpty(workspacePath = System.getProperty(SPECIFY_WORKSPACE))) { + workspaceInfo = LocalDesignerWorkspaceInfo.create(StringUtils.EMPTY, workspacePath); + } else { + workspaceInfo = DesignerEnvManager.getEnvManager().getWorkspaceInfo(current); + } Workspace workspace = DesignerWorkspaceGenerator.generate(workspaceInfo); boolean checkValid = workspace != null && workspaceInfo.checkValid(); if (!checkValid) {