无法确定工作目录

我正在试着运行一个。在 Netbeans 中成功创建的 jar 文件,我收到以下错误:

初始化 VM java.lang 时发生错误。错误: 属性 init: 无法确定当前工作目录 InitProperties (本机方法) System.initializeSystemClass (System.java: 1070)

我键入的运行.jar 的命令是

java -jar "/path to the dist forlder/EOPPrototype.jar"

我的类路径如下:

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:.

我错过了什么?

84654 次浏览

I was getting the same error message, but I'm not sure if it was for the same reason as I don't use Netbeans. I use my terminal and compile with ant.

I cd'd to a directory to run a javafile.class file. The file I want to run is part of a bigger package. The directory structure of the package looked something like this: a/b/c/javafile.class. The a, b, and c directories are all part of a larger package.

To run my javafile.class, I cd'd into a and ran the file from there: java b/c/javafile. After I made some changes and recompiled with my ant script, the directory I was in had been deleted and remade by ant. So, when I ran javafile.class again, I got the error you're getting.

I fixed my problem by cding out of the directories that are deleted and remade by ant and then running my javafile.class again.

I saw the same error when I was trying to call java -version inside a directory, which I already had deleted from another terminal session. Of course in that case java could not determine the current working directory, simply because it didn't exist.

Just now, i got the same error. because i use java to setreuid/setregid to apache:apache, when i change back to root:root, i changed gid before uid, the real result is root:apache. everything going wrong, such as the error say "java.lang.Error: Properties init: Could not determine current working directory. "

you can check it.

I got the same error -

Error occurred during initialization of VM

java.lang.Error: Properties init: Could not determine current working directory.

by just doing 'java -version' (you would think it wouldn't need to bring up a virtual machine just to answer a simple question like 'what version are you?')

A higher up element (that between the slashes) of the directory path of the pwd had spaces in it. When I made the current working directory one which from / downward didn't have any spaces the 'java -version' command got a proper response.

I'm concluding they didn't account for directories with spaces when they programmed it. But that was version 1.7. I've now loaded version 8 so hopefully it has been corrected.

In Fedora 21, I tried calling the "java -version" after an uninstall and it gave the above error. Close all the terminals and open them again and try.

Should work.

Under CentOS, rhel, SL or SLC? Not an issue under debian/ubuntu.

I found you need to logout of the shell you are using and log back in. The environment is not set up initially correctly for the current shell. After login I see that: java -version will work.

Also ensure that /etc/alternatives/java actually points to something reasonable like:

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

I got this error on Mac OS X and this is a genuine error since the directory has vanished. The directory I was when I am executing the commands is <PROJECT DIR>\target.

The problem was I opened two terminals in the other terminal I ran mvn clean install and the target directory from PROJECT DIR got deleted and recreated.

My old terminal from where I was executing Java commands is not in a valid directory.

The file descriptor is invalid since the directory got deleted by Maven.

When I moved back to the parent directory and the changed back to the target directory, the java command started working correctly as expected.

You may get this error if you issue "java -version" or other java command from a read-only directory. For example using openjdk 8 on centos (as non-root user):

cd /usr/bin
java -version

Error occurred during initialization of VM java.lang.Error: Properties init: Could not determine current working directory.

maybe you did not config java environment on your workstation correctly

the following configurations were what I did in my mac

vi ~/.bash_profile

and add those in it

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

replace

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

with your jdk version and then run

source ~/.bash_profile

to use these config immediately then you can check by

java -version

I was having this error in my mac, when I start tomcat from my eclipse. After setting JAVA_HOME and restarting the eclipse, the error is fixed.

Solution: cd to another directory and run that command again, that works for me.

See explanation here: https://bugs.openjdk.java.net/browse/JDK-8186434

You have to install default-jdk first ! sudo apt install default-jdk only version 11 does not set all the environment correctly in place of : sudo apt install openjdk-11-jdk