diff --git a/java/java-runtime/src/FormPreviewFrame.java b/java/java-runtime/src/FormPreviewFrame.java
index 939c468..5e69856 100644
--- a/java/java-runtime/src/FormPreviewFrame.java
+++ b/java/java-runtime/src/FormPreviewFrame.java
@@ -53,8 +53,10 @@
     }
 
     frame.pack();
-    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
-    frame.setLocation((screenSize.width - frame.getWidth())/2, (screenSize.height - frame.getHeight())/2);
+    Rectangle screenBounds =
+      GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getBounds();
+    frame.setLocation(screenBounds.x + (screenBounds.width - frame.getWidth()) / 2,
+                      screenBounds.y + (screenBounds.height - frame.getHeight()) / 2);
     frame.setVisible(true);
   }
 
diff --git a/java/java-runtime/src/com/intellij/rt/ant/execution/AntMain2.java b/java/java-runtime/src/com/intellij/rt/ant/execution/AntMain2.java
index 8b45dca..4e3b6c8 100644
--- a/java/java-runtime/src/com/intellij/rt/ant/execution/AntMain2.java
+++ b/java/java-runtime/src/com/intellij/rt/ant/execution/AntMain2.java
@@ -21,20 +21,25 @@
 
   public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException {
     IdeaAntLogger2.guardStreams();
-
-    // first try to use the new way of launching ant
+    
+    // as we build classpath ourselves, and ensure all libraries are added to classpath, 
+    // preferred way for us to run ant will be using the traditional ant entry point, via the "Main" class 
     try {
-      final Class antLauncher = Class.forName("org.apache.tools.ant.launch.Launcher");
+      final Class antMain = Class.forName("org.apache.tools.ant.Main");
       //noinspection HardCodedStringLiteral
-      antLauncher.getMethod("main", new Class[]{args.getClass()}).invoke(null, new Object[]{args});
+      antMain.getMethod("main", new Class[]{args.getClass()}).invoke(null, new Object[]{args});
       return;
     }
     catch (ClassNotFoundException e) {
-      // ignore and try older variant
+      // ignore
     }
-
-    final Class antMain = Class.forName("org.apache.tools.ant.Main");
+    
+    // fallback: try the newer approach, launcher
+    // This approach is less preferred in our case, but still...
+    // From the ant documentation: "You should start the launcher with the most minimal classpath possible, generally just the ant-launcher.jar."
+    final Class antLauncher = Class.forName("org.apache.tools.ant.launch.Launcher");
     //noinspection HardCodedStringLiteral
-    antMain.getMethod("main", new Class[]{args.getClass()}).invoke(null, new Object[]{args});
+    antLauncher.getMethod("main", new Class[]{args.getClass()}).invoke(null, new Object[]{args});
+
   }
 }
