We cannot execute bin java

Ошибка mvn -version: мы не можем выполнить / usr / libexec / java_home / bin / java

====== EDIT 2: Я использовал тот же код, что упоминался ниже в редакторе 1, моя ошибка, по-видимому, не в самом коде, а из-за источника ~/.bash_profile, который не обновляет мой файл, как ожидалось. Я думаю, однако (спасибо @eckes), пожалуйста, см. Ошибку maven:( BTW: jira.codehaus.org/browse/MNG-5686 — eckes 39 секунд назад) EDIT 1: это не дубликат: Что мне нужно установить JAVA_HOME на OSX Я пробовал все решения, упомянутые в вышеупомянутой статье, и они не работают для меня. Моя проблема в том, что я делаю одно из решений, перечисленных здесь (я пробовал другие). Я все еще получаю ошибку. В настоящее время я пытаюсь выполнить указанные выше инструкции:

 export JAVA_HOME=$(/usr/libexec/java_home) 
 source ~/.bash_profile mvn -version Error: JAVA_HOME is not defined correctly. We cannot execute /usr/libexec/java_home/bin/java 
java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) 

Я установил Xcode для установки maven, однако в недавней документации указано, что я могу использовать brew (Maven Install в Mac OS X) Я установил maven с помощью:

//install brew brew doctor brew install maven 
mvn -version Error: JAVA_HOME is not defined correctly. 

Я нашел: http://hathaway.cc/post/69201163472/how-to-edit-your-path-environment-variables-on-mac Однако это основано на java 7, я считаю. Но, похоже, это было исправление. Нет никакого bash_profile на новом mac (https://apple.stackexchange.com/questions/26928/no-bash-profile-in-os-x-lion) Итак, я создал и отредактировал свой файл bash_profile с помощью

touch ~/.bash_profile vim ~/.bash_profile //and added the line export JAVA_HOME=(/usr/libexec/java_home) 
 mvn -version Error: JAVA_HOME is not defined correctly. We cannot execute /usr/libexec/java_home/bin/java 

Я проверил, однако, что в моей файловой системе java_home находится там, где находится файл. В моей файловой системе нет «/usr/libexec/java_home/bin/java» как ошибка maven. Кто-нибудь еще сталкивался с этим с новым java 8 и brew установленным maven? Я использую MacBook Pro (Retina, 13 дюймов, середина 2014 года), работающий на Yosemite. Я уже установил такую ​​установку, но никогда не сталкивался с этой проблемой. ** Примечание: Я нашел это: http://www.mkyong.com/java/maven-java_home-is-not-defined-correctly-on-mac-osx/ Я думаю, что это будет мое решение. Исправьте меня, если я ошибаюсь, но я считаю, что разница — это скобки. Пример:

 export JAVA_HOME=/usr/libexec/java_home 
 export JAVA_HOME=(/usr/libexec/java_home) 

Однако моя ошибка не была исправлена. (Также на всякий случай, если кто-нибудь спросит, откуда я его изложил, прежде чем перезапускать.) Однако он изменил мою ошибку. Он удалил дополнительный /bin/java.

 mvn -version Error: JAVA_HOME is not defined correctly. We cannot execute /usr/libexec/java_home/bin/java 
 echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home 

export JAVA_HOME = /usr/libexec/java_home ли вы пробелы в export JAVA_HOME = /usr/libexec/java_home ? Можете ли вы открыть окно терминала и echo $JAVA_HOME и сообщить нам результат?

Читайте также:  Коды для java run

echo $ JAVA_HOME / usr / libexec / java_home. Там нет пробелов. это JAVA_HOME = (/ usr /. / java_home)

Я предполагаю, что синтаксис оболочки backtick (замена значения на вывод команды) был потерян в ваших источниках. $ () Является альтернативным синтаксисом: JAVA_HOME=`java_home`

@eckes, подождите, извините, не могли бы вы это объяснить? Я переключил его на $ (), и он все еще не работает правильно?

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

