Рубрики
Без рубрики

bash: /usr/bin/java: не удается выполнить двоичный файл: Ошибка формата Exec

Для процессора Intel или AMD загрузите “Linux/x64”; для процессора ARM загрузите “Linux/AArch64`

Запустите простую команду java в Ubuntu и обнаружите следующие ошибки:

$ java -version

bash: /usr/bin/java: cannot execute binary file: Exec format error

P.S Протестировано с Java 15 и Ubuntu 20

1. Проблема – Скачать неправильная сборка JDK

Ошибка Ошибка формата Exec означает, что мы загружаем неправильную сборку JDK для определенной платформы.

Например, процессор AMD , основанный на архитектуре x86_64 .

$ lscpu

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   43 bits physical, 48 bits virtual
CPU(s):                          24
On-line CPU(s) list:             0-23
Thread(s) per core:              2
Core(s) per socket:              12
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       AuthenticAMD
CPU family:                      23
Model:                           113
Model name:                      AMD Ryzen 9 3900X 12-Core Processor

И мы загружаем Linux/AArch64 сборку JDK.

Попробуйте запустить команду java , и мы столкнемся с приведенной ниже ошибкой:

$ java -version

bash: /usr/bin/java: cannot execute binary file: Exec format error

2. Решение – Разница между процессорами Intel, AMD и ARM

Процессоры Intel и AMD основаны на x86_64 архитектуре; AArch64 предназначен для процессора ARM, который основан на архитектуре ARM .

Дальнейшее чтение |/Quora – В чем разница между Intel, AMD и Процессор ARM

Для процессоров Intel или AMD в Linux, пожалуйста, загрузите JDK Linux/x64 сборка.

Для процессора ARM в Linux, пожалуйста, загрузите JDK Linux/AArch64 сборка.

Рекомендации

Оригинал: “https://mkyong.com/java/bash-usr-bin-java-cannot-execute-binary-file-exec-format-error/”