1

Ubuntuシステムで次のJavaコードを実行しようとしています。コードは、pdfboxクラスを使用して空のPDFファイルを作成する必要があります。

import org.apache.pdfbox.pdmodel.*;
import java.io.*;

public class BlankPDF {
    public static void main(String[] args) {
        PDDocument doc = null;
        try{
            doc = new PDDocument();
        } catch (IOException ie){
            System.out.println(ie);
        }
        doc.addPage(new PDPage());
        try{
            doc.save("Empty PDF.pdf");
            doc.close();
        } catch (Exception io){
            System.out.println(io);
        }
    }
}

スクリプトと同じディレクトリに次のクラス依存関係があります。

  • pdfbox-1.7.0.jar
  • jempbox-1.7.0.jar
  • fontbox-1.7.0.jar
  • commons-logging-1.1.1.jar

次のコマンドを使用してスクリプトをコンパイルしました。

sudo javac BlankPDF.java -classpath pdfbox-1.7.0.jar:fontbox-1.7.0.jar:jempbox-1.7.0.jar:commons-logging-1.1.1.jar

これは出力を返さず、.classファイルを作成しました(コンパイルが正しく機能したことを示しますか?)

しかし、次のコマンドを使用してコードを実行しようとすると、次のようになります。

sudo java BlankPDF -classpath pdfbox-1.7.0.jar:fontbox-1.7.0.jar:jempbox-1.7.0.jar:commons-logging-1.1.1.jar

このエラーが発生します:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument
    at BlankPDF.main(BlankPDF.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.pdfbox.pdmodel.PDDocument
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    ... 1 more

私は何が欠けていますか?

4

2 に答える 2

2

上記の回答を参照して、現在のディレクトリ(ドット記号付き)と、クラスパスにjarを含むコマンドを追加することを忘れないでください

java -classpath hello.jar:. SampleProgram
于 2012-06-06T22:29:28.683 に答える