Короткие коды
public class DB {
public static Connection c;
public static Connection getConnection() throws Exception {
if (c == null) {
Class.forName("com.mysql.jdbc.Driver");
c =DriverManager.getConnection("jdbc:mysql://localhost:3306/DATABASE", "USERNAME", "Password");
}
return c;
}
// Send data TO Database
public static void setData(String sql) throws Exception {
DB.getConnection().createStatement().executeUpdate(sql);
}
// Get Data From Database
public static ResultSet getData(String sql) throws Exception {
ResultSet rs = DB.getConnection().createStatement().executeQuery(sql);
return rs;
}
}
Многие ответы предлагают проверить правильность обработки первых четырех байтов. Но это не всегда настоящая причина. Кажется, что в вашем случае причиной является отсутствие @echo off в launch.bat.
При возникновении ошибки
Хост Native Messaging попытался отправить сообщение, которое длиной 977472013 байта
blockquote>Прежде всего, попробуйте запустить приложение из командной строки, возможно, что выход «trash»
Я думаю, вам нужно поменять порядок байтов, определяющих длину вашего сообщения. Измените метод getBytes () :
public byte[] getBytes(int length) {
byte[] bytes = new byte[4];
bytes[3] = (byte) (length & 0xFF);
bytes[2] = (byte) ((length >> 8) & 0xFF);
bytes[1] = (byte) ((length >> 16) & 0xFF);
bytes[0] = (byte) ((length >> 24) & 0xFF);
return bytes;
}