Compilation JavaFX:尝试运行命令行';pdflatex myfile.tex';
我的问题分为两部分 第一部分: 我正在编写一系列latex文件,我想编译它们 如果我手动键入该命令,则该命令有效。所以语法应该是正确的。但当我从java应用程序运行它时,它不会编译 这段代码在Java中正确地创建了一个latex文件——正如预期的那样Compilation JavaFX:尝试运行命令行';pdflatex myfile.tex';,compilation,javafx,latex,command-line-arguments,Compilation,Javafx,Latex,Command Line Arguments,我的问题分为两部分 第一部分: 我正在编写一系列latex文件,我想编译它们 如果我手动键入该命令,则该命令有效。所以语法应该是正确的。但当我从java应用程序运行它时,它不会编译 这段代码在Java中正确地创建了一个latex文件——正如预期的那样 File latexFile = fileChooser.showSaveDialog(window.stage); if (latexFile != null) { try { writeContentToFile(con
File latexFile = fileChooser.showSaveDialog(window.stage);
if (latexFile != null) {
try {
writeContentToFile(content, latexFile);
} catch (IOException ex) {
Logger.getLogger(DocumentViewPort.class.getName()).log(Level.SEVERE, null, ex);
}
}
如果我键入pdflatex
,然后添加文件路径并获得一个PDF文件,我可以在命令行中编译生成的文件
但是,当从java本身执行此操作时,它似乎不起作用,如下所示:
try {
Runtime.getRuntime().exec( "pdflatex " + latexFile.getPath());
} catch (IOException ex) {
Logger.getLogger(FileAndContentCreation.class.getName()).log(Level.SEVERE, null, ex);
}
你知道为什么吗?
我试着在很多地方在线阅读,但我不知道问题出在哪里。任何帮助都将不胜感激。谢谢
第二部分
问题的第二部分是更改目录,我正在使用:
Runtime.getRuntime().exec( "cd " + myNewdirectory.getPath());
但是它失败了,错误为2
您知道如何更改当前目录吗?命令pdflatex
是否需要任何其他输入?为什么需要更改目录?嗨,不,它不需要其他输出。如果我从命令行手动运行同一个命令,则该命令可用于同一文件。对于目录,如果我不更改它,pdf将在用户文件夹中创建,但我希望它在特定文件夹中创建。当我从命令行执行cd mydir然后执行pdflatex myfile.tex时,一切都正常。但是从java的运行时来看,两者都不起作用。请检查“pdflatex”+latexFile.getPath()
的计算结果。另外,与其更改目录,不如尝试(类似于)runtime.getRuntime().exec(“pdflatex-output directory”+myNewDirectory.getPath()+“”+latexFile.getPath())代码>检查文档中的pdflatex
,但iirc这是正确的选项。感谢更改目录工作!而且编译成PDF的工作正常。!我唯一感到奇怪的是,如果文件夹名中有空格,编译命令将无法工作。。。你知道为什么吗?