我刚刚安装了jre7,我很惊讶地看到我的默认语言环境现在是en_US.有了jre6,它就是de_CH.
与jre7有什么不同?默认语言环境不再是操作系统之一吗?(顺便说一句,我使用的是Windows7)
谢谢你的回答.
编辑:我已经看到Category.FORMAT的Locale 是"旧的"(de_CH).Category.DISPLAY的Locale 采用操作系统语言的语言(在Windows中,这是在控制面板>区域和语言>键盘和语言>显示语言中完成的)和来自...的contry?
似乎不同的是属性" user.country ".使用Java6,我得到"CH",而使用Java7,我得到"US".
我正在运行一个Java EE应用程序,该应用程序在Payara 4.1.1.172上使用Hibernate 5.2.10.Final和Apache Derby存储后端.我看到的错误信息如
Caused by: java.sql.SQLDataException: A truncation error was encountered trying to shrink VARCHAR () FOR BIT DATA '(Binärer Datenwert wird nicht angezeigt)' to length 255.
Run Code Online (Sandbox Code Playgroud)
这表示Hibernate或Derby或两者都没有在消息的所有部分使用英语错误消息.
我试过了
添加一个
static {
System.setProperty("user.language", "en");
System.setProperty("user.region", "en_US");
}
Run Code Online (Sandbox Code Playgroud)
到一个类,但我似乎没有找到一个确定的方法来在任何异常发生之前加载它,我宁愿保持代码的设置.这同样适用于Locale.setDefault
.
-Duser.language=en
Payara JVM选项?server-config
我看到异常消息的开头是英文的.我希望完整的信息是英文的,包括所有可能的部分.我对解决异常并不感兴趣,这是一个例子.我不是在寻找德语部分的翻译.
非英语消息部分很可能是由服务器启动的德语Ubuntu 18.04引起的.更改操作系统的系统区域设置或服务器可以包装的容器是一种解决方法,但不是解决方案.
甲SSCCE可以被发现在https://gitlab.com/krichter/derby-embedded-data-source-locale-j4ee的CI和示例输出在https://gitlab.com/krichter/derby-embedded-data- source-locale-j4ee/ - /jobs/83525395.SSCCE仅包含服务器启动周围的样板和一个简单的无效本机查询,导致出现德语错误消息,而不是问题中提供的信息.
如果可能,请使用SSCCE验证答案.
我的动机是拥有英语异常消息,以便在开发过程中更轻松地通过搜索引擎找到解决方案而不会篡改系统语言.
我想将一个.wsdl
文件导入%JAVA_HOME%/bin/wsimport.exe
到我的 Java 项目中。一切正常,除了评论的语言是德语,但我希望它是英语。如何更改 所使用的语言wsimport.exe
?
我在运行简单的JavaFX应用程序时遇到问题.我正在使用本机打包程序来构建exe.我想从Windows文件上下文菜单运行我的应用程序,但是当我尝试使用params运行应用程序时:
> JavaFXApplication1.exe ???
Run Code Online (Sandbox Code Playgroud)
我得到2个错误:
当我将应用程序作为jar文件运行时:
> java -jar JavaFXApplication1.jar ???
Run Code Online (Sandbox Code Playgroud)
应用程序从成功开始,并且工作正常.
此外,当我从此命令运行应用程序时:
> JavaFXApplication1.exe aec
Run Code Online (Sandbox Code Playgroud)
一切都很好,应用程序工作正常.
示例应用代码:
package test;
import javafx.application.Application;
import javafx.stage.Stage;
public class Test extends Application {
@Override
public void start(Stage primaryStage) {
System.out.println("Started");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Args count: " + args.length);
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
忽略,该应用程序不会关闭.
我认为这与此处描述的问题完全相同:https://bugs.openjdk.java.net/browse/JDK-8133034
有人解决了吗?或者是否有人知道这个问题的解决方法?我尝试了从1.8.40到1.8.72的java版本,但是在每个JVM上都失败了.这也不是环境问题,因为我已经在2台不同的机器(以及操作系统)上进行了测试.
我将不胜感激任何帮助.
我正在尝试通过使用JAXB创建XBRL实例。我可以基于xbrl-instance模式使用xjc成功创建Java模型(http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd)
当使用xjc创建Java类时,我遵循了本文的建议(除了maven部分,因为im未使用它):JAXB无法为XBRL生成Java类
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" version="2.1">
<bindings schemaLocation="xl-2003-12-31.xsd" version="1.0">
<bindings node="//xs:schema//xs:element[@name='title']">
<property name="xlTitle"/>
</bindings>
</bindings>
</bindings>
Run Code Online (Sandbox Code Playgroud)
所以现在我试图产生一个XBRL实例,但是在初始化上下文时得到了Java.lang.IllegalArgumentException。我找到了另一篇推荐通过引用包和ObjectFactory(使用类加载器)来调用newInstance()的帖子。但是仍然会发生错误,我无法真正从stacktrace中提取任何有用的信息。
public class JaxbXbrlInstanceCreationTest {
public static void main(String[] args) {
org.xbrl._2003.instance.ObjectFactory instObjFact = new ObjectFactory();
Xbrl xbrl = instObjFact.createXbrl();
xbrl.setId("Test");
org.xbrl._2003.linkbase.ObjectFactory linkbaseObjFact = new org.xbrl._2003.linkbase.ObjectFactory();
org.xbrl._2003.xlink.ObjectFactory xlinkObjFact = new org.xbrl._2003.xlink.ObjectFactory();
org.xbrl._2003.xlink.SimpleType schemaRefvalue = xlinkObjFact.createSimpleType();
schemaRefvalue.setHref("http://eiopa.europa.eu/eu/xbrl/s2md/fws/solvency/solvency2/2014-07-23/mod/ars.xsd");
schemaRefvalue.setType("simple");
List<SimpleType> schemaRefList = xbrl.getSchemaRef();
schemaRefList.add(linkbaseObjFact.createSchemaRef(schemaRefvalue).getValue());
List<Object> contextList = xbrl.getItemOrTupleOrContext();
Context context = instObjFact.createContext();
context.setId("Context");
ContextEntityType entityType = instObjFact.createContextEntityType();
Identifier identifier …
Run Code Online (Sandbox Code Playgroud) 如果我执行以下代码:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner s = null;
StringBuilder builder = new StringBuilder(64);
String line = "1.1 2.2 3.3";
float fsum = 0.0f;
s = new Scanner(line).useDelimiter(" ");
while (s.hasNextFloat()){
float f = s.nextFloat();
fsum += f;
builder.append(f).append(" ");
}
System.out.println("Floats found: " + builder);
System.out.println("Sum: " + fsum);
s.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出是:
Floats found:
Sum: 0.0
Run Code Online (Sandbox Code Playgroud)
但是,如果我用点替换逗号"1,1 2,2 3,3"
,那么它确实识别浮点数:
Floats found: 1.1 2.2 3.3
Sum: 6.6000004
Run Code Online (Sandbox Code Playgroud)
我想这是因为我的SO是西班牙语,我们使用逗号而不是带小数的点.我想过使用Locale,但是没有Locale.SPANISH.
此外,当我运行它时,它的行为正好相反: …