diff --git a/taverna-commandline-launcher/src/main/java/org/apache/taverna/commandline/TavernaCommandLine.java b/taverna-commandline-launcher/src/main/java/org/apache/taverna/commandline/TavernaCommandLine.java
index ce36de6..b8489a3 100644
--- a/taverna-commandline-launcher/src/main/java/org/apache/taverna/commandline/TavernaCommandLine.java
+++ b/taverna-commandline-launcher/src/main/java/org/apache/taverna/commandline/TavernaCommandLine.java
@@ -123,7 +123,7 @@
 	private static List<URI> getBundleURIs() {
 		List<URI> bundleURIs = new ArrayList<URI>();
 		ApplicationProfile applicationProfile = applicationConfiguration.getApplicationProfile();
-		File libDir = new File(applicationConfiguration.getStartupDir(), "lib");
+		File libDir = new File(applicationConfiguration.getStartupDir().toFile(), "lib");
 		if (applicationProfile != null) {
 			for (BundleInfo bundle : applicationProfile.getBundle()) {
 				File bundleFile = new File(libDir, bundle.getFileName());
@@ -138,12 +138,12 @@
 	}
 
 	private static File getAppDirectory() {
-		return new File(applicationConfiguration.getApplicationHomeDir().getAbsolutePath());
+		return new File(applicationConfiguration.getApplicationHomeDir().toFile().getAbsolutePath());
 	}
 
 	private static void setDerbyPaths() {
 		System.setProperty("derby.system.home", getAppDirectory().getAbsolutePath());
-		File logFile = new File(applicationConfiguration.getLogDir(), "derby.log");
+		File logFile = new File(applicationConfiguration.getLogDir().toFile(), "derby.log");
 		System.setProperty("derby.stream.error.file", logFile.getAbsolutePath());
 	}
 
