JavaFX + Gluon + MySQL + JDBC
JavaFX + Gluon + MySQL + JDBC
我正在尝试用 JDBC 编写一个简单的 mysql 连接代码到我位于 OSX 上的 mysql 服务器。
我有,
– IntelliJ 15 CE
– 安装了 Gluon 插件 1.0.1。
– 苹果开发者中心成员
– 在 Maven 服务器的模块和库 (IntelliJ) 中设置 mysql-connector-java.5.1.37.bin.jar
并保存在 /Library/Java/Extensions
下
我可以使用 launchIOSDevice / creataIP/android 在设备上创建简单的 IPA 和 APK 以及 send/start(但正如我所说,只有简单的 Hello world)
我的问题是,如果我使用 TASKS -> 运行 开始我的代码,一切正常。我在桌面上收到一条成功消息(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-连接器-java 定义我的 "forceLinkClassess" 线?
我的简单java外汇代码:
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')
}
}
另请注意,您 需要旧版本的 mysql 连接器。
最后,Alert
不适用于 JavaFXPorts。尚不支持 JavaFX 8 对话框。
我正在尝试用 JDBC 编写一个简单的 mysql 连接代码到我位于 OSX 上的 mysql 服务器。
我有, – IntelliJ 15 CE – 安装了 Gluon 插件 1.0.1。 – 苹果开发者中心成员 – 在 Maven 服务器的模块和库 (IntelliJ) 中设置 mysql-connector-java.5.1.37.bin.jar 并保存在 /Library/Java/Extensions
下我可以使用 launchIOSDevice / creataIP/android 在设备上创建简单的 IPA 和 APK 以及 send/start(但正如我所说,只有简单的 Hello world)
我的问题是,如果我使用 TASKS -> 运行 开始我的代码,一切正常。我在桌面上收到一条成功消息(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-连接器-java 定义我的 "forceLinkClassess" 线?
我的简单java外汇代码:
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')
}
}
另请注意,您
最后,Alert
不适用于 JavaFXPorts。尚不支持 JavaFX 8 对话框。