Перейти к публикации

Linux проблема с запуском Astra


Рекомендованные сообщения

Привет. Сижу на линуксе. Есть две проблемы. 

 

1. При скачивании и распаковке жавы не выставляется exec бит на бинарник java, из-за чего лаунчер не может запустить клиента:

Скрытый текст

[10:41:04] [WARN]: 
ru.excalibur.launcher.c.k: Cannot run program "/home/onyn/exlauncher/jvm17/bin/java" (in directory "/home/onyn/exlauncher/clients/astra"): error=13, Permission denied
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[?:1.8.0_372]
    at ru.excalibur.launcher.d.f.I.k(u:245) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.d.f.G.k(de:340) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.d.f.M.k(jl:117) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.d.f.M.k(jl:309) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.d.f.M.k(jl:600) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.c.f.f.f.k(dk:514) ~[launcher_build_65.jar:?]
    at ru.excalibur.launcher.c.h.run(hm:55) ~[launcher_build_65.jar:?]
Caused by: java.io.IOException: error=13, Permission denied
    at java.lang.UNIXProcess.forkAndExec(Native Method) ~[?:1.8.0_372]
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) ~[?:1.8.0_372]
    at java.lang.ProcessImpl.start(ProcessImpl.java:134) ~[?:1.8.0_372]
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[?:1.8.0_372]
    ... 7 more
 

Лаунчеру нужно после распаковки выставить правильные права. Это легко делается:

Скрытый текст
try {
    Set<PosixFilePermission> perms = new HashSet<>();
    perms.add(PosixFilePermission.OWNER_EXECUTE);
    perms.add(PosixFilePermission.GROUP_EXECUTE);
    perms.add(PosixFilePermission.OTHERS_EXECUTE);
    Files.setPosixFilePermissions(pathToJavaBinary, perms);
} catch (UnsupportedOperationException e) {
    // Эта ошибка будет стрелять в винде. Можно игнорить.
}

Можно самостоятельно решить проблему, выставив права в консоли руками: chmod +x /home/onyn/exlauncher/jvm17/bin/java

Проблема касается и мака.

 

2. При запуске клиента на 1.20 новая ошибка:

Скрытый текст

[10:51:53] [INFO]: WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-exports
[10:51:53] [INFO]: WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-opens
[10:51:53] [INFO]: WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-opens
[10:51:53] [INFO]: Exception in thread "main" java.lang.ExceptionInInitializerError
[10:51:53] [INFO]:      at cpw.mods.niofs.union.UnionFileSystemProvider.newFileSystemInternal(UnionFileSystemProvider.java:115)
[10:51:53] [INFO]:      at cpw.mods.niofs.union.UnionFileSystemProvider.newFileSystem(UnionFileSystemProvider.java:105)
[10:51:53] [INFO]:      at cpw.mods.jarhandling.impl.Jar.<init>(Jar.java:84)
[10:51:53] [INFO]:      at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:70)
[10:51:53] [INFO]:      at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:66)
[10:51:53] [INFO]:      at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:58)
[10:51:53] [INFO]:      at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:50)
[10:51:53] [INFO]:      at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:84)
[10:51:53] [INFO]: Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field static final java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP accessible: module java.base does not "opens java.lang.invoke" to unnamed module @13a5fe33
[10:51:53] [INFO]:      at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
[10:51:53] [INFO]:      at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
[10:51:53] [INFO]:      at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
[10:51:53] [INFO]:      at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
[10:51:53] [INFO]:      at cpw.mods.niofs.union.UnionFileSystem.<clinit>(UnionFileSystem.java:52)
[10:51:53] [INFO]:      ... 8 more
[10:51:53] [WARN]:
ru.excalibur.launcher.c.k: process hasn't exited
        at java.lang.UNIXProcess.exitValue(UNIXProcess.java:421) ~[?:1.8.0_372]
        at ru.excalibur.launcher.d.f.I.k(u:177) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.d.f.I.k(u:480) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.d.f.G.k(de:340) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.d.f.M.k(jl:117) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.d.f.M.k(jl:309) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.d.f.M.k(jl:600) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.c.f.f.f.k(dk:514) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.c.h.run(hm:55) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.c.h.start(hm:293) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.c.G.k(hm:150) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.f.h.c.T.k(ch:170) ~[launcher_build_65.jar:?]
        at ru.excalibur.launcher.c.h.run(hm:67) ~[launcher_build_65.jar:?]
 

Я немного подебажил и выяснил, что при запуске клиента в аргументе -p жарники разделяются символом ";" (точка с запятой). Это правильный разделитель для винды, но на линуксе и маке должно быть ":" (двоеточие). Здесь правила такие же как и у аргумента -cp.

Ссылка на комментарий
  • 2 недели спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...