Java 文件分隔符。它是在编译时确定的还是在运行时确定的?

Java 文件分隔符。它是在编译时确定的还是在运行时确定的?,java,linux,windows,path,Java,Linux,Windows,Path,我的任务是将一段编写为在Windows下运行的代码转换为在Linux下运行 我试图解决的第一个问题是没有使用File.separator。取而代之的是使用windows文件分隔符的大量硬编码sring\ 我通过VirtualMachine在Linux环境下运行java代码,速度有点慢 为了让我的生活更轻松,我只需在Windows下编译代码(编译整个代码大约需要1小时),然后将类文件粘贴到Linux环境中 所以我的问题是,File.separator是在运行时还是在编译时确定的,因为我仍然面临着路

我的任务是将一段编写为在Windows下运行的代码转换为在Linux下运行

我试图解决的第一个问题是没有使用File.separator。取而代之的是使用windows文件分隔符的大量硬编码sring
\

我通过VirtualMachine在Linux环境下运行java代码,速度有点慢

为了让我的生活更轻松,我只需在Windows下编译代码(编译整个代码大约需要1小时),然后将类文件粘贴到Linux环境中


所以我的问题是,File.separator是在运行时还是在编译时确定的,因为我仍然面临着路径的相同问题

它是在运行时确定的

在中,
文件分隔符
将通过
文件系统
初始化,该文件系统通过
DefaultFileSystem\getFileSystem()
返回。该类将由JRE提供。它将根据Windows或Linux安装提供不同的值


在中,通过
本机
调用返回了
文件系统
实现。返回的值取决于本地环境。

它是在运行时确定的

在中,
文件分隔符
将通过
文件系统
初始化,该文件系统通过
DefaultFileSystem\getFileSystem()
返回。该类将由JRE提供。它将根据Windows或Linux安装提供不同的值


在中,通过
本机
调用返回了
文件系统
实现。返回的值取决于本地环境。

路径分隔符的来源是文件系统,它是抽象的。这是否意味着具体实例将仅在运行时返回,因此意味着它将在运行时返回正确的路径分隔符?路径分隔符的来源是文件系统,它是抽象的。这是否意味着具体实例将仅在运行时返回,因此意味着它将在运行时返回正确的路径分隔符?