所以我查看了有关使用Spring Data的JPA的各种教程,这在很多场合都有所不同,我不太确定正确的方法是什么.
假设有以下实体:
package stackoverflowTest.dao;
import javax.persistence.*;
@Entity
@Table(name = "customers")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@Column(name = "name")
private String name;
public Customer(String name) {
this.name = name;
}
public Customer() {
}
public long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
我们还有一个DTO,它在服务层中检索,然后交给控制器/客户端.
package stackoverflowTest.dto;
public class CustomerDto {
private long id;
private String name; …Run Code Online (Sandbox Code Playgroud) 我基本上想做一些简单的事情 - 或者至少我觉得它应该很简单.
我的目标是创建一个Intellij gradle项目,使用gradle为模块添加一些依赖项,并为其添加一些java源代码.
然后我只想有一个选项以某种方式将整个事物编译成1个jar,包含所有等级依赖项并且能够使用"java -jar"执行
然而事实证明,这并不像我想象的那么容易.
我刚从intellij创建了一个新的gradle项目,并添加了一个Main类.
我会给你一个关于我的文件的概述:
settings.gradle:
rootProject.name = 'gradleTestNewJar'
Run Code Online (Sandbox Code Playgroud)
的build.gradle:
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'application'
sourceCompatibility = 1.6
version = '1.0'
repositories {
mavenCentral()
}
mainClassName = "com.randomPackage.StarterClass"
dependencies {
compile 'org.seleniumhq.selenium:selenium-java:2.46.0'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Run Code Online (Sandbox Code Playgroud)
主要课程:
package com.randomPackage;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class StarterClass {
public static void main(String[] args){
System.out.println("test");
WebDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_38);
driver.quit();
}
}
Run Code Online (Sandbox Code Playgroud)
当从Intellij通过debug运行时,执行"MyStart"的主要方法.因此,当所有依赖项都正确加载时,它可以工作.
注意:如果这有任何区别,我使用Intellij Community Edition. …
我知道可以通过 ADB 从 Android 设备截取屏幕截图
$ adb shell screencap -p /mnt/sdcard/sc.png
$ adb pull /mnt/sdcard/sc.png
Run Code Online (Sandbox Code Playgroud)
但是,这会在您的手机和 PC 上写入一个文件,我想避免这种情况。
所以我发现了以下 SO 问题,答案表明当您不指定文件时,图像会打印到 Std 输出。我从控制台对此进行了测试,它确实将二进制数据打印到了控制台。
Android:有没有办法从内存中读取屏幕截图而不保存到内部/外部存储?
现在我想利用这种技术并从 java 启动一个进程,执行
adb shell screencap
Run Code Online (Sandbox Code Playgroud)
命令,读取输出并从输出创建一个 BufferedImage。
我试过这样的事情
ProcessBuilder pb = new ProcessBuilder("cmd");
Process start = pb.start();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
bw.write("adb shell screencap");
bw.newLine();
bw.flush();
// wait some time for the process to print the image to the console
start.waitFor(10, TimeUnit.SECONDS);
StringBuilder sb = new StringBuilder(9000000);
Scanner s = new Scanner(start.getInputStream());
while …Run Code Online (Sandbox Code Playgroud)