You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Jakov Vežić (Jira)" <ji...@apache.org> on 2021/04/27 18:46:00 UTC
[jira] [Commented] (PDFBOX-2602) Enhance command line tools
[ https://issues.apache.org/jira/browse/PDFBOX-2602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17333473#comment-17333473 ]
Jakov Vežić commented on PDFBOX-2602:
-------------------------------------
I'm getting all sorts of exceptions running PDFBox on Debian 10 (Digital Ocean), can't even run a single command. 3.0.0-RC1.
Just running
{code:java}
java -jar pdfbox-app-3.0.0-RC1.jar -help
{code}
gives the following:
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5486)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5512)
at picocli.CommandLine$Model$CommandUserObject.getInstance(CommandLine.java:11813)
at picocli.CommandLine$Model$CommandUserObject.get(CommandLine.java:11838)
at picocli.CommandLine$Model$FieldBinding.set(CommandLine.java:11661)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedTypedMembers(CommandLine.java:11532)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedFields(CommandLine.java:11466)
at picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:11399)
at picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:6202)
at picocli.CommandLine.<init>(CommandLine.java:227)
at picocli.CommandLine.toCommandLine(CommandLine.java:3517)
at picocli.CommandLine.addSubcommand(CommandLine.java:373)
at picocli.CommandLine.addSubcommand(CommandLine.java:354)
at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:51)
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.desktop/sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:135)
at org.apache.pdfbox.debugger.PDFDebugger.<clinit>(PDFDebugger.java:154)
... 19 more
{code}
If I do what's recommended here ([https://stackoverflow.com/questions/662421/no-x11-display-variable-what-does-it-mean)] I get:
{code:java}
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:231)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582)
at org.apache.pdfbox.debugger.PDFDebugger.<clinit>(PDFDebugger.java:154)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5486)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5512)
at picocli.CommandLine$Model$CommandUserObject.getInstance(CommandLine.java:11813)
at picocli.CommandLine$Model$CommandUserObject.get(CommandLine.java:11838)
at picocli.CommandLine$Model$FieldBinding.set(CommandLine.java:11661)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedTypedMembers(CommandLine.java:11532)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedFields(CommandLine.java:11466)
at picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:11399)
at picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:6202)
at picocli.CommandLine.<init>(CommandLine.java:227)
at picocli.CommandLine.toCommandLine(CommandLine.java:3517)
at picocli.CommandLine.addSubcommand(CommandLine.java:373)
at picocli.CommandLine.addSubcommand(CommandLine.java:354)
at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:51)
{code}
If I do
{code:java}
java -Djava.awt.headless=true -jar pdfbox-app-3.0.0-RC1.jar pdfbox -help
{code}
I get
{code:java}
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5486)
at picocli.CommandLine$DefaultFactory.create(CommandLine.java:5512)
at picocli.CommandLine$Model$CommandUserObject.getInstance(CommandLine.java:11813)
at picocli.CommandLine$Model$CommandUserObject.get(CommandLine.java:11838)
at picocli.CommandLine$Model$FieldBinding.set(CommandLine.java:11661)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedTypedMembers(CommandLine.java:11532)
at picocli.CommandLine$Model$CommandReflection.initFromAnnotatedFields(CommandLine.java:11466)
at picocli.CommandLine$Model$CommandReflection.extractCommandSpec(CommandLine.java:11399)
at picocli.CommandLine$Model$CommandSpec.forAnnotatedObject(CommandLine.java:6202)
at picocli.CommandLine.<init>(CommandLine.java:227)
at picocli.CommandLine.toCommandLine(CommandLine.java:3517)
at picocli.CommandLine.addSubcommand(CommandLine.java:373)
at picocli.CommandLine.addSubcommand(CommandLine.java:354)
at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:51)
Caused by: java.awt.HeadlessException
at java.desktop/sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:135)
at org.apache.pdfbox.debugger.PDFDebugger.<clinit>(PDFDebugger.java:154)
... 19 more
{code}
> Enhance command line tools
> --------------------------
>
> Key: PDFBOX-2602
> URL: https://issues.apache.org/jira/browse/PDFBOX-2602
> Project: PDFBox
> Issue Type: Bug
> Components: Utilities
> Affects Versions: 1.8.8, 2.0.0
> Reporter: Maruan Sahyoun
> Assignee: Maruan Sahyoun
> Priority: Minor
> Fix For: 3.0.0 PDFBox
>
>
> The command line tools shall be enhanced to have the same behavior across all tools.
> From the discussion on the dev mailing list
> - add an -h option to print the usage
> - print the usage to System.err and use an exit code of 1 if there was an invalid command line parameter
> - print messages on exceptions to System.err
> - rethrow the exception so java can handle it if it will terminate afterwards anyway
> - use an exit code of 1if rethrowing doesn't make sense
> Additional input:
> https://clig.dev/
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org