小编Tho*_*sen的帖子

Tomcat和VM

我真的很难理解tomcat实际运行的位置.它是在JVM中执行的,它执行servlet.或者它在执行servlet或JSP时拥有自己的VM.

提前致谢.

java tomcat servlets

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

Groovy并发:在语义上聚合结果的更好方法?

我需要并行调用多个方法并等待结果.每个都依赖于不同的资源,因此它们可能会在不同的时间返回.我需要等到收到所有结果或在一段时间后超时.

我可以通过方法调用生成带有对共享对象的引用的线程,但有没有更好,更常规的方法来做到这一点?

目前的实施:

        Executors exec = Executors.newFixedThreadPool(10);

        for (obj in objects) {
            def method = {
                def result = new ResultObject(a: obj, b: obj.callSomeMethod())
                result
            } as Callable<ResultObject>

            callables << method
        }

        List<Future<ResultObject>> results = exec.invokeAll(callables)

        for (result in results) {
            try{
                 def searchResult = result.get()
                 println 'result retrieved'
            }  catch (Exception e)
            {
                println 'exception'
                e.printStackTrace()
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

concurrency groovy multithreading

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

从InternetAddress打印出发件人的电子邮件地址

这是获取电子邮件sendersubject电子邮件的代码.使用此代码,我看到正确的主题显示,但我看到不同格式的发件人的地址.

Properties props = new Properties();
    props.put("mail.imap.host" , "imap.gmail.com" );
    props.put("mail.imap.user" , "username");
    // User SSL
    props.put("mail.imap.socketFactory" , 993);
    props.put("mail.imap.socketFactory.class" , "javax.net.ssl.SSLSocketFactory" );
    props.put("mail.imap.port" , 993 );
    Session session = Session.getDefaultInstance(props , new Authenticator() {
        @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("username" , "password");
        }
    });

    try {
      Store store = session.getStore("imap");
      store.connect("imap.gmail.com" , "username" , "password");
      Folder fldr = store.getFolder("Inbox");
      fldr.open(Folder.READ_ONLY);
      Message msgs[] = fldr.getMessages();
        for(int i = 0 ; i < msgs.length ; …
Run Code Online (Sandbox Code Playgroud)

java gmail jakarta-mail gmail-imap

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

哪个JDK的发行版可以运行`javac -source 1.6 -target 1.5`?

注:请不要上交叉编译的所有危险评.谢谢.


我有一种情况,我们需要为Java 5 JVM编译Java 6源代码(以确保JAX-WS的使用是正确的).以前我们用ant ant脚本(显然可以)这样做了,但是在迁移到Maven之后我们发现它最终以javac抱怨:

$ javac -source 1.6 -target 1.5
javac: source release 1.6 requires target release 1.6
Run Code Online (Sandbox Code Playgroud)

是否有任何对Linux(Ubuntu的11.10,86),其中使用javac可以做到这一点的Java分配?


编辑:它似乎没有,因为限制在javac是相同的.解决方案(这使得需要消失)是从默认的javac编译器改为maven-compiler-plugin中的eclipse编译器.


编辑:我发现Eclipse编译器为javadoc实用程序不同意的匿名内部类生成字节代码.我正在为此问题准备一份错误报告.

java linux ubuntu javac

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

git clone很慢 - 我可以将现有的克隆复制到新目录吗?

我们有一个相当大的git存储库,但工作区中实际存在的文件相当少.由于它的大小和严格的反病毒设置,克隆需要相当长的时间,这使得与许多小分支一起工作更加繁琐(因为当git操纵工作区中的maven项目时,Eclipse会变得非常困惑).

因此,我希望有一种更快的方法来创建一个新的git checkout"next"到文件系统中的现有克隆(但完全独立于它)在完全相同的分支并提交为现有克隆,我想知道我是否可以简单地制作包含文件夹的简单副本,.git并独立地继续在两个项目中工作.

(另外我还记得在本地文件系统上找到关于git克隆的东西并用硬链接节省空间.这并不重要,但如果在Windows上工作则可能很好.)

那么,我可以简单地复制现有的git工作区(包括.git)来获得与新的相同的结果git clone吗?

git

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

如何计算Oracle Java 7 JVM的默认最大堆大小?

根据GC人体工程学,默认的最大堆大小应为"物理内存的1/4或1GB".

阅读我希望在96GB ram的服务器级机器上使用jvm,默认最大堆大小1GB(96GB/4 = 24GB或1GB).

但是,当我编译并运行以下代码时,它会写出来21463(即约21GB).

public class Main{
        public static void main(String[] args) {
                System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);
        }
}
Run Code Online (Sandbox Code Playgroud)

如果重要:java -version生产

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)

总而言之,如果我正确阅读文档,默认的最大堆大小应该不大于1GB,但实际上它大约是服务器内存的1/4.怎么会?

java jvm

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

Java:为什么我不能将它转换为Object?

这很奇怪...我认为java中的每个对象都将Object作为祖先.

我有一个ClassA扩展我的ClassB和实现Runnable.

创建后ClassA我无法将其转换为Object.

假设getClassA返回一个ClassA实例.

我在做

Object obj = getClassA();
Run Code Online (Sandbox Code Playgroud)

我也试过了

Object obj = (Object) getClassA();
Run Code Online (Sandbox Code Playgroud)

我得到一个不兼容的类型编译错误:找到Class,required Object.

这有什么用?我认为所有对象都可以转换为Object.

编辑:我认为它与ClassA实现Runnable这一事实有关,但我不确定并需要解释.

Edit2:更改getClassA()以返回一个Object,允许程序进行编译.

Edit3:导入包含ClassB的包修复了问题.B类是在另一个罐子里定义的.ClassA在另一个引用包含ClassB的jar的jar中定义.

java casting object

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

使用":"和"." 在使用类路径声明调用java时

这是一个scjp模拟考试题.

假设我有以下两个文件:

package pkg;

public class Kit {
    public String glueIt (String a, String b) {return a+b;}
}

import pkg.*;

class UseKit {
    public static void main(String[]args) {
        String s = new Kit().glueIt(args[1],args[2]);
        System.out.println(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下目录结构:

test
   |--UseKit.class
   |
   com
     |--KitJar.jar
Run Code Online (Sandbox Code Playgroud)

当前目录是test,文件pkg/Kit.classKitJar.jar

根据答案,产生输出bc的java调用是

java -classpath com/KitJar.jar:. UseKit a b c 
Run Code Online (Sandbox Code Playgroud)

请解释运营商":"和"."的使用.

java scjp classpath

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

对"实现Runnable"感到困惑

你好,Java和android只有几天了.关于"实现runnable"实际上是如何工作的例子,我有点困惑:

public class DrawableSurfaceView extends SurfaceView implements Runnable {

[...]

public void resume(){
    isRunning = true;
    mThread = new Thread(this);
    mThread.start(); //start the animation
    parseParameters(); //<== Here is my problem
}

public void run() {
    while (isRunning == true){
        if (!mHolder.getSurface().isValid()) {
         continue;
        }
        Canvas canvas = mHolder.lockCanvas();
        canvas.drawARGB(255, 0, 0, 0);
        canvas.drawPath(PenPath, PenPaint);
        canvas.drawPath(CursorPath, CursorPaint);
        mHolder.unlockCanvasAndPost(canvas);
    }
}
public void parseParameters() {
  [...]
  [ The rest of my code here  modifying PenPath and CursorPath, etc ]

}
Run Code Online (Sandbox Code Playgroud)

我很尴尬地问,但我想在mThread.start()之后; 将在run方法中开始运行循环的新线程.而我得到的是仅在我的parseParameters()方法终止后执行的run方法.我想要实现的是将画布放在绘图循环线程上,并从外部修改绘图路径的参数以生成我的动画.我确信这是非常基本的,但我几个小时都无法理解这一点.文档没有帮助. …

java multithreading android runnable

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

如何识别给定SHA-1"属于"的远程分支?

我们在构建Maven工件时存储当前checkout的SHA-1,因此我们可以使用"git checkout SHA-1"返回用于制作工件的确切提交.这导致分离的HEAD不属于任何分支.

然后我可以使用"gitk --all".以可视方式识别提交所属的远程分支,但我想知道相应的git命令,用于建立当前提交"属于"的分支(编辑:因为可能在分支上修复了其他错误)因为这个特殊的构建).

git

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