我正在尝试将我的Java8项目升级到Java11,并且在这样做的时候遇到了很多问题,但是我已经修复了所有问题,除了我似乎无法在每次尝试在Netbean中运行我的项目时克服这个错误:
警告:上下文初始化期间遇到异常-取消刷新尝试:org。springframework。豆子。工厂UnsatisfiedDependencyException:创建名为“loginDialogFXController”的bean时出错:通过字段“ldapTemplate”表示的未满足的依赖关系;嵌套异常为org。springframework。豆子。工厂BeanCreationException:创建com中定义的名为“ldapTemplate”的bean时出错。decisioninsight。teleios。Spring配置。LdapConfig:通过工厂方法实例化Bean失败;嵌套异常为org。springframework。豆子。BeanInstationException:未能实例化[org.springframework.ldap.core.LdapTemplate]:工厂方法“LdapTemplate”引发异常;嵌套异常为org。springframework。豆子。工厂BeanCreationException:创建com中定义的名为“contextSource”的bean时出错。decisioninsight。teleios。Spring配置。LdapConfig:通过工厂方法实例化Bean失败;嵌套异常为org。springframework。豆子。BeanInstationException:未能实例化[org.springframework.ldap.core.support.LdapContextSource]:工厂方法“contextSource”引发异常;嵌套异常为java。lang.IllegalAccessError:类组织。springframework。ldap。果心支持AbstractContextSource(在spring.ldap.core模块中)无法访问com类。太阳jndi。ldap。LdapCtxFactory(在模块java.naming中),因为模块java。命名不会导出com。太阳jndi。ldap到模块spring。ldap。果心
我确实知道,这个错误的假定解决方案是向POM文件添加--add exports标志,如回答中所述。以下是我的POM文件的一部分:
<profile>
<id>default</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<fork>true</fork>
<compilerArgs>
<arg>--add-exports</arg>
<arg>java.naming/com.sun.jndi.ldap=spring.ldap.core</arg>
</compilerArgs>
<verbose>true</verbose>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<arguments>
<argument>-cp .</argument>
<argument>--module-path='${project.build.directory}/modules'</argument>
<argument>--module=${moduleName}/${mainClass}</argument>
</arguments>
<longModulepath>false</longModulepath>
<addResourcesToClasspath>true</addResourcesToClasspath>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy-libs</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/modules</outputDirectory>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>copy-target</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<sourceFile>${project.build.directory}/${project.build.finalName}.jar</sourceFile>
<destinationFile>${project.build.directory}/modules/${project.build.finalName}.jar</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
然而,每次在Netbeans中运行项目时,我仍然会遇到这个错误。我错过什么了吗?
因此,经过无数次尝试,我终于发现NetBeans/Maven使用了错误的java。exe来运行程序,即使它们应该指向正确的可执行文件。我有一些Java程序需要32位版本的Java 8,因此我在我的计算机上安装了32位(默认)和64位的OpenJDK 8,以及64位的OpenJDK 11。
我最终发现Java11可执行文件确实有一个--add-export
选项,尽管NetBeans和Maven都抱怨在使用Java8可执行文件时它不是一个选项。我最终更改了nbactions.xml
文件以专门指向Java11可执行文件,它开始正常工作!
这是nbactions。xml文件:
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>process-classes</goal>
<goal>org.codehaus.mojo:exec-maven-plugin:1.6.0:exec</goal>
</goals>
<activatedProfiles>
<activatedProfile>default</activatedProfile>
</activatedProfiles>
<properties>
<exec.args>--add-exports=java.naming/com.sun.jndi.ldap=spring.ldap.core --module-path='${project.build.directory}/modules' --module=${moduleName}/${mainClass}</exec.args>
<exec.executable>C:\Program Files\AdoptOpenJDK\jdk-11.0.3.7-hotspot\bin\java</exec.executable>
</properties>
</action>
以前的exec.executable
如下所示:
我将anaconda3安装到了我的主目录中。这就是我在航站楼看到的: 我的。bash_profile看起来像这样: 导出路径= "/Users/spotter/anaconda 3/bin:$ PATH " 所以我不明白为什么无法识别conda。当我导航到anaconda3/bin时,那里有一个名为的文件,但即使我尝试在该路径中调用它,它仍然找不到。
问题内容: 是否可以在每次执行循环时回显?例如: 我不想看到循环结束时打印所有内容,而是希望它每次都打印每个结果。 问题答案: 最终解决方案 这就是我发现的: Flush在Apache的mod_gzip或Nginx的gzip下不起作用,因为从逻辑上讲,它正在对内容进行gzip处理,并且这样做必须缓冲内容才能对其进行gzip处理。任何类型的Web服务器gzip压缩都会影响此。简而言之,在服务器端,我
首先,我是node.js和discord.js的初学者。 我目前正在开发我自己的discord机器人,我想知道是否可以“存储”斜杠命令的数据。下面是我的意思的一个例子: 这是否可以在并在如下:
问题内容: 我尝试使用PyInstaller在Windows 7下编译Python项目。该项目运行正常,没有问题,但是当我尝试对其进行编译时,结果将不起作用。尽管在编译过程中没有收到警告,但目录中的文件中有很多警告:warnmain.txt 我不是很了解这些警告,例如“没有名为numpy.pi的模块”,因为它不是模块而是数字。我从未尝试导入。我确实导入并明确。另外,我正在使用PyQt4。我认为错误
我从Jupyter笔记本导入matplotlib,但得到以下错误。 设置: Python2 MacBook conda:4.3.30 跑完之后 它得到: 2.0.2np112py36_0 有些表扬我尝试过但失败了 1. 和显示 2. 和显示 推荐1和2来自此站点 没有安装名为matplotlib的模块 3. 和显示 已满足要求:matplotlib in./anaconda/lib/python3
问题内容: 我开始金字塔式保护区时会得到以下堆栈跟踪: 从python REPL可以正常工作: 并从命令行导入: 删节的输出显示了我正在使用的内容: My设置为该树的根: 我在使用python 2.7的virtualenv中运行它。今天我一直在进行此工作,但我不知道问题出在哪里。一方面,对于之前出现的 一些 导入似乎还可以: __ (我将最后一行更改为绝对导入。不走运。) 我尝试过的事情: 重建v