我一直试图将JavaFX应用程序与Oracle客户机(ojdbc6)嵌入到同一个JAR中进行部署。
如果通过IntelliJ运行应用程序,则应用程序运行良好并连接到数据库,但一旦运行“package”任务并尝试通过双击jar或运行:
"java -jar .\maven-Newton-1.0-SNAPSHOT.jar"
应用程序启动,但它不会连接到DB:
Class.forName("oracle.jdbc.driver.OracleDriver");
Class.forName("oracle.jdbc.OracleDriver");
我刚刚开始使用maven,我不太确定我的配置是否正确:
•我尝试将ojdbc6.jar添加到全局库:
•我尝试将ojdbc6.jar文件添加到SDK类路径:
•我还弄乱了模块依赖关系:
但是我的问题可能出在POM文件上,因为我想嵌入到应用程序中的另一个jar也没有部署(org.reflections)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Newton</groupId>
<artifactId>maven-Newton</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>Controller.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
<plugin>
<!-- https://mvnrepository.com/artifact/oracle/ojdbc6 -->
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
</dependencies>
</project>
谢谢
问题是,使用'package'目标生成的单个jar文件本身不包含ojdbc.jar。您必须使用类路径运行jar文件,例如。
java -cp ojdbc.jar;othernecessary.jar maven-newton-project-1.0.jar
顺便说一句,在maven中存在依赖项(代码工作所需的)和插件(maven构建所需的)之间的区别。您对maven-compiler-plugin和maven-resource-plugin的依赖使我觉得您混淆了这两个概念。
我将把这两个文件移到名为
的部分中,而不是放在maven-jar-plugin旁边。
我试图在NetBeans中构建一个可以部署到用户和最终用户的应用程序。我对部署项目还是相当陌生的,这是迄今为止我做过的最复杂的一个,所以请容忍我。我目前在NetBeans中有一个工作应用程序,它利用JDK15和JavaFX15。只要我在NetBeans内部运行,一切都会按预期运行。我已经到了我想确保我可以在NetBeans之外发布这个应用程序的地步。为此,我进行了一些搜索,找到了以下教程。 htt
我遵循了https://blog.jetbrains.com/idea/2013/03/packaging-javafx-2-applications-in-intellij-idea-121/中的步骤 但是当我尝试构建工件时,在最后一步中,我得到了这个错误 错误:Java FX Packager:无法生成工件-FX:Deploy在此JDK中不可用 这里有一个快速测试的hello world应用程
版本 openjdk版本“11.0.11”2021-04-20 如果可能的话,请不要告诉我像我以前看到其他人回答的那样“阅读基础知识”。我只是不确定为什么我的代码不能在我的最后一个项目中运行。 提前谢谢你!
我的朋友最近给我发送了我们正在处理的javaFX项目的源代码。但是我无法运行它,因为它没有正确配置。如果我尝试将其配置为“应用程序”,但它不允许我选择MainClass文件。它最初是在Eclipse中编程的。有人能解释一下我如何运行这个程序吗?在项目结构中,我将Artifacts设置为javaFX应用程序,但这似乎没有改变什么。
我创建了一个JavaFX Maven应用程序,其中包含一些资源文件(在项目文件夹“src/main/resources”中)。该应用程序在NetBeans环境下运行良好。然而,当构建了自包含的JAR文件并将其复制到另一个文件夹时,应用程序的可视项(组合框、TextFields、VBoxes、...)没有正确显示(不同的颜色、错误的填充、...)。 CSS文件存在于JAR文件中,因为应用程序中(Ne
问题内容: 由于fxml- files使用Controller类来处理事件,因此如何混淆JavaFX应用程序?当混淆的conntroller类具有不同的名称和路径时,fxml文件将找不到它们。 混淆后编辑fxml文件不是我想要的解决方案。 还有其他选择吗? 问题答案: 没有意义重塑轮子; 快速的google搜索产生了这个网站。 它使用Proguard混淆器。