无法确定当前目录

我试图运行一个.jar文件,在Netbeans中创build成功,我收到以下错误:

VM java.lang.Error初始化期间发生错误:Properties init:无法确定当前工作目录。 在java.lang.System.initProperties(本地方法)在java.lang.System.initializeSystemClass(System.java:1070)

我键入运行.jar的命令是

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

我的类path如下所示:

 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时,我看到了同样的错误,而这个目录已经从另一个terminal会话中删除了。 当然,在这种情况下,java could not determine the current working directory ,只是因为它不存在。

在Fedora 21中,我尝试在卸载后调用“java -version”,并给出了上述错误。 closures所有的terminal并再次打开并尝试。

应该pipe用。

我得到了同样的错误信息,但我不确定是否出于同样的原因,因为我不使用Netbeans。 我用我的terminal和ant编译。

cd到目录运行一个javafile.class文件。 我想运行的文件是一个更大的包的一部分。 包的目录结构如下所示: a/b/c/javafile.classabc目录都是更大包的一部分。

为了运行我的javafile.class ,我把javafile.class放到a文件里,然后运行这个文件: java b/c/javafile 。 在我做了一些修改后,用我的ant脚本重新编译后,我所在的目录已经被删除,并被ant重新编译。 所以,当我再次运行javafile.class时,我得到了错误。

我解决了我的问题,通过删除由ant重新删除的目录,然后再次运行我的javafile.class

我得到了同样的错误 –

虚拟机初始化时发生错误

java.lang.Error:Properties init:无法确定当前的工作目录。

通过只做“java -version”(你可能会认为不需要调出一个虚拟机来回答一个简单的问题,比如“你是什么版本的?”)

pwd的目录path中较高的元素(斜线之间)有空格。 当我将当前的工作目录从/下移到没有任何空格时,'java -version'命令得到了正确的响应。

我得出结论,当他们编程时,他们没有考虑带有空格的目录。 但那是1.7版本。 我现在加载版本8,希望它已被纠正。

在CentOS下,rhel,SL还是SLC? 在Debian / Ubuntu下不是问题。

我发现您需要注销正在使用的shell并重新login。对于当前shell,最初没有正确设置环境。 login后,我看到: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 

我在Mac OS X上遇到了这个错误,这是一个真正的错误,因为这个目录已经消失了。 我在执行命令时的目录是<PROJECT DIR>\target

问题是我在另一个terminal打开两个terminal我跑了mvn clean install和从PROJECT DIR目标目录被删除并重新创build。

我执行Java命令的旧terminal不在有效的目录中。

文件描述符自Maven删除目录以来无效。

当我移回到父目录,并将其更改回target目录时, java命令按预期开始正常工作。

也许你没有正确地在你的工作站上configurationjava环境

以下configuration是我在我的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 

立即使用这些configuration,然后你可以检查

 java -version 

刚才,我得到了同样的错误。 因为我使用java setreuid / setregid到apache:apache,当我改回到根:根,我改变gid之前uid,真正的结果是根:apache。 一切都出错了,如错误说“java.lang.Error:Properties init:Could not determine current working directory。”

你可以检查它。

如果您从只读目录中发出“java -version”或其他java命令,则可能会出现此错误。 例如,在centos上使用openjdk 8(作为非root用户):

 cd /usr/bin java -version 

VM java.lang.Error初始化期间发生错误:Properties init:无法确定当前工作目录。

当我从eclipse启动tomcat时,在我的mac中出现这个错误。 设置JAVA_HOME并重新启动eclipse后,错误被修复。