Ответ 1
Я видел ту же ошибку, когда пытался вызвать java -version
внутри каталога, который я уже удалил из другого сеанса терминала. Конечно, в этом случае java could not determine the current working directory
, просто потому, что его не было.
Я пытаюсь запустить файл .jar, который был успешно создан в Netbeans, и я получаю следующую ошибку:
Ошибка при инициализации VM java.lang.Error: Свойства init: Не удалось определить текущий рабочий каталог. в java.lang.System.initProperties(собственный метод) в java.lang.System.initializeSystemClass(System.java:1070)
Команда, которую я набираю для запуска .jar,
java -jar "/path to the dist forlder/EOPPrototype.jar"
My classpath выглядит следующим образом:
CLASSPATH=/opt/netbeans-7.1.2/ide/modules/ext/mysql-connector-java-5.1.13- bin.jar:/h/USERS/local/pagola/NetBeansProjects/mylib/dist/mylib.jar:/h/USERS/local/pagola/NetBeansProjects/EOPPrototype/build/classes:.
Что мне не хватает?
Я видел ту же ошибку, когда пытался вызвать java -version
внутри каталога, который я уже удалил из другого сеанса терминала. Конечно, в этом случае java could not determine the current working directory
, просто потому, что его не было.
В Fedora 21 я попытался вызвать "java -version" после удаления и дал вышеприведенную ошибку. Закройте все терминалы и откройте их снова и попробуйте.
Должен работать.
Я получал то же сообщение об ошибке, но я не уверен, было ли это по той же причине, что и я не использую Netbeans. Я использую свой терминал и компилирую его с помощью ant
.
I cd
'd в каталог для запуска файла javafile.class
. Файл, который я хочу запустить, является частью более крупного пакета. Структура каталога пакета выглядела примерно так: a/b/c/javafile.class
. Каталоги a
, b
и c
являются частью более крупного пакета.
Чтобы запустить мой javafile.class
, я cd
'd в a
и запустить файл оттуда: java b/c/javafile
. После того, как я внесла некоторые изменения и перекомпилировал мой ant
script, каталог, в котором я был, был удален и переделан с помощью ant
. Итак, когда я снова запустил javafile.class
, я получил ошибку, которую вы получаете.
Я исправил свою проблему cd
из каталогов, которые были удалены и переделаны с помощью ant
, а затем снова запустил мой javafile.class
.
Решение: cd в другой каталог и снова запустите эту команду, которая работает для меня.
См. объяснение здесь: https://bugs.openjdk.java.net/browse/JDK-8186434
Я получил ту же ошибку -
Ошибка при инициализации VM
java.lang.Error: Свойства init: Не удалось определить текущий рабочий каталог.
просто сделав "java -version" (вы бы подумали, что не нужно виртуальную машину, чтобы ответить на простой вопрос: "какая у вас версия?" )
Более высокий элемент (между косой чертой) пути к каталогу pwd в нем были пробелы. Когда я создал текущий рабочий каталог, который из/ нигде не было никаких пробелов, команда "java -version" получила правильный ответ.
Я заключу, что они не учитывали каталоги с пробелами, когда они запрограммировал его. Но это была версия 1.7. Я сейчас загрузил версию 8, надеюсь, он был исправлен.
В CentOS, rhel, SL или SLC? Не проблема в debian/ubuntu.
Я обнаружил, что вам нужно выйти из оболочки, которую вы используете, и зайти в нее. Окружение не настроено изначально правильно для текущей оболочки. После входа в систему я вижу: java -version будет работать.
Также убедитесь, что /etc/alternatives/java фактически указывает на что-то разумное, например:
ls -lisa /etc/alternatives/java
72645 0 lrwxrwxrwx. 1 root root 46 May 27 11:29 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
возможно, вы не правильно настроили java-среду на своей рабочей станции.
следующие конфигурации были тем, что я сделал в своем mac
vi ~/.bash_profile
и добавьте в него
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
заменить
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
с вашей версией jdk а затем запустите
source ~/.bash_profile
использовать эту конфигурацию сразу то вы можете проверить
java -version
Я получил эту ошибку в Mac OS X, и это настоящая ошибка, так как каталог исчез. Каталог, в котором я был, когда выполняю команды, - <PROJECT DIR>\target
.
Проблема заключалась в том, что я открыл два терминала в другом терминале, на котором я запускал
mvn clean install
, и целевой каталог изPROJECT DIR
был удален и воссоздан.
Мой старый терминал, откуда я выполнял Java-команды, не находится в действительном каталоге.
Дескриптор файла недействителен, так как каталог был удален Maven.
Когда я вернусь в родительский каталог и вернусь в каталог target
, команда java
запустилась правильно, как и ожидалось.
Как раз сейчас, я получил ту же ошибку. потому что я использую java для setreuid/setregid для apache: apache, когда я возвращаюсь к root: root, я изменил gid перед uid, реальным результатом является root: apache. все происходит неправильно, например, ошибка: "java.lang.Error: Свойства init: Не удалось определить текущий рабочий каталог".
вы можете проверить его.
Вы можете получить эту ошибку, если вы выдаете "java -version" или другую команду java из каталога только для чтения. Например, используя openjdk 8 on centos (как пользователь без полномочий root):
cd /usr/bin
java -version
Ошибка при инициализации виртуальной машины java.lang.Error: Свойства init: Не удалось определить текущий рабочий каталог.
У меня была эта ошибка в моем mac, когда я запускал tomcat из моего затмения. После установки JAVA_HOME и перезапуска затмения ошибка исправлена.