我有下面的字符串
String str="select * from m_menus;
select * from m_roles";
Run Code Online (Sandbox Code Playgroud)
我希望上面的字符串在一行中像
String str="select * from m_menus;select * from m_roles";
Run Code Online (Sandbox Code Playgroud)
我试过了
str1=str.replace("[\r\n]+", " ");
Run Code Online (Sandbox Code Playgroud)
并且
str1=str.replace("\n"," ");
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.
我们的摇篮构建必须 --add-modules=java.xml.bind,java.activation,java.xml.ws.annotation要options.compilerArgs在JavaCompile建立与JDK9/10.这现在很好用,但这些模块已被弃用.
我想为可能删除这些模块的 JDK11做准备.
我曾尝试加入javax.xml.bind:jaxb-api:2.3.0,com.sun.xml.bind:jaxb-impl:2.3.0并com.sun.xml.bind:jaxb-core:2.3.0以compile和runtime,以及classpath在buildscript,但我仍然得到NoClassDefFoundError.
我错过了什么?
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':my-client:compileGroovy'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ResolveBuildCacheKeyExecuter.execute(ResolveBuildCacheKeyExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at …Run Code Online (Sandbox Code Playgroud) 我设置了JDK 11,它编译直到我使用isBlank()String 的Java 11的新方法,当我使用该方法编译时出现此错误,我尝试清理JDK安装,从IntelliJ清除缓存,重建但没有任何帮助.错误是:
尝试从jdk 10切换到11并且无法确定哪个库调用此异常:
Caused by: org.gradle.api.GradleException: failed to read class file ../../SomeTestFile.class
...
...
Caused by: java.lang.UnsupportedOperationException
at org.objectweb.asm.ClassVisitor.visitNestMemberExperimental(ClassVisitor.java:248)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
at org.gradle.api.internal.tasks.testing.detection.AbstractTestFrameworkDetector.classVisitor(AbstractTestFrameworkDetector.java:124)
Run Code Online (Sandbox Code Playgroud)
我正在使用gradle包装器(v4.10.2),其中包括build.gradle:
buildscript {
ext {
springBootVersion = '2.0.5.RELEASE'
schemaDownloadVersion = '1.6'
generateAvroVersion = '0.14.2'
}
repositories {
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
maven { url "http://packages.confluent.io/maven/" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("gradle.plugin.com.amit.plugin.download-registry:registry-schema-download-plugin:${schemaDownloadVersion}")
classpath("com.commercehub.gradle.plugin:gradle-avro-plugin:${generateAvroVersion}")
}
}
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'com.amit.plugin.download-registry'
apply plugin: 'com.commercehub.gradle.plugin.avro' …Run Code Online (Sandbox Code Playgroud) 背景:我正在尝试使用此处的说明为Windows构建Hadoop .我有OpenJDK 11并在运行时遇到以下问题mvn package:
Could not resolve dependencies for project org.apache.hadoop:hadoop-annotations:jar:2.5.0-SNAPSHOT: Could not find artifact jdk.tools:jdk.tools:jar:1.6 at specified path C:\Program Files\Java\jdk-11.0.1\..\lib\tools.jar
我意识到tools.jarOpenJDK 11的Windows版本中不存在.我是否也必须从源代码构建它?如何获得tools.jarOpenJDK 11 的Maven文物?
AWS允许使用(Open JDK 8)作为运行时来创建Lambda函数。我需要使用创建一个简单的函数。像这样:Java 8Open JDK 11
package example;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.LambdaLogger;
public class Hello {
public String myHandler(int myCount, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("received : " + myCount);
return String.valueOf(myCount);
}
}
Run Code Online (Sandbox Code Playgroud)
有一个允许使用自定义运行时的选项,以及一个包含Shell示例的教程。但是,没有的示例Java。
是否有人已经使用自定义Java运行时处理过AWS Lambda?
我需要使用Java 11构建应用程序。
但是,下拉菜单在Java 9处停止。
我该怎么办?OpenJDK也可以接受。
我正在使用最新版本的Jenkins。
编辑:到目前为止,我已经使用下载了二进制文件wget,将其提取到计算机上,并JDK_HOME通过Global Configurations 添加了JDK 条目。
为了进行测试,我们有一个DNS服务器,该服务器将响应虚拟记录。以前,我们可以通过以下方式使java使用我们的DNS服务器(此处仅使用本地主机):
"-Dsun.net.spi.nameservice.nameservers=127.0.0.1",
"-Dsun.net.spi.nameservice.provider.1=dns,sun",
Run Code Online (Sandbox Code Playgroud)
这在jdk11下不再起作用。是否可以指定在jdk11下使用的DNS服务器?如果可以,怎么办?
编辑:我也尝试过:
-Djava.naming.provider.url=dns://127.0.0.1
Run Code Online (Sandbox Code Playgroud)
我正在使用 spring 应用程序,有时用于@PostConstruct代码和测试中的设置
看来注释将被排除在Java 11之外:
请注意,@PostConstruct 和 @PreDestroy 注释都是 Java EE 的一部分。由于 Java EE 已在 Java 9 中弃用并在 Java 11 中删除,我们必须添加额外的依赖项才能使用这些注释
文章建议全部替换@PostConstruct为afterPropertiesSet方法
我建议您将 @PostConstruct 注释的实现更改为实现 org.springframework.beans.factory.InitializingBean 接口。
我可以在所有情况下盲目更换它吗?还是有其他考虑?
编辑
正如 @JBNizet 所建议的,这可能不是必须或需要的,因为Spring文档建议相反
我们建议您不要使用 InitializingBean接口,因为它不必要地将代码耦合到 Spring。或者,我们建议使用@PostConstruct注释或指定POJO初始化方法。
编辑2
另一种选择是使用initMethod:
通过Java配置,可以使用@Bean的initMethod属性
Run Code Online (Sandbox Code Playgroud)@Bean(initMethod = "init") public BeanOne beanOne() { return new BeanOne(); }
我编写了以下HttpClient代码,但它没有导致将Authorization标头发送到服务器:
public static void main(String[] args) {
var client = HttpClient.newBuilder()
.authenticator(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", "password".toCharArray());
}
})
.version(HttpClient.Version.HTTP_1_1)
.build();
var request = HttpRequest.newBuilder()
.uri("https://service-that-needs-auth.example/")
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
}
Run Code Online (Sandbox Code Playgroud)
我从我正在调用的服务中收到HTTP 401错误.就我而言,它是Atlassian Jira Cloud API.
我已经确认我的getPasswordAuthentication()方法没有被HttpClient调用.
为什么它不起作用,我该怎么做呢?