Files
AutoJs6/app/src/main/java/com/stardust/scriptdroid/droid/Droid.java
2017-01-27 19:45:07 +08:00

62 lines
1.6 KiB
Java

package com.stardust.scriptdroid.droid;
import com.stardust.scriptdroid.droid.runtime.DroidRuntime;
import com.stardust.scriptdroid.droid.script.GBJDuktapeJavaScriptEngine;
import com.stardust.scriptdroid.droid.script.JavaScriptEngine;
import com.stardust.scriptdroid.file.FileUtils;
import java.io.File;
import java.io.FileNotFoundException;
/**
* Created by Stardust on 2017/1/23.
*/
public class Droid {
private static final DroidRuntime RUNTIME = DroidRuntime.getRuntime();
private static final JavaScriptEngine JAVA_SCRIPT_ENGINE = new GBJDuktapeJavaScriptEngine(RUNTIME);
private static Droid instance = new Droid();
protected Droid() {
}
public static Droid getInstance() {
return instance;
}
public void runScriptFile(File file) {
checkFile(file);
runScript(FileUtils.readString(file));
}
public void runScriptFile(String path) {
runScriptFile(new File(path));
}
public void runScript(String script) {
new Thread(() -> {
try {
JAVA_SCRIPT_ENGINE.execute(script);
} catch (Exception e) {
RUNTIME.toast("错误" + e.getMessage());
}
}).start();
}
private void checkFile(File file) {
if (file == null) {
throw new NullPointerException("file = null");
}
if (!file.exists()) {
throw new RuntimeException(new FileNotFoundException(file.getAbsolutePath()));
}
if (!file.canRead()) {
throw new RuntimeException("file is not readable: path=" + file.getAbsolutePath());
}
}
}