Exception in thread "main" java.lang.ClassFormatError: Incompatible magic
value 813187905 in class file
我理解错误,因为它很清楚。我需要以某种方式将 java 的魔法值0xCAFEBABE
(十六进制)写入我首先以编程方式编写的 .java 文件。我已经阅读了类似问题的所有答案,但它们都指向引入 3rd 方库以编程方式编写 java 文件。
我不禁认为在不引入 3rd 方库的情况下有一个相对直接的解决方案?如何将十六进制值写入任意文件?
现在,我正在拿一根绳子。将其转换为字节,然后将这些字节写入 aFileInputStream
然后转储到具有 .java 扩展名的文件中。我正在使用的代码如下。我怎样才能不写字节,而是写十六进制值?编码不是我的强项,所以这个问题真的给我带来了一些麻烦。
我用来编写我的 java 文件的代码:
public void writeJavaFile() throws IOException
{
String testString = "class test { public test() {} public void printTest()
{ System.out.println(\"yoooo\");}}";
String filename = "test.java";
OutputStream outputStream = new FileOutputStream(filename);
outputStream.write(testString.getBytes());
outputStream.flush();
outputStream.close();
}