小编dja*_*fan的帖子

如何在Windows 2008上将Access数据库与64位Java ODBC驱动程序一起使用?

多年来,在32位系统上,我从未遇到过问题.为什么我不能在Windows Server 2008上将64位Java ODBC驱动程序与Access数据库一起使用?64位系统上的ODBC驱动程序是用32位代码写的吗?这是我看到的错误,使用64位JDK1.6.018:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
        at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
        at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
        at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
        at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
        at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
       .....
Run Code Online (Sandbox Code Playgroud)

我怀疑Access驱动程序是32位,因为它没有显示在Windows的64位ODBC控制面板中.在ODBC控制面板的"驱动程序"选项卡中只能看到两个64位驱动程序(对于SQL Server).

那么,我该怎么办?我宁愿不必使用SQL Server和JDBC Type-4驱动程序(但那将是我的最后手段).

java 64-bit ms-access

5
推荐指数
1
解决办法
1万
查看次数

默认情况下,如何使用PRAGMA synchronous = OFF让SQLite更快地运行

我刚从命令行创建了一个新的SQLite数据库,并且我有一个到SQLite数据库的ODBC连接.
如果我发出查询,默认情况下,同步似乎是"开启",这实际上是在减慢INSERT性能的大时间.

如何在PRAGMA synchronous = OFF 不需要发送SQL命令的情况下将SQLite数据库设置为默认值?我可以创建一个.INI文件或其他东西来启用它吗?

database sqlite

5
推荐指数
2
解决办法
2万
查看次数

Junit4:运行一套特定的测试方法

有没有办法创建一套测试方法,而不仅仅是测试类?

我想组建一个测试套件,它只运行测试类中的特定测试方法.我没有从我有限的junit知识和搜索网络中看到这样做的方法.

testing junit suite

5
推荐指数
1
解决办法
2770
查看次数

使用TestNG,是否可以动态更改测试名称?

使用TestNG,是否可以使用如下方法动态更改测试名称?

@Test(testName = "defaultName", dataProvider="tests")
public void testLogin( int num, String reportName )
{
    System.out.println("Starting " + num + ": " + reportName);
    changeTestName("Test" + num);
}
Run Code Online (Sandbox Code Playgroud)

junit testng

5
推荐指数
1
解决办法
3685
查看次数

是否可以使用SQL向GROUP BY添加标识?

是否可以向GROUP BY添加标识列,以便每个副本都有一个标识号?

我的原始数据如下所示:

1    AAA  [timestamp]
2    AAA  [timestamp]
3    BBB  [timestamp]
4    CCC  [timestamp]
5    CCC  [timestamp]
6    CCC  [timestamp]
7    DDD  [timestamp]
8    DDD  [timestamp]
9    EEE  [timestamp]
....
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

1    AAA   1
2    AAA   2
4    CCC   1
5    CCC   2
6    CCC   3
7    DDD   1
8    DDD   2
...
Run Code Online (Sandbox Code Playgroud)

解决方案是:

CREATE PROCEDURE [dbo].[RankIt]
AS
BEGIN
SET NOCOUNT ON;

SELECT  *, RANK() OVER(PARTITION BY col2 ORDER BY timestamp DESC) AS ranking 
FROM MYTABLE;

END
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server row-number

4
推荐指数
1
解决办法
7999
查看次数

Eclipse生成的Runnable jar文件不会执行?

我使用Eclipse的"Export - > Java - > Runnable Jar File"函数生成了一个非常简单的可运行jar文件.我的HelloWorld类看起来像这样:

