Index: admin/core/src/main/java/org/apache/karaf/admin/internal/InstanceImpl.java
===================================================================
--- admin/core/src/main/java/org/apache/karaf/admin/internal/InstanceImpl.java	(revision 1294797)
+++ admin/core/src/main/java/org/apache/karaf/admin/internal/InstanceImpl.java	(working copy)
@@ -256,7 +256,7 @@
             javaOpts = this.javaOpts;
         }
         if (javaOpts == null || javaOpts.length() == 0) {
-            javaOpts = "-server -Xmx512M -Dcom.sun.management.jmxremote";
+            javaOpts = System.getProperty("java.opts", "-server -Xmx512M -Dcom.sun.management.jmxremote");
         }
         String karafOpts = System.getProperty("karaf.opts", "");  
         
Index: admin/command/src/main/java/org/apache/karaf/admin/main/Execute.java
===================================================================
--- admin/command/src/main/java/org/apache/karaf/admin/main/Execute.java	(revision 1294797)
+++ admin/command/src/main/java/org/apache/karaf/admin/main/Execute.java	(working copy)
@@ -68,6 +68,18 @@
      */
     private static final String PROP_KARAF_OPTS = "karaf.opts";    
 
+    /**
+     * Environment variable for specifying extra JVM options to the Karaf admin 
+     * process kicked off from this Java process.
+     */
+    private static final String ENV_JAVA_OPTS = "JAVA_OPTS";
+
+    /**
+     * System property for specifying extra JVM options to the Karaf admin 
+     * process kicked off from this Java process.
+     */
+    private static final String PROP_JAVA_OPTS = "java.opts";
+
     public static void main(String[] args) throws Exception {
         AnsiConsole.systemInstall();
 
@@ -102,7 +114,19 @@
                 throw e;
             }
         }        
-        
+       
+        try {
+            String javaOpts = System.getenv(ENV_JAVA_OPTS);
+            if (javaOpts != null) {
+                System.setProperty(PROP_JAVA_OPTS, javaOpts);
+            }
+        } catch(Exception e) {
+            System.err.println("Could not read JAVA_OPTS environment variable: " + e.getMessage());
+            if (System.getProperty("karaf.showStackTrace") != null) {
+                throw e;
+            }
+        }
+ 
         Object command = cls.newInstance();
         if (command instanceof AdminCommandSupport) {
             try {
