Compilation JavaFX:尝试运行命令行';pdflatex myfile.tex';

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

我的问题分为两部分

第一部分: 我正在编写一系列latex文件,我想编译它们

如果我手动键入该命令,则该命令有效。所以语法应该是正确的。但当我从java应用程序运行它时,它不会编译

这段代码在Java中正确地创建了一个latex文件——正如预期的那样

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的工作正常。!我唯一感到奇怪的是,如果文件夹名中有空格,编译命令将无法工作。。。你知道为什么吗?