repeats / Repeat

Cross-platform mouse/keyboard record/replay and automation hotkeys/macros creation, and more advanced automation features.
Apache License 2.0
1.03k stars 78 forks source link

Arch Linux - Java Error: File not executable #49

Open ghost opened 6 months ago

ghost commented 6 months ago

When running the .jar file, Java says that the file is not executable:

[user@archlinux ~]$ cd Downloads/
[user@archlinux Downloads]$ sudo java -jar Repeat_5_7.jar
[sudo] Password for user: 
Apr. 07, 2024 2:11:32 PM core.ipc.repeatClient.IPCClientService setExecutingProgram
WARNUNG: File is not executable: /home/user/Downloads/resources/csharp/Repeat.exe
Apr. 07, 2024 2:11:32 PM core.languageHandler.compiler.PythonRemoteCompiler setPath
WARNUNG: Python interpreter must be an executable.
Apr. 07, 2024 2:11:32 PM core.languageHandler.compiler.DynamicCompilerManager parseJSON
WARNUNG: Compiler manual was unable to parse its specific arguments.
Apr. 07, 2024 2:11:32 PM core.ipc.repeatClient.IPCClientService setExecutingProgram
WARNUNG: File is not executable: /home/user/Downloads/python.exe
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.AbstractNativeHookEventProcessor start
INFORMATION: X11 hook: running command $/home/user/Downloads/resources/nativehooks/x11/RepeatHookX11Mouse.out
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.AbstractNativeHookEventProcessor start
INFORMATION: X11 hook: running command $/home/user/Downloads/resources/nativehooks/x11/RepeatHookX11Key.out
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: =======================================================
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: Starting mouse listener...
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: Opening Xrecord context
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: =======================================================
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: =======================================================
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: Starting key listener...
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: Opening Xrecord context
Apr. 07, 2024 2:11:32 PM org.simplenativehooks.x11.X11NativeEventProcessor processStdout
INFORMATION: =======================================================
[07/04/2024 14:11:32] core.ipc.IPCServiceManager INFORMATION: Starting ipc service Controller server
[07/04/2024 14:11:32] core.ipc.repeatServer.ControllerServer INFORMATION: Waiting for client connections...
[07/04/2024 14:11:33] core.ipc.IPCServiceManager INFORMATION: Starting ipc service CLI server
[07/04/2024 14:11:33] core.cli.server.CliServer INFORMATION: CLI server up and running...
[07/04/2024 14:11:33] core.ipc.IPCServiceManager INFORMATION: Starting ipc service UI server
[07/04/2024 14:11:33] core.webui.server.UIServer INFORMATION: UI server up and running...
[07/04/2024 14:11:33] core.ipc.IPCServiceManager INFORMATION: Starting ipc service Python IPC client
[07/04/2024 14:11:33] core.ipc.repeatClient.PythonIPCClientService WARNUNG: Launcher does not exist. Doing nothing.
[07/04/2024 14:11:33] core.ipc.IPCServiceManager INFORMATION: Starting ipc service C# IPC client
[07/04/2024 14:11:33] core.ipc.repeatClient.CSharpIPCClientService WARNUNG: Launcher /home/user/Downloads/resources/csharp/Repeat.exe is not executable.
[07/04/2024 14:11:33] frontEnd.MainBackEndHolder INFORMATION: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Initialization finished. UI server is at http://localhost:65401
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
        at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:381)
        at java.desktop/java.awt.Desktop.browse(Desktop.java:531)
        at frontEnd.MinimizedFrame.show(MinimizedFrame.java:78)
        at frontEnd.MinimizedFrame.access$0(MinimizedFrame.java:70)
        at frontEnd.MinimizedFrame$1.actionPerformed(MinimizedFrame.java:41)
        at java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:692)
        at java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:651)
        at java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:370)
        at java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:359)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:778)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
        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)

Using Arch, 6.8.2-arch2-1 Linux kernel, KDE Plasma 6.0.3 on Wayland.

hptruong93 commented 6 months ago

Since you've added that it's Arch Linux, C# "Launcher /home/user/Downloads/resources/csharp/Repeat.exe is not executable" is actually intended behavior, right? Were you able to access the web UI page (localhost:65401) and do some record/replay?

The bug here I guess is that for some reasons it thinks that it's running in Windows. It should have detected that it's Linux and not run the C# client https://github.com/repeats/Repeat/blob/6e91d22d38b79a7321e42446348c6206a548b950/src/core/ipc/repeatClient/CSharpIPCClientService.java#L29 I think this logic here can be improved, but I'm not sure on the top of my head how to detect Arch Linux.

You also mentioned that you're using Wayland. This shouldn't work on Wayland as mentioned here. I wasn't able to figure out how to listen to key strokes and mouse events globally in Wayland without having root access (basically listening to /proc/bus/input/devices).