- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
**更新---问题不是文件编写器未关闭,而是 Java 应用程序错误终止。我已经更新了问题。
我有以下类启动 JAVAFX Web View 并向 Web View 的 html 公开一些 java 对象。
public class FileSystemBridge {
private void writeToFile(String[] fileContents){
if (content!=null){
String fileName ="pathToFile";
BufferedWriter fileWriter;
for (int i =0; i<fileContents.length(); i++ ){
String fileContent fileContents[i]);
try {
fileName = fileName+Integer.toString(i)+".txt";
fileName = fileName.replaceAll("\\s","");
System.out.println(fileName);
File f= new File(filesDir+"/"+fileName);
f.createNewFile();
fileWriter = new BufferedWriter(new FileWriter(f));
fileWriter.write("");
fileWriter.write(fileContent);
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
System.out.println("in the exception!");
e.printStackTrace();
}
}
}
else {
System.out.println("no content");
}
System.out.println("done writing, exit app now");
}
public void exit(){
System.out.println("EXITING!");
Platform.exit();
System.exit(0);
}
}
上面的类还有其他成员类,它们充当 POJOS,以将正在读/写的文件结构公开给“前端”html。
我通过重写默认的 Browser 类构造函数并添加以下代码将 FileSystemBridge 的实例传递到 Web View 。
webEngine.getLoadWorker().stateProperty().addListener(
(ObservableValue<? extends State> ov, State oldState,
State newState) -> {
if (newState == State.SUCCEEDED) {
JSObject context= (JSObject) webEngine.executeScript("window");
context.setMember("fsBridge", new FileSystemBridge());
webEngine.executeScript("init('desktop')");//the hook into our app essentially
}
});
webEngine.executeScrit("init) 本质上是在我们的前端执行一些初始化。然后,在用户交互时在 webview 上执行的 javascript 上,我们调用 FileSystemBridge write 方法,并通过回调来调用 FileSystemBridge 的 exit 方法,这本质上是对 Platform.exit() 的调用。
用户点击时
App.handleWrite(contentToBeWritten, function(success){
if (success){
console.log("inside success!");
App.handleExit();
}
});
然后我们的handleWrite javascript函数
handleWrite: function(content, callback){
fsBridge.callWrite(content);
retVal = true;//more logic to this but simplified for demo
callBack(retVal);
}
现在在 FileSystemBridge.exit() 方法中,我添加了 System.exit(0),它成功终止了我的 java 实例,这是最初的问题。但是我想知道这是否是处理退出的正确方法使用 JAVAFX webview 的 java 应用程序的示例。以这种方式使用 System.exit(0) 是否会产生不可预见的后果?
最佳答案
创建 UI 的 Java 应用程序在满足某些条件之前不会终止。对于 JavaFX 应用程序,make sure you are closing all Stage
instances.
关于java - flie write后退出JAVA应用程序的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587648/
**更新---问题不是文件编写器未关闭,而是 Java 应用程序错误终止。我已经更新了问题。 我有以下类启动 JAVAFX Web View 并向 Web View 的 html 公开一些 java
问题:我正在尝试将 csv 读入包含不同列大小的数据的 pandas 数据帧。 示例和说明: Code: df = pd.read_csv(input, error_bad_lines=False)
我想使用 ERT 从以下 Simulink 模型生成 C 代码。 编码器将 matlab.mat 的内容硬编码到代码中: /* Start for FromFile: '/From File' */
我是一名优秀的程序员,十分优秀!