我试图运行在Netbeans中成功创建的.jar文件,我收到以下错误:
VM初始化期间发生错误java.lang.Error:属性init:无法确定当前工作目录。 at 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:.
我错过了什么?
当我试图在目录中调用java -version
时,我看到了同样的错误,我已经从另一个终端会话中删除了该目录。当然在那种情况下java could not determine the current working directory
,仅仅因为它不存在。
如果从只读目录发出“java -version”或其他java命令,则可能会出现此错误。例如在centos上使用openjdk 8(作为非root用户):
qazxswpoi
VM初始化期间发生错误java.lang.Error:属性init:无法确定当前工作目录。
当我从日食中启动tomcat时,我的mac中出现了这个错误。设置JAVA_HOME并重新启动eclipse后,错误得到修复。
解决方案:cd到另一个目录并再次运行该命令,这对我有用。
在Fedora 21中,我尝试在卸载后调用“java -version”,它给出了上述错误。关闭所有终端并再次打开并尝试。
应该管用。
我得到了相同的错误消息,但我不确定它是否与我不使用Netbeans的原因相同。我用我的终端并用ant
编译。
我cd
去一个目录运行javafile.class
文件。我想要运行的文件是更大的包的一部分。包的目录结构如下所示:a/b/c/javafile.class
。 a
,b
和c
目录都是更大包装的一部分。
为了运行我的javafile.class
,我cd
进入a
并从那里运行文件:java b/c/javafile
。在我做了一些更改并使用我的ant
脚本重新编译后,我所在的目录已被删除并由ant
重新制作。所以,当我再次运行javafile.class
时,我得到了你得到的错误。
我通过cd
ing解决了ant
删除并由javafile.class
重新制作的目录,然后再次运行我的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
。
我得到了同样的错误 -
VM初始化期间发生错误
java.lang.Error:属性init:无法确定当前工作目录。
只需要做'java -version'(你会认为不需要启动虚拟机只是为了回答一个简单的问题,比如'你是什么版本的?')
pwd的目录路径中较高的up元素(斜杠之间)中有空格。当我创建当前工作目录时,从/向下没有任何空格,'java -version'命令得到了正确的响应。
我总结他们在编程时没有考虑带空格的目录。但这是版本1.7。我现在已经加载了版本8,所以希望它已得到纠正。
在CentOS,rhel,SL还是SLC?在debian / ubuntu下不是问题。
我发现你需要注销你正在使用的shell并重新登录。最初没有为当前shell正确设置环境。登录后我看到:java -version将起作用。
还要确保/ etc / alternatives / java实际指向合理的东西,如:
<PROJECT DIR>\target
我在Mac OS X上遇到此错误,这是一个真正的错误,因为该目录已经消失。我执行命令时的目录是mvn clean install
。
问题是我在另一个终端打开了两个终端,我运行了
PROJECT DIR
,target
的目标目录被删除并重新创建。
我执行Java命令的旧终端不在有效目录中。
由于Maven删除了目录,因此文件描述符无效。
当我移回父目录并更改回java
目录时,vi ~/.bash_profile
命令开始按预期正常工作。
也许你没有正确配置工作站上的java环境
以下配置是我在mac中所做的
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
更换
source ~/.bash_profile
用你的jdk版本,然后运行
java -version
要立即使用这些配置,您可以检查
cd /usr/bin
java -version
刚才,我得到了同样的错误。因为我使用java来setreuid / setregid到apache:apache,当我改回root:root时,我在uid之前更改了gid,真正的结果是root:apache。一切都出错了,比如错误说“java.lang.Error:属性init:无法确定当前的工作目录”。
你可以检查一下。