我正在尝试运行在 Netbeans 中成功创建的.jar文件,但收到以下错误:
初始化 VM java.lang 期间发生错误。错误: 属性初始化:无法确定当前工作目录。在 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
,仅仅是因为它不存在。
解决方案:cd 到另一个目录并再次运行该命令,这对我有用。
请参阅此处的说明:https://bugs.openjdk.java.net/browse/JDK-8186434
在 Fedora 21 中,我尝试在卸载后调用"java 版本",它给出了上述错误。关闭所有终端,然后再次打开并尝试。
应该工作。
我收到相同的错误消息,但我不确定这是否与我不使用 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
来解决我的问题。
也许您没有在工作站上正确配置 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
我得到了同样的错误 -
初始化 VM 时出错
java.lang.Error: Properties init: 无法确定当前工作目录。
通过只做"java版本"(你会认为它不需要提出一个虚拟机只是为了回答一个简单的问题,例如"您是什么版本?
pwd 目录路径的较高向上元素(斜杠之间的元素)里面有空格。 当我使当前工作目录成为/向下没有任何空格,"java -version"命令得到了正确的响应。
我的结论是,当他们没有考虑带有空格的目录时编程了它。 但那是1.7版。 我现在已经加载了版本 8,所以希望它已被更正。
我在Mac OS X上收到此错误,这是一个真正的错误,因为目录已经消失了。执行命令时我的目录是 <PROJECT DIR>target
.
问题是我在我运行
mvn clean install
的另一个终端中打开了两个终端,并且PROJECT DIR
的目标目录被删除并重新创建。
我执行 Java 命令的旧终端不在有效目录中。
文件描述符无效,因为该目录已被 Maven 删除。
当我移回父目录并更改回target
目录时,java
命令开始按预期正常工作。
在 CentOS、rhel、SL 或 SLC 下?在 debian/ubuntu 下不是问题。
我发现您需要注销正在使用的外壳并重新登录。最初未为当前 shell 正确设置环境。登录后,我看到:java版本将起作用。
还要确保/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
刚才,我得到了同样的错误。 因为我使用 Java 将 setreuid/setregid 设置为 apache:apache,所以当我改回 root:root 时,我在 uid 之前更改了 gid,真正的结果是 root:Apache 。 所有出错,例如错误说"java.lang.Error:属性初始化:无法确定当前工作目录。
你可以检查一下。
从日食启动雄猫时,我的 mac 中遇到了此错误。设置JAVA_HOME并重新启动日食后,错误已修复。
你必须先安装 default-jdk !sudo apt install default-jdk只有版本 11 无法正确设置所有环境代替 : sudo apt install openjdk-11-jdk
如果从只读目录发出"java -version"或其他 java 命令,则可能会收到此错误。例如在 centos 上使用 openjdk 8(作为非 root 用户):
cd /usr/bin
java -version
初始化 VM 时出错java.lang.Error: Properties init: 无法确定当前工作目录。