小编Vic*_*Vic的帖子

使用javac和javax.tools.JavaCompiler有什么区别?

Maven编译器插件文档说明:

Compiler Plugin用于编译项目的源代码.从3.0开始,默认编译器是javax.tools.JavaCompiler(如果您使用的是java 1.6)并且用于编译Java源代码.如果要使用javac强制插件,则必须配置插件选项forceJavacCompilerUse

事实上,当forceJavacCompilerUse我们的构建中没有指定时,会出现一些构建错误,例如当代码引用com.sun.包时(遗产,我们知道这是一个坏主意......)

这两种编译模式与maven有什么区别?是否应该知道任何产出差异?

java jvm javac maven java-compiler-api

34
推荐指数
1
解决办法
4682
查看次数

让XCopy复制文件,如果存在则不覆盖前一个文件(不提示)

我正在向远程计算机发送命令以使其复制文件.我想要复制文件,但不要用相同的名称覆盖以前的文件(如果存在).我还需要在没有任何提示的情况下运行命令(xcopy喜欢提示我指定的目标名称是文件还是目录,并且它还会提示有关覆盖文件).

xcopy

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

使用SpringData-MongoDB将Java 8 Instant存储为BSON日期

我有以下类要使用Spring Data存储在MongoDB中

@Document()
public class Tuple2<T extends Enum<T>> {

@Id
private String id;

@Indexed
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private final Instant timeCreated;

...
}
Run Code Online (Sandbox Code Playgroud)

DateTimeFormat注释javadoc状态:

声明字段应格式化为日期时间.支持按样式模式,ISO日期时间模式或自定义格式模式字符串格式化.可以应用于java.util.Date,java.util.Calendar,java.long.Long,Joda-Time值类型; 从Spring 4和JDK 8开始,到JSR-310也是java.time类型.

我使用的是Spring 4.1.1和JDK 8,所以我希望它适用于Instant.但是,这是实际存储的内容:

"timeCreated" : {
    "seconds" : NumberLong(1416757496),
    "nanos" : 503000000
}
Run Code Online (Sandbox Code Playgroud)

如果我从即时到日期编写和注册自定义转换器,就像在这个答案中解释的一样,那么它是有效的,但是我想避免这种情况,因为我确信必须有更好的方法.

在进一步挖掘Spring源代码之后,我发现了以下Jsr310DateTimeFormatAnnotationFormatterFactory看起来很有希望的类:

使用JDK 8中的JSR-310 java.time包格式化使用DateTimeFormat注释注释的字段.

它的'源代码没有引用Instant,但确实引用了OffsetTime和LocalTime.即便如此,当我在我的示例中将Instant更改为OffsetDateTime时,它仍然存储为复合对象而不是ISODate.

缺什么?

java spring spring-data spring-data-mongodb java-time

16
推荐指数
1
解决办法
2870
查看次数

不在permgen的实习字符串?

我在运行的jmap -heapJava应用程序上运行命令,这是我得到的:

C:\ Program Files\Java\jdk1.7.0_05\bin> jmap -heap 2384附加到进程ID 2384,请稍候...调试器已成功附加.服务器编译检测到 在新一代中使用并行线程的
JVM版本是23.1-b03

.
使用线程局部对象分配.
并发标记扫描GC

堆配置:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824(1024.0MB)
NewSize = 1310720(1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488(5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 134217728(128.0 MB)
MaxPermSize = 201326592(192.0MB)
G1HeapRegionSize = 0(0.0MB)

堆用法:
新一代(Eden + 1 Survivor Space):
容量= 228261888(217.6875MB)
使用= 203794000(194.3531036376953MB)
free = 24467888(23.334396362304688MB)
89.28078260703775%使用
伊甸园空间:
容量= 202964992(193.5625MB)
使用= 198399360(189.2083740234375MB)
免费= 4565632(4.3541259765625MB)
97.75053226913141%使用
空间:
容量= 25296896(24.125MB)
使用= 5394640(5.1447296142578125MB)
free …

java string permgen

15
推荐指数
1
解决办法
3577
查看次数

寻找与Sentinel的Jedis的例子

我正在寻找一个使用redis哨兵的jedis的例子.我无法使用jedis设施进行哨兵,我找不到任何好的示例或文档.

redis sentinel jedis

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

ConcurrentHashMap computeIfAbsent

现在没有在java 8的Javadoc推出了一个新的API computeIfAbsent 它的ConcurrentHashMap的impelementation状态:

如果指定的键尚未与值关联,则尝试使用给定的映射函数计算其值,并将其输入此映射,除非为null.整个方法调用是以原子方式执行的,因此每个键最多应用一次该函数.其他线程在此映射上的某些尝试更新操作可能在计算进行时被阻止,因此计算应该简短,并且不得尝试更新此映射的任何其他映射.

那么,在密钥已经存在且计算不需要的情况下,它对锁定此实现有什么看法呢?即使不需要计算,只是映射函数调用是同步的,以防止调用函数两次,整个方法computeIfAbsent是否如文档中所述同步?

java concurrency multithreading

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

PHPStorm中未定义的类DateTime

我想使用类DateTime但是PHPStorm我说"Undefined class DateTime"我的PHP版本是5.5.9-1.我正在使用PHPStorm版本2016.1,我正在使用Yii2 framework(如果它会给你任何有用的信息).那么我如何使用正确的lint默认PHP类?

php datetime yii2

14
推荐指数
1
解决办法
2199
查看次数

Android:下载大文件

我正在尝试从Internet下载大文件(> 20Mb)

private class DownloadTask extends AsyncTask<DatabaseInfo, Integer, String> {

    private DatabaseInfo info;

    protected String doInBackground(DatabaseInfo... dbInfo) {

        int count;
        info = dbInfo[0];

        try {

            URL url = new URL(dbInfo[0].dbPath);

            InputStream input = new BufferedInputStream(url.openStream());
            OutputStream output = new FileOutputStream("/sdcard/db.zip");

            byte data[] = new byte[1024];
            int total = 0;

            while ((count = input.read(data)) != -1) {

                //output.write(data, 0, count);

                total += count;

                if (total % 10240 == 0) {
                    publishProgress(total);
                }
            }

            output.flush();
            output.close();
            input.close();
        } 
        catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud)

android asynchronous download android-asynctask

11
推荐指数
1
解决办法
5231
查看次数

正则表达式查找空间

我有以下文字="superilustrado e de capa dura?",我想在文本中找到单词之间的所有空格.我使用以下表达式= [\\p{L}[:punct:]][[:space:]][\\p{L}[:punct:]].表达式工作正常,但它可以找到"e de"之间的空格.有人知道我的正则表达式有什么问题吗?

regex space

10
推荐指数
3
解决办法
6万
查看次数

通过命令行执行特定版本的maven插件

如果我有(例如)2个版本的同一Maven插件- versions-maven-plugin例如.我的存储库中已有1.0和2.0版本.当我执行以下命令时,它看起来像1.0版本执行:

mvn -e versions:display-plugin-updates

如何明确指定使用2.0版本?

maven-3 maven

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