こんにちは私はphpスクリプトからjavaアプリケーションを実行する必要があります。そのためには、jreフォルダファイルをxammpフォルダに移動し、そのフォルダへのパスを設定してください。PHPからJavaアプリケーションを実行
私は
PHPスクリプトのように、サンプルのJavaプログラムを使用してテストしている:私は中にjavaファイルを配置している
<?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;
?>
"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アプリケーション私がこれを実行しなければならない場合、 "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
いずれか私にPHPスクリプトを介してJavaアプリケーションを実行する方法を教えてください。
ありがとうございます。
あなたはまた、コンパイルするためのPHPのexecメソッドを使用することができます
を確認しますあなたのJavaクラスのパスなぜ完全なJavaクラスパスを入れないのですか? – thepaulo
@ Soonor:クラス 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を構築し、まだ が、同じ問題が発生しました –