@eckes Я запускаю source ~ / .bash_profile, а затем пробую mvn -version и все еще получаю: JAVA_HOME не определен правильно. Мы не можем выполнить / usr / libexec / java_home / bin / java. Это с правильным синтаксисом $ ()

Затем проверьте, перезаписывает ли переменная ~ / .mavenrc или / etc / mavenrc. Вы также можете использовать MAVEN_SKIP_RC=true mvn -v (одна строка), чтобы убедиться, что это один из этих файлов.

Я запустил строку: MAVEN_SKIP_RC = true mvn -v Ошибка: JAVA_HOME не определен правильно. Мы не можем выполнить / usr / libexec / java_home / bin / java. Также ~ / .mavenrc еще не существует в виде файла

Затем вы можете запустить bash -x mvn — он напечатает много вещей (одна строка, начинающаяся с + для каждой команды), но вы должны увидеть, как JAVA_HOME получает неправильное значение.

. + ‘[‘ -x / usr / libexec / java_home / jre / sh / java ‘]’ + JAVACMD = / usr / libexec / java_home / bin / java + ‘[‘ ‘!’ -x / usr / libexec / java_home / bin / java ‘]’ + echo ‘Ошибка: JAVA_HOME не определен правильно.’ Ошибка: JAVA_HOME не определен правильно. + echo ‘Мы не можем выполнить / usr / libexec / java_home / bin / java’ Мы не можем выполнить / usr / libexec / java_home / bin / java + exit 1

Я пойду с пользой сомнения здесь. Похоже, что решение в дубликате будет работать для вас. Дважды проверьте ваши разрешения; убедитесь, что вы действительно можете выполнить двоичный файл.

на самом деле в скрипте mvn есть ошибка, она также должна использовать $ (). однако он не должен достигать этой строки, если JAVA_HOME был правильно установлен ранее. В любом случае, измените JAVA_HOME=/usr/libexec/java_home в этом сценарии на версию $ (), и это должно работать

@ Макото, эй, спасибо за сомнение. Я прочитал решение на другой странице. Это не работает для меня. Это новый компьютер хм, может быть, плохо проверить разрешения. странный

@eckes хмм ладно, подождите, мой bash_profile: export JAVA_HOME = $ (/ usr / libexec / java_home), что верно, да? Вы хотите, чтобы я изменил какой скрипт на формат $ ()?

@eckes О, интересно. Поэтому я запустил source ~ / .bash_profile, потому что думал, что это обновит файл / местоположение. Я открыл другое окно, и он начал работать. Ошибка, которая, как мне кажется, была у меня, была в том, что источник . не обновил файл, как я ожидал. Новое окно работает нормально. Большое спасибо за помощь. Моим решением было создание новой страницы терминала. Любые причины, почему источник . не работает?

@ Макото, ты прав, код, который требуется, является дубликатом. Я не уверен, почему вышеупомянутая проблема с исходным кодом ~ / .bash_profile не обновлялась и не позволяла файлу работать. Мне пришлось перезапустить открытый терминал. Не стесняйтесь удалять. Сожалею!

Источник

Mvn -version error: We cannot execute /usr/libexec/java_home/bin/java

After a good deal of trail and error I tried changing the JDK version used to start IntelliJ itself from JDK 6 to JDK 8 and this resolved the problem. Do you have multiple versions of Java installed?

Mvn -version error: We cannot execute /usr/libexec/java_home/bin/java

You missed on one little thing, I believe:

export JAVA_HOME=$(/usr/libexec/java_home) ⬆︎ This dollar sign

This tells the shell «The value of this expression is the output from executing the following command ( /usr/libexec/java_home) )»

Running the command gives the proper java home for the mac (if you have a single JDK installed), and that value is placed in JAVA_HOME. Without the dollar sign, it just puts the name of the command there.

I write on .bash_profile file these lines and then work for me.

