-
Notifications
You must be signed in to change notification settings - Fork 48
Description
Version info
- OS: Windows 10 build 19044
- Package: jar (OpenJDK 11.0.10)
Bug descripton
jExifTool does not find exiftool, which is findable via a correctly set up PATH entry. Thus jExifTool cancels startup with a ”Erroneous ExifTool preference – The ExifTool specified in your preferences does not exist. Did you move/rename/delete it??“ dialog. (German translation is dubiuous, btw. And why two ”?“ in the English string?)
The culprit seems to be the way jExifTool tries to determine the location of exiftool, which seems to be somehow launching a where exiftool command. Note the java.io.IOException: CreateProcess error=2 and Cannot run program ""Error: File not found - where"" log items;
[…]
11:14:08.899 [AWT-EventQueue-0] ERROR o.h.j.controllers.UpdateActions - Successfully did: creating the table CustomMetadatasetLines (1.6)
11:14:09.124 [AWT-EventQueue-0] INFO org.hvdw.jexiftoolgui.mainScreen - OS name MICROSOFT
11:14:09.132 [AWT-EventQueue-0] ERROR o.h.j.controllers.CommandRunner - IOException error {}
java.io.IOException: Cannot run program ""Error: File not found - where"": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at org.hvdw.jexiftoolgui.controllers.CommandRunner.runCommand(CommandRunner.java:115)
at org.hvdw.jexiftoolgui.mainScreen.setProgramScreenTexts(mainScreen.java:3842)
at org.hvdw.jexiftoolgui.mainScreen.<init>(mainScreen.java:3977)
at org.hvdw.jexiftoolgui.mainScreen.createAndShowGUI(mainScreen.java:4024)
at org.hvdw.jexiftoolgui.Application$$Lambda$135/0x0000000000000000.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:708)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.io.IOException: CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at java.base/java.lang.ProcessImpl.create(Native Method)
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:478)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:154)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 19 common frames omitted
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "IOException error
Cannot run program ""Error: File not found - where"": CreateProcess error=2, Das System kann die angegebene Datei nicht finden"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:455)
at org.hvdw.jexiftoolgui.mainScreen.setProgramScreenTexts(mainScreen.java:3848)
at org.hvdw.jexiftoolgui.mainScreen.<init>(mainScreen.java:3977)
at org.hvdw.jexiftoolgui.mainScreen.createAndShowGUI(mainScreen.java:4024)
at org.hvdw.jexiftoolgui.Application$$Lambda$135/0x0000000000000000.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:708)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
My system has a standard COMSPEC set to %SystemRoot%\system32\cmd.exe; to use the traditional where command from PowerShell, though, I have to type where.exe to differentiate between the alias of the Where-Object Cmdlet and the legacy %SystemRoot%\system32\where.exe – if that might be an issue.