gpt4 book ai didi

JavaFX + Gluon + MySQL + JDBC

转载 作者:行者123 更新时间:2023-11-30 22:32:18 26 4
gpt4 key购买 nike

我正在尝试使用 JDBC 编写一个简单的 mysql 连接代码到我在 OSX 上的 LAN 上的 mysql 服务器。

我有,– IntelliJ 15 CE– 安装了 Gluon 插件 1.0.1。– 苹果开发者中心成员– 在 Maven 服务器的模块和库 (IntelliJ) 中设置 mysql-connector-java.5.1.37.bin.jar并保存在/Library/Java/Extensions 下

我可以创建简单的 IPA 和 APK,并使用 launchIOSDevice/creataIP/android 在设备上发送/启动(但正如我所说,只有简单的 Hello world)

我的问题是,如果我使用 TASKS -> RUN 开始我的代码,一切正常。我在桌面 (OSX) 上收到一条成功消息,表明连接正常。

但是,如果我尝试使用下面的相同代码发送到我的 Ipad,我会收到以下错误消息。

谁能帮帮我,为什么我不能在我的 ipad 上启动这个简单的代码?

谢谢埃尔坎·卡普兰

我的build.gradle:

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.0.6'

}
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
jcenter()
}

mainClassName = 'com.gluonapplication.GluonApplication'

jfxmobile {

android {
manifest = 'src/android/AndroidManifest.xml'
}
ios {
forceLinkClasses = [ 'com.gluonapplication.**.*']
infoPList = file('src/ios/Default-Info.plist')
}
}

我必须如何为 mysql-connector-java 定义我的“forceLinkClassess”行?

我的简单 javafx 代码:

private static final String DB_CONNECTION = "jdbc:mysql://192.168.3.188:3306/test_sql";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "myPASSWORT";

public static Connection connection = null;



public static Connection getDBConnection (){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

try {
connection = DriverManager.getConnection(DB_CONNECTION, DB_USER, DB_PASSWORD);
alertMessage("Connection is OK");
System.out.println("BAglanti ok");
return connection;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("CONNECTION ERROR...");
alertMessage(e.toString());
}

return connection;
}


public static void alertMessage(String msg){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Information");
alert.setHeaderText("Information");
alert.setContentText("Ergebnis : " + msg );
alert.showAndWait();
}

错误日志:

[WARN] java.lang.Class: Class.forName() failed to load ‘com.mysql.jdbc.Driver’. Use the -forcelinkclasses command line option or add <forceLinkClasses><pattern>com.mysql.jdbc.Driver</pattern></forceLinkClasses> to your robovm.xml file to link it in.
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.lang.VMClassLoader.findClassInClasspathForLoader(Native Method)
..........
..........
..........

最佳答案

如果你想在 iOS 设备上运行,你的类必须添加 forceLinkClasses 选项,如果你想让 RoboVM 到 link他们。

这包括您的包中的类,以及您可能使用的任何第三方依赖项中的类。

所以这会起作用:

jfxmobile {
ios {
forceLinkClasses = [ 'com.gluonapplication.**.*', 'com.mysql.**.*']
infoPList = file('src/ios/Default-Info.plist')
}
}

另请注意,您 may需要旧版本的 mysql 连接器。

最后,Alert 不能与 JavaFXPorts 一起使用。尚不支持 JavaFX 8 对话框。

关于JavaFX + Gluon + MySQL + JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33546866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com