Ошибка компиляции в JNativeHook

Попытка скомпилировать этот https://github.com/kwhat/jnativehook/wiki/Compiling

сделал это так далеко, как шаг, где я должен запустить все, чтобы построить.

Сбой компиляции со следующим в командной строке.

    [javac] Fatal Error: Unable to find package java.lang in classpath or bootcl
asspath

BUILD FAILED
C:\Users\George\Downloads\sounds\JNativeHook-2.0.1\JNativeHook\build.xml:394: Co
mpile failed; see the compiler error output for details.

Total time: 0 seconds

РЕДАКТИРОВАТЬ: Я просто скопировал файл RT в каталог, который я пытаюсь скомпилировать. Я прошел первую ошибку, но теперь я получаю

ava\org\jnativehook\mouse\NativeMouseWheelListener.java

download-libuiohook:

bootstrap-libuiohook:
     [echo] Bootstrapping libUIOHook...
[autoreconf] autoreconf --verbose --force --install

BUILD FAILED
C:\Users\George\Downloads\sounds\JNativeHook-2.0.1\JNativeHook\build.xml:351: Ex
ecute failed: java.io.IOException: Cannot run program "sh" (in directory "C:\Use
rs\George\Downloads\sounds\JNativeHook-2.0.1\JNativeHook\src\libuiohook"): Creat
eProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)
        at org.apache.tools.ant.taskdefs.launcher.Java13CommandLauncher.exec(Jav
a13CommandLauncher.java:58)
        at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:428)
        at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:442)
        at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:629)
        at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:670)
        at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:496)
        at org.jnitasks.autotools.AutoreconfTask.execute(AutoreconfTask.java:113
)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav
a:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:853)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find th
e file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
        at java.lang.ProcessImpl.start(ProcessImpl.java:137)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 24 more

Total time: 1 second

Все еще старательно пытаюсь понять это в настоящее время.

Обновить:

Я думаю, что я поступил об этом неправильно. Я попытался сделать это внутри MINGW64, что, вероятно, так и должно было быть.

К сожалению, все еще получаю ошибку, которую я изучаю.

compile-java:
     [echo] Compiling Java source...

download-libuiohook:

bootstrap-libuiohook:
     [echo] Bootstrapping libUIOHook...
[autoreconf] autoreconf --verbose --force --install
[autoreconf] autoreconf: Entering directory `.'
[autoreconf] autoreconf: configure.ac: not using Gettext
[autoreconf] autoreconf: running: aclocal --force -I m4
[autoreconf] aclocal-1.15: error: aclocal: file '/msys64/usr/share/aclocal/xsize                    .m4' does not exist
[autoreconf] autoreconf: aclocal failed with exit status: 1

BUILD FAILED
C:\Users\George\Downloads\sounds\JNativeHook-2.0.1\JNativeHook\build.xml:351: ex                    ec returned: 1

Total time: 2 seconds

ОБНОВИТЬ:

Ух ты, сколько оболочек у msys64. Я сейчас попробовал то, что кажется последней и последней оболочкой msys2_shell.bat, и она получила еще больше, но все равно не работает.

Теперь я получаю

JNativeHook/bin --enable-debug --enable-quiet --enable-static --disable-shared --with-pic
[configure] checking build system type... x86_64-pc-msys
[configure] checking host system type... x86_64-pc-msys
[configure] checking target system type... x86_64-pc-msys
[configure] checking for a BSD-compatible install... /usr/bin/install -c
[configure] checking whether build environment is sane... yes
[configure] checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
[configure] checking for gawk... gawk
[configure] checking whether make sets $(MAKE)... yes
[configure] checking whether make supports nested variables... yes
[configure] checking for style of include used by make... GNU
[configure] checking for gcc... clang
[configure] configure: error: in `/c/Users/George/Downloads/sounds/JNativeHook-2.0.1/JNativeHook/bin/libuiohook':
[configure] checking whether the C compiler works... no
[configure] configure: error: C compiler cannot create executables
[configure] See `config.log' for more details

BUILD FAILED
C:\Users\George\Downloads\sounds\JNativeHook-2.0.1\JNativeHook\build.xml:361: exec returned: 77

Total time: 37 seconds

Так близко.

ОБНОВИТЬ:

Установил clang и теперь получаю эту подробную ошибку из файла config.log.

configure:3580: checking whether the C compiler works
configure:3602: clang -march=armv6j -mfpu=vfp -mfloat-abi=hard -Os -g -pipe -fomit-frame-pointer -flto -ffat-lto-objects -fno-stack-protector  -Wl,--as-needed,-O1 -flto conftest.c  >&5
clang.exe: warning: optimization flag '-ffat-lto-objects' is not supported
clang.exe: error: 'i686-pc-windows-gnu': unable to pass LLVM bit-code files to linker
configure:3606: $? = 1
configure:3644: result: no
configure: failed program was

:

2 ответа

Не забудьте запустить ant distclean Во-первых, если вы пытаетесь скомпилировать 2.0.1. Я запустил процесс упаковки, забыв включить файл build.properties в список исключений для zip-файла. Я думаю, что это также исправит вашу проблему с копированием в rt.jar. Это может решить все ваши проблемы;) В любом случае, 2.0.2 решит проблему и намечено выпустить в воскресенье.

Итак, для будущих новичков компилятора JNativeHook, таких как я, делающих это на Windows 8.1, вот что я должен был сделать, чтобы это заработало.

Помимо выполнения всех шагов в разделе "Компиляция для Windows", представленных в их git.

Вам также нужно...

Скачать LLVM для Windows. Скопируйте ваш rt.jar в каталог JNativeHook. И обязательно убедитесь, что вы удалили все build.properties, созданные из неудачных сборок.

Это должно заставить его работать.

Другие вопросы по тегам