import javax.swing.JFrame;
public class HWorld extends JFrame {
  public static void main(String[] args) {
    new HWorld();
  }
  public HWorld() {
    this.setSize(200, 100);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setTitle("Hello World!");
    this.setVisible(true);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,在生成.jar文件后,使用命令"java -jar HWorld.jar"从命令行运行正常

但是,当我尝试自己执行jar(据说应该可以工作)时,我得到以下错误,我不知道为什么:

E:\Eclipse\workspace>HWorld.jar
Exception in thread "main" java.lang.NoClassDefFoundError: E:\Eclipse\workspace\HWorld/jar
Caused by: java.lang.ClassNotFoundException: E:\Eclipse\workspace\HWorld.jar
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: E:\Eclipse\workspace\HWorld.jar.  Program will exit.
Run Code Online (Sandbox Code Playgroud)

我的清单看起来像这样:

Manifest-Version: 1.0 …
Run Code Online (Sandbox Code Playgroud)

eclipse jar executable-jar

4
推荐指数
1
解决办法
3万
查看次数

JMX:无法从Windows框连接到Linux系统上的JMX端口

我有很多与jconsole.exe和JVisualVM.exe经验,在JDK1.6及以上已连接数千次从Windows JVM到Windows JVM通过JMX.remote另一台机器上,但是当我尝试监视失败一个在Linux主机上运行的java实例(来自Windows主机,我在redhat上尝试了JMX监听器,在Amazon EC2上尝试了SUSE).我也尝试使用jconsole.exe并得到类似的错误.

是否有任何人可以想到的原因,为什么这种JMX连接会有问题.我可以尝试任何想法吗?有没有人"实际"做到这一点,可以说如果我坚持下去会有效吗?

我从JVisualVM获得的错误(在远程连接尝试中)是这样的:

"Cannot connect using service:jmx:rmi:///jndi/rmi://<jmx service ip>:8001/jmxrmi"
Run Code Online (Sandbox Code Playgroud)

我的远程JMX服务配置是这样的:

 -Dcom.sun.management.jmxremote
 -Dcom.sun.management.jmxremote.port=8001
 -Dcom.sun.management.jmxremote.authenticate=false
 -Dcom.sun.management.jmxremote.hostname=<jmx service ip>
Run Code Online (Sandbox Code Playgroud)

此链接中发现了类似的问题,但它没有回答我的问题.

我确认"iptables"没有作为服务启用而且没有打开,所以我没有成像,有任何类型的防火墙阻塞.此外,Windows和Linux机器都在10.0.0.0私有内部子网上.我能够telnet到端口8001来验证它的存在,并在linux机器上监听它(netstat -ap).

java jmx remote-debugging

4
推荐指数
1
解决办法
8663
查看次数

可以使用带有双引号的Groovy MarkupBuilder生成XML吗?

使用此代码:

xml = new groovy.xml.MarkupBuilder() 
xmldata = xml.Plugins(nextid: '10') {
   Target(name: 'default.auth') {
     Port(protocol: 'https') {
       mkp.yield 8080
     }
   }
}
Run Code Online (Sandbox Code Playgroud)

生成此输出:

<Plugins nextid='10'>
  <Target name='default.auth'>
    <Port protocol='https'>8083</Port>
  </Target>
</Plugins>
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法用双引号生成这样的输出?

<Plugins nextid="10">
  <Target name="default.auth">
    <Port protocol="https">8083</Port>
  </Target>
</Plugins>
Run Code Online (Sandbox Code Playgroud)

java xml groovy

4
推荐指数
1
解决办法
1460
查看次数

配置 Gradle 以将主要类和测试类包含到我的 .jar 存档中

如何配置 Gradle 以将主类和测试类包含到我的 .jar 存档中。目前在build/libs 目录中构建的 .jar缺少我的测试类。 在 Gradle 将它们编译到project-root/bin/com/package/之后,它只包含来自project-root/src/main/java/com/package 的类在 .jar 中。

jar {
    manifest {
        attributes 'Implementation-Title': title, 'Implementation-Version': version, 'Main-Class': mainTestClass
    }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,虽然 Gradle 将编译的测试类与主类一起放入project-root/bin/com/package/ 中,但奇怪的是它决定不将它们放入 .jar 存档中。那么,如何让 .jar 也包含最初来自project-root/src/test/java/com/package/ 目录中的测试类 ?

这是我需要帮助的build.gradle 文件

build gradle

4
推荐指数
1
解决办法
7214
查看次数

在Gradle构建脚本中使用系统属性

这应该是最简单的问题,但我在从Gradle测试任务访问System变量时遇到问题.由于我确信这种语法是正确的但它不起作用,因此必须要做一个错字.我希望有人可以帮我识别下面这段代码的问题?

// my gradle build says the following line is a deprecated method    
//systemProperties = System.getProperties()

// this line always returns 1 on a multiprocessor system
println 'NUMBER_OF_PROCESSORS is ' +
     System.getProperty( "NUMBER_OF_PROCESSORS", "1" )

// this line also always returns the default for TMP var
println 'TMP is ' + System.getProperty( "TMP", "C:\\Temp" )
Run Code Online (Sandbox Code Playgroud)

注意:我也在这里问过这个问题,但由于它是一个封闭的线程,我不确定我是否会在那里得到答案.此外,我已经彻底阅读了该文档,但它没有帮助.

我试过这些,但也失败了:

test {
    println ""
    ENV = System.getProperties()
    println "TMP is " + ENV['TMP']
    println "" …
Run Code Online (Sandbox Code Playgroud)

properties gradle

4
推荐指数
1
解决办法
1万
查看次数