diff --git a/main/src/main/java/sbt/internal/XMainConfiguration.java b/main/src/main/java/sbt/internal/XMainConfiguration.java index 9cebe23af..d6cf69af2 100644 --- a/main/src/main/java/sbt/internal/XMainConfiguration.java +++ b/main/src/main/java/sbt/internal/XMainConfiguration.java @@ -22,7 +22,8 @@ import xsbti.*; * we can avoid loading any classes from the old scala provider. */ public class XMainConfiguration { - public xsbti.MainResult run(String moduleName, xsbti.AppConfiguration configuration) { + public xsbti.MainResult run(String moduleName, xsbti.AppConfiguration configuration) + throws Throwable { try { ClassLoader topLoader = configuration.provider().scalaProvider().launcher().topLoader(); xsbti.AppConfiguration updatedConfiguration = null; @@ -56,7 +57,7 @@ public class XMainConfiguration { return (xsbti.MainResult) runMethod.invoke(instance, updatedConfiguration); } catch (InvocationTargetException e) { // This propogates xsbti.FullReload to the launcher - throw (xsbti.FullReload) e.getCause(); + throw e.getCause(); } } catch (ReflectiveOperationException e) { throw new RuntimeException(e); diff --git a/sbt b/sbt index 7fb865514..6403c4414 100755 --- a/sbt +++ b/sbt @@ -46,11 +46,18 @@ realpathish () { COUNT=$(($COUNT + 1)) done + TARGET_DIR="$(pwd -P)" + if [ "$TARGET_DIR" == "/" ]; then + TARGET_FILE="/$TARGET_FILE" + else + TARGET_FILE="$TARGET_DIR/$TARGET_FILE" + fi + # make sure we grab the actual windows path, instead of cygwin's path. if [[ "x$FIX_CYGPATH" != "x" ]]; then - echo "$(cygwinpath "$(pwd -P)/$TARGET_FILE")" + echo "$(cygwinpath "$TARGET_FILE")" else - echo "$(pwd -P)/$TARGET_FILE" + echo "$TARGET_FILE" fi ) }