我正在尝试运行在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:.
我缺少什么?
答案 0 :(得分:165)
当我尝试在目录中调用java -version
时,我看到了同样的错误,我已经从另一个终端会话中删除了该错误。当然在那种情况下是java could not determine the current working directory
,因为它不存在。
答案 1 :(得分:12)
解决方案:cd到另一个目录并再次运行该命令,这对我有用。
答案 2 :(得分:6)
在Fedora 21中,我尝试调用" java -version"卸载后,它给出了上述错误。关闭所有终端并再次打开它们并尝试。
应该工作。
答案 3 :(得分:3)
我收到了相同的错误消息,但我不确定它是否与我不使用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
修复了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后,错误已修复。