Java和C#中的多维数组

在C#中,有两种方法可以创建多维数组。 int[,] array1 = new int[32,32]; int[][] array2 = new int[32][]; for(int i=0;i<32;i++) array2[i] = new int[32]; 我知道第一种方法在内部创建一维数组,第二种方法创建一个数组数组(访问速度较慢)。 但是在Java中,没有[,]这样的东西,我看到多维数组声明如下: int[][] array3 = new int[32][32]; 由于这种语法在C#中是非法的,并且Java没有int[,] ,我想知道这是否与array1 ? 还是它仍然是一个数组数组?

Firefox浏览器没有打开selenium webbrowser代码

需要以下指导和帮助。 执行以下代码时,我收到错误。 我使用的是最新版本的java,eclipse,firefox和WebDrive jar文件。 package firsttest1; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class helloselenium { public static void main(String[] args) { WebDriver driver; driver =new FirefoxDriver(); String url =”http://www.google.com”; driver.get(url); } } 错误…. 线程“main”中的exceptionjava.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置; 有关更多信息,请参阅https://github.com/mozilla/geckodriver 。 最新版本可以从https://github.com/mozilla/geckodriver/releases下载到com.google.common.base.Preconditions.checkState(Preconditions.java:199)org.openqa.selenium.remote.service。驱动程序.findExecutable(DriverService.java:109)org.openqa.selenium.firefox.GeckoDriverService.access $ 100(GeckoDriverService.java:38)org.openqa.selenium.firefox.GeckoDriverService $ Builder.findDefaultExecutable(GeckoDriverService.java:91 )org.openqa.selenium.remote.service.DriverService $ Builder.build(DriverService.java:296)org.openqa.selenium.firefox.FirefoxDriver.createCommandExecutor(FirefoxDriver.java:245)org.openqa.selenium。 firefox.FirefoxDriver。(FirefoxDriver.java:220)org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:215)org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:211)at org。 openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:124)at firsttest1.helloselenium.main(helloselenium.java:12) 使用的版本:eclipse:neon version java:jdk1.8 fire fox:v48 WebDrive jar文件:v 3.0.0 […]

使用Java 8的Spring 3.2.x.

我们目前正在使用spring 3.2.9。 我们正在考虑将其升级到更新版本。 当我查看文档时,它说明了这一点 Along with 4.0 M1, we’ve released Spring Framework 3.2.3, containing fixes for recently reported issues but also coming with OpenJDK 8 runtime support. Spring Framework 3.2.x will support deployment on JDK 8 runtimes for applications compiled against JDK 7 (with -target 1.7) or earlier. 这是否意味着我无法在Java 8上编译? 如果我想用Java 8编译,我应该使用Spring 4.0.x版吗?

如何在不覆盖整个文件的情况下覆盖.properties中的一个属性?

基本上,我必须通过Java应用程序覆盖.properties文件中的某个属性,但是当我使用Properties.setProperty()和Properties.Store()时,它会覆盖整个文件而不是仅覆盖那个属性。 我尝试使用append = true构建FileOutputStream,但是它添加了另一个属性,并且不会删除/覆盖现有属性。 我如何对其进行编码,以便设置一个属性会覆盖该特定属性,而不会覆盖整个文件? 编辑:我尝试读取文件并添加到它。 这是我更新的代码: FileOutputStream out = new FileOutputStream(“file.properties”); FileInputStream in = new FileInputStream(“file.properties”); Properties props = new Properties(); props.load(in); in.close(); props.setProperty(“somekey”, “somevalue”); props.store(out, null); out.close();

jpa和hibernate之间的相似性和区别

jpa和hibernate之间的相似之处和区别是什么。

Java printf使用可变字段大小?

我只是想将一些C代码转换为Java,而我在使用String.printf遇到了一些麻烦。 在C中,为了获得基于变量的特定宽度,我可以使用: printf(“Current index = %*d\n”, sz, index); 它会根据sz将整数格式化为特定大小。 试: System.out.println(String.format(“Current index = %*d\n”, sz, index)); 导致错误,因为它不喜欢* 。 我目前有以下kludge: System.out.println(String.format(“Current index = %” + sz + “d\n”, index)); 但是我希望有更好的方法,是吗?

加载相对于执行jar文件的文件

这个问题说明了一切。 我的特殊情况是当前的工作目录不是jar文件的位置,而是c:\Windows\system32 (我的jar文件是由windows使用右键菜单启动的,我想传递文件夹的路径为jar的参数)。 现在我想加载一个名为config.xml的配置文件,它与jar在同一个文件夹中。 当然,该文件的目的是为jar提供设置。 对我来说重要的是xml文件在jar文件之外以便于编辑。 我很难加载该文件。 Windows执行该行 cmd /k java -jar D:\pathToJarfile\unpacker-0.0.1-SNAPSHOT-jar-with-dependencies.jar 使用cmd /k调用整个事件会使windows命令提示符处于打开状态,以便我可以看到jar的输出。 我不能使用new File(“.”)或System.getProperty(“user.dir”)作为相对路径,因为这些函数返回C:\Windows\system32\. 和C:\Windows\system32分别(这是Windows执行AFAIK所有内容的工作文件夹)。 我对Launcher.class.getResourceAsStream(“/../config.xml”)也没有成功。 由于该路径以/开头,因此搜索从jar的根节点开始。 转到../config.xml指向该文件,但该调用返回null 。 有人能指出我正确的方向吗? 我真的被困在这里了。 这个文件加载的东西真的每次都让我烦恼…… 我自己的要求: 我不想在java源代码中硬编码路径 我不想将文件的路径作为参数传递给java -jar调用(既不作为main(String[] args)也不是使用-Dpath=d:\…来设置系统属性) 除了原来的问题,我还有很难将maven2放到Class-Path: . 进入MANIFEST.MF (BalusC发布的解决方案)时使用jar-with-dependencies 。 问题是该行出现在常规jar的MANIFEST文件中,但不是jar-with-dependencies.jar的MANIFEST文件(生成了2个jar文件)。 对于任何关心我如何做的人: maven-assembly-plugin 2.2-beta-5 ${mainClass} true <!–at first, i tried to place the Class-Path entry right here using . see […]

Hibernate 3.4与slf4j和log4j

我正在尝试从Hibernate 3.2升级到3.4,这显然使用了slf4j。 我们的项目目前使用log4j。 所以我的假设是我应该使用slf4j-log4j12包装实现。 Maven slf4j依赖是: org.slf4j slf4j-log4j12 1.5.6 而log4j依赖是: log4j log4j 1.2.15 slf4j-log4j12和log4j都引用了最新版本(我可以在Maven存储库中找到)。 当我运行我的应用程序时,Hibernate的日志记录失败: java.lang.NoSuchFieldError: name at org.slf4j.impl.Log4jLoggerAdapter.(Log4jLoggerAdapter.java:75) at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:75) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:103) at org.hibernate.cfg.Configuration.(Configuration.java:163) … 我错过了什么? 编辑1:如果我从我的pom.xml中删除了log4j依赖项,我收到错误: java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory at org.slf4j.LoggerFactory.(LoggerFactory.java:60) at org.hibernate.cfg.Configuration.(Configuration.java:163) … 编辑2: 此博客声称问题是由使用错误版本的slf4j-api.jar的hibernate注释引起的。

为什么Java编译器允许通过null对象进行静态变量访问?

我指着一些技巧并遇到了这个。 在以下代码中: public class TestClass1 { static int a = 10; public static void main(String ar[]){ TestClass1 t1 = null ; System.out.println(t1.a); // At this line } } t1对象为null 。 为什么这段代码没有抛出NullPointerException ? 我知道这不是访问static变量的正确方法,但问题是关于NullPointerException 。

在正则表达式中设置最小和最大字符?

我写了一个正则表达式 ,它匹配任意数量的字母,字母之间有任意数量的单个空格。 我希望这个正则表达式也强制执行最小和最大数量的字符,但我不知道该怎么做(或者如果可能的话)。 我的正则表达式是: [A-Za-z](\s?[A-Za-z])+ 我意识到它只是围绕一个空格匹配两组字母,所以我稍微修改它来修复它。 最初的问题仍然是相同的。 有没有办法强制执行至少三个字符,最多30个字符?