export JAVA_HOME=$(/usr/libexec/java_home) export PATH=/Users/(YOUR USER)/Documents/apache-maven-3.0.3/bin:$PATH export PATH=$JAVA_HOME/jre/bin:$PATH 

Note: work on macOS Sierra (10.12.6)

Follow this link : https://stackoverflow.com/a/44564303/5005676 If you see the mvn script: The code fails here —

Steps for debugging and fixing:

Step 1: Open the mvn script /Users/Username/apache-maven-3.0.5/bin/mvn (Open with the less command like: less /Users/Username/apache-maven-3.0.5/bin/mvn)

Step 2: Find out the below code in the script:

 if [ -z "$JAVACMD" ] ; then if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" else JAVACMD="$JAVA_HOME/bin/java" fi else JAVACMD="`which java`" fi fi if [ ! -x "$JAVACMD" ] ; then echo "Error: JAVA_HOME is not defined correctly." echo " We cannot execute $JAVACMD" exit 1 fi 

Step3: It is happening because JAVACMD variable was not set. So it displays the error.

export JAVACMD=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/ 

Key: If you want it to be permanent open emacs .profile

post the commands and press Ctrl-x Ctrl-c ( save-buffers-kill-terminal ).

Java: I cannot execute a compiled Java code, change your path to point to a more recent version or if you are aware of the version using which the program was compiled, install the version and …

Java: I cannot execute a compiled Java code

It’s probably compiled with a more recent version of java than the one you are attempting to use running the program. Do you have multiple versions of java installed?

Try java -version and javac -version and compare the versions. If you use and IDE/editor where Java is configured in the settings, see that it points to the expected directory.

You’ve compiled your class with Java 11 (55) while you’re still trying to execute/run them using Java-8(52).

Either compile the code using Java-8 or execute with Java-11.

The error clearly says that the compiler version was higher than the JVM version with which you are trying to run. That is why you are getting the error on running.

Java 8 uses major version 52

Java 11 uses major version 55

Java — Ant build failing, «idl2java: cannot execute binary, I am using invoke ant in jenkins basic job build. My build job is failing because it is not able to execute binary file. In my build.xml file I have the syntax …

Eclipse shows «Cannot execute binary file» when running Java application

I had a look at the jre1.7.0 to find out it has .exe files. I removed the folder and it showed a new error as following.

Unsupported major.minor version 51.0 

Using this answer I changed the version of my Java on Eclipse and that solved the problem.

Problems with Android Studio (problemas with Java, Stack Overflow Public questions & answers; Stack Overflow for Teams Where developers & technologists share private knowledge with …

Gradle sync failed: Could not determine Java version provide fix?

Check your SDKs or change your Intellij JDK

If you’ve upgraded a JDK recently make sure to check that the SDK paths are correct. It doesn’t have to be the SDK you’re currently using your project, it can be another version. To do this on MacOSX press F4 at the project to go to its project structure settings. Here click on SDKs and make sure that each Java JDK points to a valid folder. For example in my case the JDK 6 SDK pointed to a folder that no longer existed and once I updated that I could import the Gradle project. It’s of course also possible to delete a JDK from IntelliJ if it has been removed from disk.

On a different occasion I ran into the same problem again but this time my JDKs all seemed to be in order so I couldn’t figure out what was going on. After a good deal of trail and error I tried changing the JDK version used to start IntelliJ itself from JDK 6 to JDK 8 and this resolved the problem. To do this you need to edit the Info.plist located at /Applications/.app/Contents/Info.plist. Scroll down to the section that says JVMVersion and change its value to 1.8*. For example:

JVMVersion 1.8* Hope this will help you 🙂

Windows cannot find bin\jre\bin\javaw.exe, e) Click on “Java” f) On the Java window, click on “Update” tab . g) Click on “Update Now” button and follow the onscreen instructions to complete the updates for …

Источник

Оцените статью