Java 无法确定当前目录

Java 无法确定当前目录,java,jvm,Java,Jvm,我正在尝试运行在Netbeans中成功创建的.jar文件,并收到以下错误: 初始化VM java.lang时出错。错误: 属性初始化:无法确定当前工作目录。在 位于的java.lang.System.initProperties(本机方法) java.lang.System.initializeSystemClass(System.java:1070) 我键入的运行.jar的命令是 java -jar "/path to the dist forlder/EOPPrototype.jar" 我

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

初始化VM java.lang时出错。错误: 属性初始化:无法确定当前工作目录。在 位于的java.lang.System.initProperties(本机方法) 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:.

我遗漏了什么?

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

我将
cd
'd复制到一个目录,以运行
javafile.class
文件。我要运行的文件是一个更大的包的一部分。包的目录结构如下:
a/b/c/javafile.class
a
b
c
目录都是一个更大的包的一部分

要运行我的
javafile.class
,我将
cd
插入
a
并从那里运行文件:
javab/c/javafile
。在我做了一些更改并用
ant
脚本重新编译之后,我所在的目录已被
ant
删除并重新创建。所以,当我再次运行
javafile.class
时,我得到了您得到的错误


我通过
cd
从被
ant
删除并重新制作的目录中取出,然后再次运行我的
javafile.class
修复了我的问题

当我试图在一个目录中调用
java-version
时,我看到了相同的错误,我已经从另一个终端会话中删除了该目录。当然,在这种情况下,java
无法确定当前工作目录,因为它不存在。

刚才,我遇到了相同的错误。因为我使用java将setreuid/setregid设置为apache:apache,当我更改回root:root时,我在uid之前更改了gid,真正的结果是root:apache。一切都出错了,例如错误代码“java.lang.error:Properties init:无法确定当前工作目录”

你可以检查一下。

我也有同样的错误-

初始化VM时出错

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

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

pwd目录路径的更高一级元素(斜线之间的元素) 里面有空间。当我将当前工作目录设置为/ 向下没有任何空格,'java-version'命令得到了正确的响应

我的结论是,它们在运行时没有考虑带空格的目录 编程。但那是1.7版。我现在已经加载了版本8,希望如此
它已被更正。

在Fedora21中,我尝试在卸载后调用“java-version”,它给出了上述错误。关闭所有端子并再次打开,然后重试


应该在CentOS、rhel、SL或SLC下工作。

?debian/ubuntu下没有问题

我发现您需要注销正在使用的shell并重新登录。最初未为当前shell正确设置环境。登录后,我看到:java-version可以工作

还要确保/etc/alternations/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上遇到了这个错误,这是一个真正的错误,因为目录已经消失了。我执行命令时所在的目录是
\target

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

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

文件描述符无效,因为目录已被Maven删除


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

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

初始化VM时出错
java.lang.Error:Properties init:无法确定当前工作目录。

可能您没有正确配置工作站上的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

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

解决方案:将cd转到另一个目录,然后再次运行该命令,这对我来说很有效


请参见此处的说明:

谢谢。从一个较高的目录导航到较低的目录,然后重新运行我的命令也解决了这个问题。当我在maven目标目录中发出一个命令时发生了这种情况:存在,然后我执行了一个clean and build(clean install),然后发出了相同的命令。尽管路径仍然有效,但我首先发出命令的特定目录项不存在(OS X)正在制作cd../target修复了我的问题..aa如何修复此问题?Masterful!:)非常感谢!:)我在
/Applications/NetBeans-8.1beta/glassfish-4.1/glassfish/domains/domain1/generated中调用
java-v
时遇到了同样的问题。“生成”文件夹是从NetBeans重新生成的缓存文件夹。当我把cd放出来,然后回到相同的/生成的cd时,问题没有发生,java版本工作正常,给出
java版本“1.8.0_60”
只需离开cd,然后再次输入d
java -version