Index: plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss71ServerRuntime.java
===================================================================
--- plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss71ServerRuntime.java	(revision 42427)
+++ plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss71ServerRuntime.java	(working copy)
@@ -13,6 +13,7 @@
 import org.eclipse.core.runtime.IPath;
 import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
 import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
+import org.jboss.ide.eclipse.as.core.util.JavaUtils;
 
 public class LocalJBoss71ServerRuntime extends LocalJBoss7ServerRuntime implements IJBossRuntimeConstants {
 	public static final String CONFIG_FILE = "org.jboss.ide.eclipse.as.core.server.internal.v7.CONFIG_FILE"; //$NON-NLS-1$
@@ -31,7 +32,8 @@
 		IJBossRuntimeResourceConstants c = new IJBossRuntimeResourceConstants() {};
 		IPath bootLog = serverHome.append(c.AS7_STANDALONE).append(c.FOLDER_LOG).append(c.AS7_BOOT_LOG);
 		IPath logConfig = serverHome.append(c.AS7_STANDALONE).append(c.CONFIGURATION).append(c.LOGGING_PROPERTIES);
-		return SERVER_ARG
+		String serverArg =JavaUtils.supportsServerMode(getVM()) ? SERVER_ARG : "";  //$NON-NLS-1$
+		return  serverArg
 				+ " -Xms64m" //$NON-NLS-1$
 				+ " -Xmx512m" //$NON-NLS-1$
 				+ " -XX:MaxPermSize=256m" //$NON-NLS-1$
Index: plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
===================================================================
--- plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java	(revision 42427)
+++ plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java	(working copy)
@@ -21,6 +21,7 @@
 import org.jboss.ide.eclipse.as.core.server.internal.LocalJBossServerRuntime;
 import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeConstants;
 import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
+import org.jboss.ide.eclipse.as.core.util.JavaUtils;
 
 public class LocalJBoss7ServerRuntime extends LocalJBossServerRuntime implements IJBossRuntimeConstants {
 	public static final String CONFIG_FILE = "org.jboss.ide.eclipse.as.core.server.internal.v7.CONFIG_FILE"; //$NON-NLS-1$
@@ -57,7 +58,8 @@
 		IJBossRuntimeResourceConstants c = new IJBossRuntimeResourceConstants() {};
 		IPath bootLog = serverHome.append(c.AS7_STANDALONE).append(c.FOLDER_LOG).append(c.AS7_BOOT_LOG);
 		IPath logConfig = serverHome.append(c.AS7_STANDALONE).append(c.CONFIGURATION).append(c.LOGGING_PROPERTIES);
-		return SERVER_ARG
+		String serverArg =JavaUtils.supportsServerMode(getVM()) ? SERVER_ARG : "";  //$NON-NLS-1$
+		return  serverArg
 				+ " -Xms64m" //$NON-NLS-1$
 				+ " -Xmx512m" //$NON-NLS-1$
 				+ " -XX:MaxPermSize=256m" //$NON-NLS-1$
Index: plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossServerRuntime.java
===================================================================
--- plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossServerRuntime.java	(revision 42427)
+++ plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/LocalJBossServerRuntime.java	(working copy)
@@ -49,6 +49,7 @@
 import org.jboss.ide.eclipse.as.core.server.bean.ServerBeanLoader;
 import org.jboss.ide.eclipse.as.core.util.IJBossRuntimeResourceConstants;
 import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
+import org.jboss.ide.eclipse.as.core.util.JavaUtils;
 
 public class LocalJBossServerRuntime extends AbstractLocalJBossServerRuntime implements IJBossServerRuntime {
 
@@ -125,7 +126,7 @@
 		String name = getRuntime().getName();
 		String ret = QUOTE + SYSPROP + PROGRAM_NAME_ARG + EQ +  
 			"JBossTools: " + name + QUOTE + SPACE; //$NON-NLS-1$
-		if( Platform.getOS().equals(Platform.OS_MACOSX))
+		if( JavaUtils.supportsServerMode(getVM())) 
 			ret += SERVER_ARG + SPACE;
 		IRuntimeType type = getRuntime().getRuntimeType();
 		if (type != null && 
Index: plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/JavaUtils.java
===================================================================
--- plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/JavaUtils.java	(revision 0)
+++ plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/JavaUtils.java	(working copy)
@@ -0,0 +1,70 @@
+/******************************************************************************* 
+ * Copyright (c) 2012 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/ 
+package org.jboss.ide.eclipse.as.core.util;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.IVMInstall2;
+
+public class JavaUtils {
+	public static boolean supportsServerMode(IVMInstall install) {
+		File f = install.getInstallLocation();
+		String version = (install instanceof IVMInstall2 ? ((IVMInstall2)install).getJavaVersion() : null);
+
+		// Maintain legacy behaviour for all older server adapters
+		if( version == null || Platform.getOS().equals(Platform.OS_MACOSX))
+			return true;
+		
+		File libFolder = null;
+		if( Platform.getOS().equals(Platform.OS_WIN32))
+			libFolder = getWindowsServerLibFolder(version, install);
+		else
+			libFolder = getLinuxServerLibFolder(version, install);
+		if( libFolder != null && libFolder.exists() && 
+				libFolder.isDirectory() && libFolder.list().length > 0)
+			return true;
+		return false;
+	}
+
+	private static File getLinuxServerLibFolder(String version, IVMInstall install) {
+		File serverFolder = null;
+		IPath locPath = new Path(install.getInstallLocation().getAbsolutePath());
+		if( version.startsWith("1.7.")) //$NON-NLS-1$
+			serverFolder = findServerFolder(locPath.append("jre").append("lib")); //$NON-NLS-1$ //$NON-NLS-2$
+		return serverFolder;
+	}
+	
+	private static File findServerFolder(IPath parent) {
+		File f = parent.toFile();
+		if( !f.exists())
+			return null;
+		File[] children = f.listFiles();
+		for( int i = 0; i < children.length; i++ ) {
+			if( children[i].isDirectory() ) {
+				String[] second = children[i].list();
+				for( int j = 0; j < second.length; j++ ) {
+					if( second[j].toLowerCase().equals("server")) //$NON-NLS-1$
+							return new File(children[i], second[j]);
+				}
+			}
+		}
+		return null;
+	}
+
+	private static File getWindowsServerLibFolder(String version, IVMInstall install) {
+		IPath locPath = new Path(install.getInstallLocation().getAbsolutePath());
+		return locPath.append("jre").append("bin").append("server").toFile(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+	}
+}
