小编IAm*_*aja的帖子

StringBuilder可能出现内存泄漏?

我使用a StringBuilder来创建一个File对象,但我也用它来查看该文件所在的目录是否存在:

StringBuilder sbFile = new StringBuilder();
sbFile.append("/home/logs/");

File oFile = new File(sbFile.toString());

if(!oFile.exists())
    oFile.mkdir();

sbFile.append("MyLogFile.log");

oFile = new File(sbFile.toString());
Run Code Online (Sandbox Code Playgroud)

但我担心oFile在字符串生成器(/home/logs/vs /home/logs/MyLogFile.log)的两个不同"版本"上重用相同的引用会产生内存泄漏.如果是这样,我该怎么写这个呢?

java file-io memory-leaks

0
推荐指数
1
解决办法
1989
查看次数

云中的木偶?

是否可以使用Puppet设置,使用JClouds在云上实例化新虚拟机,然后通过Puppet定义和实现其配置(软件堆栈)?

或者Puppet的本质是否存在某些内在因素阻止其在AWS,RackSpace或Heroku等云提供商上的使用?

java cloud puppet rackspace-cloud jclouds

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

GWT:模块与 ClientBundle?

我是 GWT 新手,很难理解ModuleClientBundle之间的根本区别。在 GWT 文档的某些区域中,两者似乎是同一件事,而在其他区域中,它们显然是不同的。

我的理解是,模块是部署到用户浏览器的客户端代码。这是一个包含 HTML、CSS 和 JS 的 ZIP 文件。

我的理解是 ClientBundle 类似于 Module,但它只包含静态资源,例如图像。

如果这些理解都是正确的,那么为什么需要区分两者呢?HTML/CSS/JS 不也是静态资源吗?!?如果我的说法离谱,请帮助我理解差异是什么,也许还提供每个差异的具体示例以及何时适合使用每个差异。提前致谢!

java gwt module clientbundle

0
推荐指数
1
解决办法
547
查看次数

Google App Engine类似生产环境

如果测试新代码后,我可以将更改发布到我的GAE应用程序的特定子域(例如demo.my-gae-app.com代替我的实时环境my-gae-app.com)或特定的后端实例(如果禁止子域或不是正确的解决方案,那将是很好的这里).

然后,我可以向我的beta测试人员演示新的代码更改,并针对现实生活中的GAE环境运行性能测试.我知道GAE SDK附带了一个开发应用程序服务器,但它存储了大多数API调用,并且根本不像生产环境那样处理扩展.虽然我们绝对会将它用于开发人员的本地沙箱以及我们的QA环境,但我感觉不适合将代码发布到没有真正模仿生产环境的产品中.

其他GAE开发人员/团队如何处理这个问题?我真的只是想要一个预生产环境(比如"Demo")......但实际上是在实时的GAE app服务器上.当然,我需要限制对此代码的访问,以便只有我自己,我的开发人员,我的beta测试人员和我们的自动性测试可以访问它...(这是踢球者).

java google-app-engine production-environment demo

0
推荐指数
1
解决办法
293
查看次数

Apache Ant正在创建奇怪的目录

我正在定义一个新的构建文件和(出于这个问题范围之外的原因)我需要把它放在里面projectRoot/build,而不是正常projectRoot:

MyProject
    src/
        <Java source>
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

里面build.xml:

<project name="myproject-build" basedir="..">
    <property file="build.properties"/>

    <target name="mkdirs">
        <mkdir dir="${gen.dir}"/>
    </target>
</project>
Run Code Online (Sandbox Code Playgroud)

内部build.properties:

gen.dir=generated
Run Code Online (Sandbox Code Playgroud)

所以,如果我从命令行运行mkdirs,你会期望它产生以下目录结构:

MyProject
    src/
        <Java source>
    generated/
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

但相反,我得到:

MyProject
    src/
        <Java source>
    ${gen.dir}
    build/
        build.xml
        build.properties
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么Ant不能正确导入build.properties文件?或者还有其他事情发生了吗?我怀疑它与某些事情有关basedir,但我无法改变构建必须存在于内部的事实build/build.xml.提前致谢!

java ant build.xml

0
推荐指数
1
解决办法
52
查看次数

JUnit/Mockito测试失败的原因很奇怪

我有一个非常简单的方法,我试图进行单元测试:

public class MyAntTask extends org.apache.tools.ant.Task {
    public void execute() {
        fire();
    }

