0

我有一个使用控制台在我的 Mac 上运行良好的 Jar 文件:

 MacBook-Pro-Pavel:PDFparser pavelpigalev$ java -jar PDFparser.jar
 Usage: java PDFparser <input-pdf> -p1 <password> -c1 -i0 -s1
    -p1 : PDF password
    -c1 : write JSON to console
    -i0 : don't extract images
    -s1 : take page screenshots [WARNING: currently in beta]
 MacBook-Pro-Pavel:PDFparser pavelpigalev$ java -jar PDFparser.jar f5.pdf
 MacBook-Pro-Pavel:PDFparser pavelpigalev$ 

它创建一个文件夹并在该文件夹中放置我需要的图像。

但是,如果我在 Web 服务器上使用它(也使用控制台),它会给我这个错误:

 [root@somesite.com pdfparser]$ ls
ffive.pdf  lib  PDFparser.jar  README.TXT
[root@somesite.com pdfparser]$ java -jar "PDFparser.jar"
Usage: java PDFparser <input-pdf> -p1 <password> -c1 -i0 -s1
    -p1 : PDF password
    -c1 : write JSON to console
    -i0 : don't extract images
    -s1 : take page screenshots [WARNING: currently in beta]
[root@somesite.com pdfparser]$ java -jar "PDFparser.jar" ffive.pdf
Exception in thread "main" java.lang.ClassNotFoundException: javax.vecmath.Vector2d not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:PDFparser.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.10)
   at java.lang.ClassLoader.loadClass(libgcj.so.10)
   at java.lang.ClassLoader.loadClass(libgcj.so.10)
   at java.lang.reflect.Field.getType(libgcj.so.10)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.excludeField(ReflectiveTypeAdapterFactory.java:56)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:111)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
   at com.google.gson.Gson.getAdapter(Gson.java:353)
   at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:52)
   at com.google.gson.Gson.getAdapter(Gson.java:353)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
   at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
   at com.google.gson.Gson.getAdapter(Gson.java:353)
   at com.google.gson.Gson.toJson(Gson.java:578)
   at com.google.gson.Gson.toJson(Gson.java:565)
   at com.google.gson.Gson.toJson(Gson.java:520)
   at com.google.gson.Gson.toJson(Gson.java:500)
   at pdfparser.PDFparser.main(PDFparser.java:163)

我没有制作这个 Jar 文件,我对 Java 不太了解。我使用 PHP,我真的需要这个程序在服务器上运行良好。有人可以帮我吗?

4

3 回答 3

2

将 vechmath.jar放在你的类路径中

或者 - 将您的支持添加.jar到类路径中

export CLASSPATH=$CLASSPATH:/path/to/vecmath.jar

或者 - 在运行时供应

java -cp vecmath-xxx.jar -jar Yourjar.jar

类路径的重要性

于 2013-01-30T11:08:13.477 回答
1

您使用的 JVM 与您的 macbook 中的不同。您正在使用 GNU JVM,如not found in gnu.gcj.runtime.SystemClassLoader

尝试java -version确认,然后更改您的 JVM

于 2013-01-30T11:13:40.320 回答
0

尝试在您的 Mac 上找到 vecmath-1.3.1.jar 文件并将其放在与 PDFparser.jar 所在的目录相同的目录中。尝试运行。如果没有成功,则尝试如下运行:

 java -cp vecmath-1.3.1.jar -jar "PDFparser.jar"
于 2013-01-30T11:10:24.143 回答