From 54fc25e314c5bd465eb76ac6d4536d952f5bd208 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sun, 14 Jul 2013 23:23:04 +0530 Subject: [PATCH] TIL rt.jar doesn't exist in Java for OS X --- .../mode/experimental/ASTGenerator.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index dc3f7c3b6..f0f838402 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -308,9 +308,17 @@ public class ASTGenerator { StringBuffer tehPath = new StringBuffer(System .getProperty("java.class.path")); + if(Base.isMacOS()){ + // rt.jar equivalent on OS X is JAVA_HOME/bundle/Classes/classes.jar + tehPath.append(File.pathSeparatorChar + + System.getProperty("java.home") + File.separator + "bundle" + + File.separator + "Classes" + File.separator + "classes.jar" + + File.pathSeparatorChar); + }else{ tehPath.append(File.pathSeparatorChar - + System.getProperty("java.home") + "/lib/rt.jar" - + File.pathSeparatorChar); + + System.getProperty("java.home") + File.separator + "lib" + + File.separator + "rt.jar" + File.pathSeparatorChar); + } if (errorCheckerService.classpathJars != null) { for (URL jarPath : errorCheckerService.classpathJars) { //System.out.println(jarPath.getPath()); @@ -338,6 +346,18 @@ public class ASTGenerator { System.out.println("-> " + className); } System.out.println("jars loaded."); + if (Base.isMacOS()) { + File f = new File(System.getProperty("java.home") + File.separator + "bundle" + + File.separator + "Classes" + File.separator + "classes.jar"); + System.out.println(f.getAbsolutePath() + " | classes.jar found?" + + f.exists()); + } else { + File f = new File(System.getProperty("java.home") + File.separator + + "lib" + File.separator + "rt.jar" + File.separator); + System.out.println(f.getAbsolutePath() + " | rt.jar found?" + + f.exists()); + } + } catch (Exception e) { e.printStackTrace(); }