Java 编译.JAV文件?

Java 编译.JAV文件?,java,windows,javac,Java,Windows,Javac,例如,如果我在windows中有TestClass.java,它的短名称将是TESTCL~1.JAV(如果在windows机器上启用了8.3表示法,所有文件都将有两个名称-它的真实名称和一个短名称,以便与旧版本的windows兼容。短名称最多有8个字母的名称和3个字母的扩展名) Java意识到了这一点。或者至少看起来是这样。在Java安装之后,注册表中出现了.jav扩展描述: HKEY\u CLASSES\u ROOT\.jav 使用与.java文件相同的持久化处理程序: {5e941d80-b

例如,如果我在windows中有
TestClass.java
,它的短名称将是
TESTCL~1.JAV
(如果在windows机器上启用了8.3表示法,所有文件都将有两个名称-它的真实名称和一个短名称,以便与旧版本的windows兼容。短名称最多有8个字母的名称和3个字母的扩展名)

Java意识到了这一点。或者至少看起来是这样。在Java安装之后,注册表中出现了
.jav
扩展描述:

HKEY\u CLASSES\u ROOT\.jav

使用与
.java
文件相同的持久化处理程序:

{5e941d80-bf96-11cd-b579-08002b30bfeb}
(它是纯文本的处理程序)

当我试图向
javac
传递一个具有短名称的java文件时,我收到以下错误:

javac: invalid flag: TESTCL~1.JAV
Usage: javac <options> <source files>
use -help for a list of possible options
javac:无效标志:TESTCL~1.JAV
用法:javac
使用-help获取可能选项的列表
即根本找不到文件

是否可以编译扩展名为
.jav
的文件或使用java file shortname


或者,安装的扩展描述是一个早已被遗忘且不再向后兼容的遗迹?

持久化处理程序
{5e941d80-bf96-11cd-b579-08002b30bfeb}
只是“纯文本持久化处理程序”,与Java没有任何关系。当我搜索我的机器时,我发现这个处理程序也安装在
.asc
.asm
.bas
.js
和许多其他我没有安装特定开发工具的机器上。很明显,有很多预装的文件类型标记为“可以像纯文本一样处理”,搜索引擎可能会使用这些文件类型。因此,我假设
.jav
的注册表项实际上不是由JDK创建的,但为了最终证明这一点,需要一台没有安装JDK的计算机,而我没有安装JDK。

显示命令行。你到底为什么要在2015年这样做?简短的名字已经完全过时了nowadays@a_horse_with_no_name-正确的问题不是
为什么?
,而是
为什么不?
:-)。目前只是好奇,但我认为最终可以使用它。@Kayaman-命令行就是
javactestcl~1.JAV
其中
TESTCL~1.JAV
是现有
TestClass.java
文件的简称,里面没有包。