il messaggio dice che c'è un errore di sintassi 'near source c:\popola.txt' ma non ne capisco il motivo, perché lo stesso identico comando, scritto sulla console, fa il suo dovere.
In genere per eseguire tramite java un comando che eseguiresti sulla console puoi usare Runtime.getRuntime().exec("...."). Però non è questo il caso.
Per fare quello che fa il comando source puoi creare una stringa a partire dal contenuto del file ed 'eseguirla' tramite JDBC. Con queste istruzioni


....
Statement stmt = conn.createStatement();
try {
BufferedReader in = new BufferedReader(new FileReader("c:\\createtables.txt"));
String str;
while ((str = in.readLine()) != null) {
stmt.executeUpdate(str);
}
in = new BufferedReader(new FileReader("c:\\popola.txt"));
while ((str = in.readLine()) != null) {
stmt.executeUpdate(str);
}
in.close();
} catch (IOException e) {}
...


ovviamente deve verificarsi che ogni riga dei file c:/createtables.txt e c:/popola.txt sia un comando completo per MySQL.