    public void fire() {
        // Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

我只想写一个单元测试,确认调用execute()总是调用fire(),所以我写了这个:

@Test
public void executeCallsFire() {
    //GIVEN
    MyAntTask myTask = Mockito.mock(MyAntTask.class);

    // Configure the mock to throw an exception if the fire() method
    // is called.
    Mockito.doThrow(new RuntimeException("fired")).when(myTask).fire();

    // WHEN
    try {
        // Execute the execute() method.
        myTask.execute();

        // We should never get here; HOWEVER this is the fail() that's
        // being executed by …
Run Code Online (Sandbox Code Playgroud)

java junit mockito

0
推荐指数
1
解决办法
1713
查看次数

jQuery getJSON语法错误

我正在尝试使用jQuery的$.getJSON()函数来进行服务器端的AJAX调用:

$.getJSON() {
    url: "/my-server/some-url",
    success: function() {
        alert("Success!");
    }
}
Run Code Online (Sandbox Code Playgroud)

Firebug将此显示为JavaScript错误:

SyntaxError: missing ; before statement
[Break On This Error]   

$.getJSON() {
Run Code Online (Sandbox Code Playgroud)

在阅读教程时,似乎我正确使用它,传入URL然后成功回调.这个特定的URL不需要任何数据参数,所以我省略了它们.任何人都可以找到我要去的地方吗?提前致谢!

javascript ajax jquery

0
推荐指数
1
解决办法
3207
查看次数

jQuery不会调用警告框

我有以下内容:

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        $.getJSON(
            "/myServer/getAllWidgets",
            function(data) {
                var optionsHTML = "<select id='widget-sel'>";
                optionsHTML += "<option selected='selected' id='default'>Select an option</option>";
                var len = data.length;
                for(var i = 0; i < len; i++) {
                    optionsHTML += '<option value="' + data[i] + '">'
                        + data[i] + '</option>';
                }

                optionsHTML += "</select>";

                $('#widget-sel-div').html(optionsHTML);
            }
        );

        $("#widget-sel").change(function() {
            alert("Hello!");
        });
    });
</script>

<div id="widget-sel-div"></div>
Run Code Online (Sandbox Code Playgroud)

因此,我们的想法是,在document.ready触发时,它会widget-sel-div使用选择框(widget-sel)填充,然后为该选择创建一个更改处理程序,只需打印"Hello!" 通过alertbox到屏幕.

当我运行它时,我没有得到任何错误(Firebug根本就没有抱怨)并且select会从AJAX调用中填充我的所有小部件/myServer/getAllWidgets.问题是,更改处理程序无法正常工作:当我选择一个小部件时,我没有得到警告框.任何人都可以找到我要去的地方吗?提前致谢.

javascript ajax jquery

0
推荐指数
1
解决办法
93
查看次数

Apache POI在读取XLSX工作簿时抛出IOException

我正在尝试运行以下代码并获得IOException:

String cellText = null;
InputStream is = null;
try {
    // Find /mydata/myworkbook.xlsx
    is = new FileInputStream("/mydata/myworkbook.xlsx");
    is.close();

    System.out.println("Found the file!");

    // Read it in as a workbook and then obtain the "widgets" sheet.
    Workbook wb = new XSSFWorkbook(is);
    Sheet sheet = wb.getSheet("widgets");

    System.out.println("Obtained the widgets sheet!");

    // Grab the 2nd row in the sheet (that contains the data we want).
    Row row = sheet.getRow(1);

    // Grab the 7th cell/col in the row (containing the Plot 500 …
Run Code Online (Sandbox Code Playgroud)

java inputstream xlsx ioexception apache-poi

0
推荐指数
1
解决办法
5145
查看次数

通过黑名单验证Java字符串

如果String包含"非法字符",我想编写一个简单的验证器来抛出异常,具体来说:

〜,@,+,%和|

我正在寻找最干净的方法,并希望有一种方法可以定义一个"黑名单"正则表达式,可能看起来像:

String blacklist = "~@+%|";
String toValidate = getInputFromUser();

if(toValidate.matches(blacklist))
    throw new RuntimeException("Illegal characters found!");
Run Code Online (Sandbox Code Playgroud)

但是我知道正则表达式是不正确的.我是朝着正确的方向前进还是离开基地(即有更简单的解决方案)?提前致谢!

java regex string

0
推荐指数
1
解决办法
1406
查看次数