У меня была такая же ошибка, когда я захотел запустить мой проект WinForms (который включает в себя работу с базой данных SQL Server и отлично работающую на моем ПК) на другом ПК. Проблема была в брандмауэре Windows на моем ПК. Я решил это, добавив два правила. Это вся процедура, позволяющая SQL Server через брандмауэр Windows:
services.msc
firewall.cpl
, нажмите «Разрешить приложение» или добавить правило, добавить ранее скопированный путь (есть процедура вам нужно следовать), проверьте Домен и Частный, снимите флажок Public. Это ссылка YouTube, где вы можете увидеть эту процедуру: Разрешить SQL Server через брандмауэр Windows
Я подумал, что оба, вероятно, сделали то же самое, но у меня не было никакой возможности быть уверенным. Я действительно хотел знать. Поэтому я создал класс, чтобы поместить каждый из них (поскольку Java должен иметь класс вокруг любого кода), изменил версию Kotlin, чтобы атрибуты метода были одинаковыми, и это дало мне следующее:
a.java
public class a {
public final void ThisMethodDoesNothing() { }
}
b.kt
class b {
fun ThisMethodDoesNothing() = Unit
}
Затем я скомпилировал каждый из них, а затем декомпилировал их с помощью javad -c
и получил:
> javap -c com.inlet.ifserver.a
Compiled from "a.java"
public class com.inlet.ifserver.a {
public com.inlet.ifserver.a();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
public final void ThisMethodDoesNothing();
Code:
0: return
}
> javap -c com.inlet.ifserver.b
Compiled from "b.kt"
public final class com.inlet.ifserver.b {
public final void ThisMethodDoesNothing();
Code:
0: return
public com.inlet.ifserver.b();
Code:
0: aload_0
1: invokespecial #11 // Method java/lang/Object."<init>":()V
4: return
}
[ 118] Так что я думаю, что ответ - ДА! Оба абсолютно ничего не делают.