Java 8 无法在 Macos Catalina 中写入文件
Java 8 not able to write files in Macos Catalina
我昨天 (10.15.1 (19B88)
) 升级到了 Catalina,现在我的 java 项目无法正常工作。
应用程序应生成的所有文件均未创建:日志、csv 文件、使用 FileWrite(...).write(...)
写入的内容等
我的 spring 引导项目应该创建多个日志(它在 Mojave 上创建)并且 none 其中 none 在升级后可以正常工作。此外,当我以编程方式使用 FileWriter 创建文件时,出现以下异常:
Caused by: java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_212]
at java.io.File.createNewFile(File.java:1012) ~[na:1.8.0_212]
我尝试了多种不同的方法,但仍然没有成功。我试过了:
- 正在更新到最新版本 java 8,
1.8.0_231
。
- 移动所有路径指向我的主目录
/Users/fd
- 由于Catalina有新卷,而且我们有很多firmlinks,我也尝试指向绝对路径
/System/Volumes/Data/Users/fd
发现这个 Oracle notes 指出:
Changes introduced with macOS 10.15 (Catalina) cause certain Java applications to behave incorrectly. Therefore, we cannot certify any JDK version on macOS 10.15 yet. If you still want to install and test the JDK or JRE on macOS 10.15, then this document covers what you will experience as you install the JDK or JRE.
...但是没有说明通过java无法创建文件的问题。
有谁知道如何解决这个问题?
在 JDK 更新 232 的新版本发布后,现在一切正常。
我使用的 JDK 的版本是:
java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)
关于我遇到的与存储在根目录中的目录相关的所有失败问题,我能够通过综合 link 方法修复它。
我必须在 /etc
中创建 synthetic.conf
文件并创建,内容如下:
$cat /etc/synthetic.conf
myappdir System/Volumes/Data/Users/federicop/myappdir
有关 Catalina 的合成(符号)links 的更多信息,您可以查看 man synthetic.conf
我昨天 (10.15.1 (19B88)
) 升级到了 Catalina,现在我的 java 项目无法正常工作。
应用程序应生成的所有文件均未创建:日志、csv 文件、使用 FileWrite(...).write(...)
写入的内容等
我的 spring 引导项目应该创建多个日志(它在 Mojave 上创建)并且 none 其中 none 在升级后可以正常工作。此外,当我以编程方式使用 FileWriter 创建文件时,出现以下异常:
Caused by: java.io.IOException: No such file or directory
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_212]
at java.io.File.createNewFile(File.java:1012) ~[na:1.8.0_212]
我尝试了多种不同的方法,但仍然没有成功。我试过了:
- 正在更新到最新版本 java 8,
1.8.0_231
。 - 移动所有路径指向我的主目录
/Users/fd
- 由于Catalina有新卷,而且我们有很多firmlinks,我也尝试指向绝对路径
/System/Volumes/Data/Users/fd
发现这个 Oracle notes 指出:
Changes introduced with macOS 10.15 (Catalina) cause certain Java applications to behave incorrectly. Therefore, we cannot certify any JDK version on macOS 10.15 yet. If you still want to install and test the JDK or JRE on macOS 10.15, then this document covers what you will experience as you install the JDK or JRE.
...但是没有说明通过java无法创建文件的问题。
有谁知道如何解决这个问题?
在 JDK 更新 232 的新版本发布后,现在一切正常。
我使用的 JDK 的版本是:
java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)
关于我遇到的与存储在根目录中的目录相关的所有失败问题,我能够通过综合 link 方法修复它。
我必须在 /etc
中创建 synthetic.conf
文件并创建,内容如下:
$cat /etc/synthetic.conf
myappdir System/Volumes/Data/Users/federicop/myappdir
有关 Catalina 的合成(符号)links 的更多信息,您可以查看 man synthetic.conf