Exception in thread "main" java.lang.ClassFormatError: Incompatible magic
value 813187905 in class file
Я понимаю ошибку, так как она вполне понятна. Мне нужно каким-то образом получить значение java magi c, 0xCAFEBABE
(hex), записанное в файл. java, который я сначала пишу программно. Я прочитал все ответы на подобные вопросы, но все они указывают на использование сторонних библиотек для программного написания файла java.
Не могу не подумать, что есть относительно прямолинейное решение этого вопроса без привлечения сторонней библиотеки? Как я могу записать шестнадцатеричное значение в произвольный файл?
Прямо сейчас я беру строку. преобразование его в байты, а затем запись этих байтов в FileInputStream
, который затем создает дамп в файл с расширением. 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();
}