嗨朋友我必須從php腳本執行java應用程序,爲此我已將jre文件夾文件移至xammp文件夾並將路徑設置爲該文件夾。從Php執行Java應用程序
我已用樣品java程序測試等
PHP腳本:
<?php
$JAVA_HOME = "\jre1.8.0_60";
$PATH = "$JAVA_HOME/bin:".getenv('PATH');
putenv("JAVA_HOME=$JAVA_HOME");
putenv("PATH=$PATH");
//enter rest of the code here
shell_exec("java HelloWorld.java 2>&1");
$OUTPUT = shell_exec("java HelloWorld 2>&1");
echo $OUTPUT;
?>
我已經放置與java文件 「C:\ XAMPP \ htdocs中\ java_bridge \」 如果我執行通過PHP文件執行結果。
HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
// Prints "Hello, World" to the terminal window.
System.out.println("Hello, World");
}
}
輸出:
你好,世界
ExtractPagesFromPdfAndSaveAsNewPDFPage.java:
import java.io.File;
import java.util.List;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
/**
*
* @author udaykiran.pulipati
*
*/
@SuppressWarnings("unchecked")
public class ExtractPagesFromPdfAndSaveAsNewPDFPage {
public static void main(String[] args) {
try {
// String sourceDir = "C:\\Users\\user1\\Desktop\\java_pdf_split\\scan.pdf";
String sourceDir = "C:\\Users\\user1\\Desktop\\java_pdf_split\\scan.pdf";
String destinationDir = "C:/PDFCopy/";
File oldFile = new File(sourceDir);
String fileName = oldFile.getName().replace(".pdf", "");
System.out.println("New Filename: " + fileName);
System.out.println("Old Filename: " + oldFile.getName());
if (oldFile.exists()) {
File newFile = new File(destinationDir);
if (!newFile.exists()) {
newFile.mkdir();
}
PDDocument document = PDDocument.load(sourceDir);
List<PDPage> list = document.getDocumentCatalog().getAllPages();
int pageNumber = 1;
for (PDPage page : list) {
PDDocument newDocument = new PDDocument();
newDocument.addPage(page);
newFile = new File(destinationDir + fileName + "_"+ pageNumber +".pdf");
newFile.createNewFile();
newDocument.save(newFile);
newDocument.close();
pageNumber++;
}
} else {
System.err.println(fileName +" File not exists");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
但現在我不得不執行Java應用程序名稱Java應用程序ication1與我有一個名爲「ExtractPagesFromPdfAndSaveAsNewPDFPage」的Java文件,如果我必須執行此操作,我該如何給予exec路徑(「」);
我的應用程序路徑是「C:\ xampp \ htdocs \ java_bridge \ JavaApplication1 \ src」;
我的班級文件路徑是「C:\ xampp \ htdocs \ java_bridge \ JavaApplication1 \ build \ classes」;
如果我運行
shell_exec("javac \JavaApplication1\src\ExtractPagesFromPdfAndSaveAsNewPDFPage.java 2>&1");
$OUTPUT = shell_exec("java \JavaApplication1\build\classes\ExtractPagesFromPdfAndSaveAsNewPDFPage 2>&1");
它返回輸出 錯誤:
錯誤:無法找到或加載主類\ JavaApplication1 \建立\類\ ExtractPagesFromPdfAndSaveAsNewPDFPage
請任何一個讓我知道如何執行一個Java應用程序通過PHP腳本。
在此先感謝。
驗證你的java類的路徑。爲什麼不把完整的java類路徑? – thepaulo
@Sonor:我給出了類 shell_exec(「javac C:\\ xampp \\ htdocs \\ java_bridge \\ JavaApplication1 \\ src \ ExtractPagesFromPdfAndSaveAsNewPDFPage」的完整路徑。的Java 2> &1"); $ OUTPUT =了shell_exec(「Java的C:\\ XAMPP \\ htdocs中\\ java_bridge \\ JavaApplication1 \\籌建\\類\\ ExtractPagesFromPdfAndSaveAsNewPDFPage 2> &1"); 回波$ OUTPUT; ,但仍然會出現同樣的問題 –