无法确定当前目录

时间:2012-06-14 17:09:04

标签: java jvm

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

  

VM初始化期间发生错误java.lang.Error:   属性init:无法确定当前工作目录。在   java.lang.System.initProperties(Native Method)at   java.lang.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:.

我缺少什么?

10 个答案:

答案 0 :(得分:165)

当我尝试在目录中调用java -version时,我看到了同样的错误,我已经从另一个终端会话中删除了该错误。当然在那种情况下是java could not determine the current working directory,因为它不存在。

答案 1 :(得分:12)

解决方案:cd到另一个目录并再次运行该命令,这对我有用。

请参阅此处的说明:https://bugs.openjdk.java.net/browse/JDK-8186434

答案 2 :(得分:6)

在Fedora 21中,我尝试调用" java -version"卸载后,它给出了上述错误。关闭所有终端并再次打开它们并尝试。

应该工作。

答案 3 :(得分:3)

我收到了相同的错误消息,但我不确定它是否与我不使用Netbeans的原因相同。我使用终端并使用ant进行编译。

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

要运行我的javafile.class,我cd'进入a并从那里运行文件:java b/c/javafile。在我进行了一些更改并使用我的ant脚本重新编译之后,我所在的目录已被删除并由ant重新制作。所以,当我再次运行javafile.class时,我得到了你得到的错误。

我通过cd修复了ant已删除并由javafile.class重新制作然后再次运行{{1}}的目录。

答案 4 :(得分:3)

我得到了同样的错误 -

  

VM初始化期间发生错误

     

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

只需做一下' java -version' (你会认为它不需要提出一个 虚拟机只是回答一个简单的问题,例如“你是什么版本?')

pwd的目录路径中的更高元素(斜杠之间) 里面有空格。当我把当前工作目录中的一个来自/ 向下没有任何空格' java -version'命令得到了适当的回应。

我得出的结论是,他们没有考虑带空格的目录 编程吧。但这是版本1.7。我现在装载了第8版,所以很有希望 它已得到纠正。

答案 5 :(得分:2)

在CentOS,rhel,SL或SLC下?在debian / ubuntu下不是问题。

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

答案 6 :(得分:2)

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

  

问题是我在另一个终端中打开了两个终端,我运行了mvn clean install,并且PROJECT DIR中的目标目录被删除并重新创建。

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

  

由于Maven删除了目录,因此文件描述符无效。

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

答案 7 :(得分:2)

也许你没有正确配置工作站上的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

答案 8 :(得分:0)

刚才,我得到了同样的错误。因为我使用java来setreuid / setregid到apache:apache,当我改回root:root时,我在uid之前更改了gid,真正的结果是root:apache。一切都出错了,比如错误说“java.lang.Error:属性init:无法确定当前的工作目录。”

你可以查一下。

答案 9 :(得分:0)

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