我无法使用Java 11和最新版本的maven-compiler-plugin构建.
pom.xml中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugins>
<build>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用Maven构建时:
? mvn clean compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building service 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ service ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 80 source files to /home/mip/service/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.859 s
[INFO] Finished at: 2018-08-01T11:20:55+01:00
[INFO] Final Memory: 32M/124M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to …
Run Code Online (Sandbox Code Playgroud) 我想Period
使用像这样的模式来格式化YY years, MM months, DD days
.Java 8中的实用程序旨在设置时间格式,但不包括句点或持续时间.PeriodFormatter
在Joda时间有一个.Java有类似的实用程序吗?
我的要求是将所有日期和日期时间以UTC时区存储在数据库中.我正在使用Java 8 LocalDate
和LocalDateTime
我的Hibernate实体.
那是正确的,因为LocalDate
与LocalDateTime
不具有与之相关联的时区?
如果没有,我应该回到使用好旧(或传统?)Date
&Timestamp
?
或者我应该使用Java 8 Instant
?如果使用Instant
,是否有可能只存储日期部分,没有时间?
数据库是MySQL和SQL Server,这是一个Spring Boot应用程序.
用户正在运行从浏览器启动的JNLP应用程序.JNLP启动的*.jar文件由受信任的CA颁发的证书签名.
启动jar文件时,会向用户询问是否信任签名者(不是CA - CA已经信任).
如果用户说"是",则将签名者的证书添加到信任存储区.
问题是:同一个对话框再次显示的条件是什么?
即使在用户最初选中" 不再显示此项 "复选框后,其中哪些(或其他?)将触发对话框显示?
我正在尝试将调试器连接到在Open JDK 11上运行的Wildlfy。
尽管Wildfly说:
Listening for transport dt_socket at address: 8787
我的IDE(IntelliJ IDEA CE 2018.1)声称没有任何连接:
Unable to open debugger port (localhost:8787): java.io.IOException "handshake failed - connection prematurally closed"
。
我通过standalone.sh --debug
以下方式启动Wildfly JAVA_OPTS
:
-server
-Xms64m
-Xmx512m
-XX:MetaspaceSize=96M
-XX:MaxMetaspaceSize=256m
-Djava.net.preferIPv4Stack=true
-Djboss.modules.system.pkgs=org.jboss.byteman
-Djava.awt.headless=true
-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.reflect=ALL-UNNAMED
--add-modules=java.se
Run Code Online (Sandbox Code Playgroud)
Java 9/10/11有什么变化吗?使用Oracle JDK 8时,使用完全相同的设置进行远程调试可以很好地工作。
我可以使用telnet确认该端口8787
确实无法访问。
阅读@ehsavoie的评论后进行更新:netstat -ln
在运行Wildfly的服务器上显示:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8787 0.0.0.0:* LISTEN
Run Code Online (Sandbox Code Playgroud)
因此,显然在OpenJDK 11中,默认情况下,调试端口现已绑定到localhost。
假设我有5个Spring Boot项目.所有这些都有一个Maven依赖于Spring Boot项目No 6和一些共享/公共类.5个独立项目在每个application.properties上分配了许多公共属性,我想将它们抽象并移动到公共项目中.整体看起来像这样:
Project 1 (app.properties)
Common Project (app-common.properties) <--- Project 2 (app.properties)
Project 3 (app.properties)...
Run Code Online (Sandbox Code Playgroud)
当前的问题是app-common.properties位于project1.jar/lib/common-project.jar中,而app-common.properties显然不会在启动时加载.
有没有办法从依赖中扩展它?
CommonProject Main类如下所示:
@SpringBootApplication
public class CommonApplication extends SpringBootServletInitializer {
protected static void run(SpringApplication application, String[] args) {
application.run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
Project1主类看起来像这样:
public class Project1 extends CommonApplication {
public static void main(String[] args) {
run(new SpringApplication(Project1.class), args);
}
}
Run Code Online (Sandbox Code Playgroud) C:\Users\deypr>pip3 install sklearn
Collecting sklearn
Cache entry deserialization failed, entry ignored
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)'),)': /simple/sklearn/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)'),)': /simple/sklearn/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)'),)': /simple/sklearn/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: …
Run Code Online (Sandbox Code Playgroud) 我们在Java应用程序中使用SWT浏览器来呈现HTML内容.当环境具有非常高的分辨率(4K)时出现问题.当内容有这样的html时:
<html> <head> <style> .test { font-size: 35px;font-family: Arial;} </style> </head><body><div class='test'>TEST</div></body></html>
Run Code Online (Sandbox Code Playgroud)
用过的java源代码是:
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class SWTTest {
public void run() {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("SWT test");
createContents(shell);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private void createContents(Shell shell) {
shell.setLayout(new FillLayout());
Browser browser = new Browser(shell, SWT.NONE);
browser.setText("<html> \r\n" +
"<head> <style> .test { font-size: 85px;font-family: Arial;} </style> </head>\r\n" + …
Run Code Online (Sandbox Code Playgroud) A.java
@Entity
@Getter
@Setter
@Inheritance
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, inclue=JsonTypeInfo.As.PROPERTY, property="type")
@JsonSubTypes({
@JsonSubTypes.Type(value=AA.class,name="aa"),
@JsonSubTypes.Type(value=AB.class,name="ab"),
})
public abstract class A {
@Id
@GeneratedValue
private Long id;
//json ignore for getter
@ManyToOne
private A parent;
@OneToMany(mappedBy="parent")
private List<A> children;
}
Run Code Online (Sandbox Code Playgroud)
AA.java
@Entity
@Getter
@Setter
@DiscriminatorValue("aa")
public class AA extends A{
private User user;
}
Run Code Online (Sandbox Code Playgroud)
AB.java
@Entity
@Getter
@Setter
@DiscriminatorValue("ab")
public class AB extends A {
private String name;
}
Run Code Online (Sandbox Code Playgroud)
现在,当我将类的实例AB
作为JSON 返回时,它看起来像这样:
{
"id": 1,
"type": "ab",
"children": [...],
"name": "ali"
}
Run Code Online (Sandbox Code Playgroud)
由于我想使用自定义User …
注意:从shell的角度来看,所有类似的问题都在回答这个问题(例如,是否javac
可用?java -version
或which java
)。我正在明确地寻找当前正在运行的 JVM 的观点。
有些程序需要在JDK的JRE中运行,而不仅仅是“仅” JRE。我想知道是否有一种简单的方法来找出当前正在运行的程序所执行的内容。
我正在寻找一种通用的方法来解决这个问题,而不是分析所讨论的程序并复制其对JDK功能的使用。因此javac
,如果可能的话,我宁愿不执行外部流程测试。我宁愿寻找一些将在JDK中运行但在JRE中失败的代码。
它可能Class.forName
与仅在JDK中可用的类一起使用。它可能是系统属性。或其他。
如果我必须使用javac执行外部进程:那就这样吧。但是我更喜欢更简单,更通用的东西。
在注释中从下至下阐明:
我不时遇到Liferay的问题,该问题需要在JDK的JRE中运行。我很高兴想到只部署另一个插件,如果在没有JDK的情况下运行该插件,它将提供用户友好的错误消息。我回避分析仅在JRE环境中失败的代码,并且我不想修改Liferay的代码,而是添加自己的插件来进行分析和警告。
java ×8
java-11 ×2
browser ×1
debugging ×1
dto ×1
hibernate ×1
html ×1
installation ×1
java-8 ×1
java-time ×1
jnlp ×1
jvm ×1
liferay ×1
linux ×1
maven ×1
modelmapper ×1
period ×1
python ×1
ria ×1
scikit-learn ×1
signed ×1
spring ×1
spring-boot ×1
ssl ×1
swt ×1
time-format ×1
ubuntu ×1
utc ×1
wildfly ×1
windows ×1