Невозможно выполнить команду Java в Ubuntu

Я использую Ubuntu 12.04, установил JDK и интересно следующее ошибка. Почему у меня есть эта ошибка, хотя java файл существует там?

appuser@securexmlgw-db:~/Downloads/jdk1.7.0_04/bin$ ls
appletviewer  javac         jcontrol    jstack        policytool   tnameserv
apt           javadoc       jdb         jstat         rmic         unpack200
ControlPanel  javah         jhat        jstatd        rmid         wsgen
extcheck      javap         jinfo       jvisualvm     rmiregistry  wsimport
idlj          java-rmi.cgi  jmap        keytool       schemagen    xjc
jar           javaws        jps         native2ascii  serialver
jarsigner     jcmd          jrunscript  orbd          servertool
java          jconsole      jsadebugd   pack200       test
appuser@securexmlgw-db:~/Downloads/jdk1.7.0_04/bin$ ./java -version
-bash: ./java: No such file or directory

Я дал все возможное упорство.

-rwxrwxrwx 1  500  500   5809 Apr 12  2012 jarsigner*
-rwxrwxrwx 1  500  500   5654 Apr 12  2012 java*
-rwxrwxrwx 1  500  500   5805 Apr 12  2012 javac*
-rwxrwxrwx 1  500  500   5809 Apr 12  2012 javadoc*

2 ответа

Решение

Скорее всего, вы скачали 32-битную JRE и запускаете ее на 64-битной платформе без библиотек эмуляции. Просто загрузите тот, который соответствует вашей платформе.

Ядро возвращается ENOENT на exec когда он не может найти интерпретатор ELF, который указывает исполняемый файл.

Есть ли шанс, что вы находитесь не в собственной файловой системе, а, например, в файловой системе FAT (Windows)?

Если это так, разрешения на выполнение не должны работать, поскольку файловая система не имеет надлежащей поддержки разрешений. Это называется noexecи я рекомендую не менять его. В противном случае вы открываете двери для хакеров.

Используйте Ubuntu openjdk-7. Он гораздо лучше поддерживается, чем версия Oracle:

Вы получаете автоматические обновления безопасности, только если используете упакованную версию.

Еще кое-что:

НИКОГДА НЕ СДЕЛАЙТЕ JAVA ПИСЬМЕННОЙ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ

 -rwxrwxrwx 1  500  500   5654 Apr 12  2012 java*

это говорит, что "любой пользователь может изменить (= взломать, заразить вирусом и т. д.) ваш java". НЕ ДЕЛАЙТЕ ЭТОГО. Держите права на запись под максимально жестким контролем.

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