小编DP_*_*DP_的帖子

Java:如何检查2个二进制文件是否相同?

检查(在单元测试中)二进制文件A和B是否相等的最简单方法是什么?

java

9
推荐指数
2
解决办法
9142
查看次数

如何将Groovy脚本添加到具有经典Maven结构的Java项目中?

我有一个Java Maven项目,它具有通常的结构.它是由Spring Boot项目创建者生成的.

现在我想为它添加一些Groovy脚本,这样

  1. 我可以从这些脚本中访问Java中实现的一些功能
  2. 如果我只能从IDE运行那些Groovy脚本就足够了(我不打算打包它们,也不分发它们).

我正在使用IntelliJ Idea社区版.

我需要做什么(包括放置Groovy脚本的位置)以便在IDE中编写和执行Groovy脚本,该脚本可以访问com.mycompany.SomeComplexClass依赖于Maven管理的库(编码pom.xml)的Java类?

java groovy intellij-idea maven

9
推荐指数
1
解决办法
3110
查看次数

如何模拟DriverManager.getConnection(...)?

我有一个类,它连接到H2数据库并运行几个SQL语句.

public class H2Persistence implements IPersistence {

    private Connection conn;

    @Override
    public void open() {
        try
        {
            Class.forName("org.h2.Driver");
            conn = DriverManager.getConnection(CONN_TYPE_USER_HOME);

            final Statement stmt = conn.createStatement();

            stmt.executeUpdate("CREATE TABLE PERSON(" +
                    "ID BIGINT,"+
                    "AGEGROUP VARCHAR(255),"+
                    "MONTHLY_INCOME_LEVEL VARCHAR(255)," +
                    "GENDER VARCHAR(1),"+
                    "HOUSEHOLD_ID BIGINT)");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
...
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个单元测试,它验证在open方法中执行某个SQL语句(DROP TABLE IF EXISTS PERSON).

为了做到这一点,我写了以下测试:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.powermock.api.mockito.PowerMockito.mockStatic;
import static org.powermock.api.mockito.PowerMockito.when;


@RunWith(PowerMockRunner.class) …
Run Code Online (Sandbox Code Playgroud)

java unit-testing mocking mockito powermock

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

如何使用WiX安装IIS Express 8和SQL Server 2012?

我想使用WiX创建一个安装程序,如果它们尚未安装,它将安装以下软件:

  1. 安装IIS Server Express 8.0
  2. SQL Server 2012 Express.

为此,我创建了以下Setup.wxs文件:

<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*"
        Name="Your Application"
        Language="1033"
        Version="1.0.0.0"
        UpgradeCode="6431D91E-AD61-4FBB-A081-B63A0E416888"
        Manufacturer="Your Company">
        <Package Description="#Description"
            Comments="Comments"
            InstallerVersion="200"
            Compressed="yes"/>      
        <!-- Installation directory and files are defined in Files.wxs -->
        <Directory Id="TARGETDIR" Name="SourceDir"/>

        <!--
            Using the Wix UI library.

            WixUI_Minimal is the most basic of the WixUI stock dialog sets.
            Its sole dialog combines the welcome and license-agreement 
            dialogs and omits the feature customization dialog. 
            WixUI_Minimal is appropriate when your …
Run Code Online (Sandbox Code Playgroud)

sql-server iis wix sql-server-express iis-express

8
推荐指数
0
解决办法
2392
查看次数

为什么IntelliJ Idea不能识别我的Spek测试?

我有一个基于Gradle的Kotlin项目,它有一些基于JUnit的Spek测试,应该与Idea兼容.

但是我没有在上下文菜单中看到"运行"菜单项.

上下文菜单

为什么?为了能够像其他JUnit测试一样在Idea中运行Spek测试,我需要做什么?

这是我的build.gradle:

buildscript {
  ext.kotlin_version = '1.0.4'
  repositories {
    mavenCentral()
    maven {
        url "https://dl.bintray.com/jetbrains/spek"
    }
  }
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.0-M3'
  }

}

apply plugin: "kotlin"
apply plugin: "application"
apply plugin: 'org.junit.platform.gradle.plugin'

junitPlatform {
    filters {
        engines {
            include 'spek'
        }
    }
}

mainClassName = "com.mycompany.myproduct.AppKt"

sourceSets {
  deploy
}

repositories {
  mavenCentral()
  maven {
    url "https://dl.bintray.com/jetbrains/spek"
  }

}

dependencies {
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
  compile 'org.telegram:telegrambots:2.4.2'
  compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
  compile …
Run Code Online (Sandbox Code Playgroud)

java junit intellij-idea gradle kotlin

8
推荐指数
1
解决办法
2375
查看次数

是否可以仅使用用户名和密码通过GMail API发送电子邮件?

一位同事告诉我,使用Gmail API库,您可以使用用户名和密码从公司Gmail帐户发送电子邮件。

到目前为止,我还无法确定如何准确地使用用户名和密码(没有访问令牌,没有秘密)来构建Gmail实例。

可以使用GMail API仅使用用户名和密码发送电子邮件吗?如果是这样,我在哪里可以找到示例?

更新1:当我使用以下代码时

@Test
fun sendMail() {
    val credentials = Properties()
    credentials.load(FileInputStream("src/test/resources/credentials.properties"))

    val username = credentials.getProperty("username")
    val password = credentials.getProperty("password")

    val prop = Properties()
    prop.put("mail.smtp.host", "smtp.gmail.com")
    prop.put("mail.smtp.port", "587")
    prop.put("mail.smtp.auth", "true")
    prop.put("mail.smtp.starttls.enable", "true") //TLS

    val session = Session.getInstance(prop,
            object : javax.mail.Authenticator() {
                override fun getPasswordAuthentication(): PasswordAuthentication {
                    return PasswordAuthentication(username, password)
                }
            })

    try {

        val message = MimeMessage(session)
        message.setFrom(InternetAddress("..."))
        message.setRecipients(
                Message.RecipientType.TO,
                InternetAddress.parse("...")
        )
        message.setSubject("Testing Gmail")
        message.setText("Hello!!")

        Transport.send(message)

        println("Done")

    } catch (e: MessagingException) { …
Run Code Online (Sandbox Code Playgroud)

java email gmail gmail-api

8
推荐指数
2
解决办法
792
查看次数

如何指定只覆盖一个地址的CIDR块?

配置AWS路由表时,我想输入目标地址A.B.C.D。在路由表中,我可以选择A.B.C.D/28A.B.C.D/32

其中哪一个表示A.B.C.D仅(仅此一个地址)?

我的答案:A.B.C.D/32

理由: 后缀(/28, /32)描述了地址中有多少位是固定的。对于/28,位 29 到 32 可以变化(见下图),而对于 ,/32所有 32 位都是固定的。

固定位和可变位

networking cidr

8
推荐指数
1
解决办法
5089
查看次数

Java 程序如何检测到 MacOS 机器正在关闭?

我有一个 Java 应用程序,每当我启动机器时,我都想在我的 Mac 上启动它。每当机器关闭时,应用程序应正常关闭。

我在 main 方法中添加了一个关闭钩子:

Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(scheduler)));
Run Code Online (Sandbox Code Playgroud)

ShutdownHook 类看起来像这样:

public class ShutdownHook implements  Runnable {
    private final static Logger LOGGER = LoggerFactory.getLogger("Shutdown Hook");
    private final Scheduler scheduler;

    public ShutdownHook(Scheduler scheduler) {
        this.scheduler = scheduler;
    }

    @Override
    public void run() {
        LOGGER.debug("Starting to shot down the application");
        try {
            scheduler.shutdown();
        } catch (final SchedulerException e) {
           LOGGER.error("An error occurred while trying to shut down the scheduler", e);
        }
        LOGGER.info("Exiting the shutdown hook");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我将应用程序构建到一个可执行 JAR 中,并将其添加到“登录项”列表中。 …

java macos daemon

8
推荐指数
1
解决办法
276
查看次数

为什么运行IOIO Mint应用程序时会出现"libcore.io.ErrnoException:open failed:ENOENT"?

我正在尝试制作一个简单的应用程序,它运行在Android设备(Alcatel One Touch 4030D,Android 4.1.1)上,并通过BlueTooth 从IOIO Mint的模拟输入引脚读取数据.

我收到下面给出的错误.它是什么意思,我该如何解决?

java.io.FileNotFoundException: /proc/mtprof/status: open failed: ENOENT (No such file or directory)
        at libcore.io.IoBridge.open(IoBridge.java:451)
        at java.io.FileInputStream.<init>(FileInputStream.java:78)
        at java.io.FileInputStream.<init>(FileInputStream.java:105)
        at com.android.server.am.ActivityRecord.mtProf(ActivityRecord.java:987)
        at com.android.server.am.ActivityRecord.windowsDrawn(ActivityRecord.java:775)
        at com.android.server.am.ActivityRecord$Token.windowsDrawn(ActivityRecord.java:266)
        at com.android.server.wm.WindowManagerService$H.handleMessage(WindowManagerService.java:7523)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:153)
        at com.android.server.wm.WindowManagerService$WMThread.run(WindowManagerService.java:911)
Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
        at libcore.io.Posix.open(Native Method)
        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
        at libcore.io.IoBridge.open(IoBridge.java:435)
        ... 9 more
Run Code Online (Sandbox Code Playgroud)

更新1(11.06.2013 00:40 MSK):将应用程序从API级别10迁移到API级别15没有帮助.

java android ioio

7
推荐指数
1
解决办法
5150
查看次数

adb无法识别Android 4.0.4设备

我有两部Android手机

  1. Alcatel One Touch 4030D,Android 4.1.1版,内核版本3.4.0
  2. Highscreen Spark,Android 4.0.4版,内核版3.0.21-perf.

adb devices 检测阿尔卡特手机,但不是高屏手机.

我试图跑adb kill-server; adb start-server,但没有帮助.在不同的连接模式(媒体设备(MTP),USB存储器)之间切换也没有帮助.USB调试已启用.

以下是Developer选项设置的屏幕截图:

截图1

截图2

截图3

如何让adb识别Highscreen设备?

更新1(2013年8月3日19:00 MSK):添加行0454adb_usb.ini没有帮助.

更新2(03.08.2013 19:59 MSK):我尝试关注官方Google推荐失败,因为我找不到Highscreen Spark设备的驱动程序.

android adb

7
推荐指数
1
解决办法
8754
查看次数