小编Yat*_*oel的帖子

如何使用Netbeans Profiler找到内存泄漏?

我想在我的java应用程序中找到内存泄漏,但我不知道如何使用Netbeans profiler来做到这一点.

java profiler netbeans

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

Java线程 - 内存一致性错误

我正在阅读Sun关于并发的教程.

但我无法准确理解内存一致性错误是什么?我搜索了一下,但没有找到任何有用的教程或文章.

我知道这个问题是主观的,所以你可以给我链接到上述主题的文章.

如果你用一个简单的例子解释它会很棒.

java multithreading shared-memory

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

在Java中使用什么集合而不是2D数组?

我想使用一个集合来代替2D数组,这样我就不需要在声明时给出它的大小,我可以动态地添加任意数量的元素.

java collections

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

Java - 需要一个记录堆栈跟踪的日志包

是否有一个Logger可以轻松记录我的堆栈跟踪(我得到了什么 ex.printStackTrace())?我搜索了log4j文档,发现没有关于记录堆栈跟踪的信息.

我可以自己做

StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
String stacktrace = sw.toString();
logger.error(stacktrace);
Run Code Online (Sandbox Code Playgroud)

但我不想在整个地方复制这些代码.

如果log4j不会为我执行此操作,是否有另一个日志包将为我记录堆栈跟踪?

谢谢.

java logging

13
推荐指数
1
解决办法
7968
查看次数

Eclipse Java EE插件

我想要一个Eclipse Java EE插件,我可以直接从Eclipse安装.

我在Google上搜索过它并发现了一些,但无法弄清楚如何直接从Eclipse下载它们.

我找到的一个插件是WTP,但找不到我可以在Eclipse的软件更新工具中输入的WTP存储库的位置.

我正在使用Eclipse 3.4.2(Ganymede)

eclipse plugins java-ee

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

如何下载热链接保护的图像?

我想从受热链接保护的其他网站下载图像.我不想将这些图片链接到我的网站.我只是想下载它们.

java image hotlinking

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

如何将字节数组存储为磁盘上的映像文件?

我有一个Image的字节数组表示.如何将其作为图像文件保存在磁盘上.

我已经这样做了

OutputStream out = new FileOutputStream("a.jpg");
out.write(byteArray);
out.flush();
out.close();
Run Code Online (Sandbox Code Playgroud)

但是当我通过双击打开图像时,它不会显示任何图像.

java io image bytearray

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

如何通过Java EE Web应用程序在服务器(Web容器)上存储文件?

我开发了一个Java EE Web应用程序.该应用程序允许用户在浏览器的帮助下上传文件.一旦用户上传了他的文件,该应用程序首先将上载的文件存储在服务器上(运行它),然后对其进行处理.

目前,我将文件存储在服务器上,如下所示:

try {
    // formFile represents the uploaded file
    FormFile formFile = programForm.getTheFile();
    String path = getServlet().getServletContext().getRealPath("") + "/"
        + formFile.getFileName();
    System.out.println(path);
    file = new File(path);
    outputStream = new FileOutputStream(file);
    outputStream.write(formFile.getFileData());
}
Run Code Online (Sandbox Code Playgroud)

其中,formFile代表上传的文件.

现在,问题是它在某些服务器上正常运行但在某些服务器上getServlet().getServletContext().getRealPath("")正在返回,null因此我得到的最终路径是null/filename文件不存储在服务器上.

当我检查API ServletContext.getRealPath()方法时,我发现了以下内容:

public java.lang.String getRealPath(java.lang.String path)

返回包含给定虚拟路径的实际路径的String.例如,路径"/index.html"返回服务器文件系统上的绝对文件路径将由请求提供服务"http://host/contextPath/index.html",其中contextPath是此ServletContext的上下文路径.

返回的实际路径将采用适合运行servlet容器的计算机和操作系统的形式,包括正确的路径分隔符.如果servlet容器由于任何原因(例如,当从.war存档提供内容时)无法将虚拟路径转换为实际路径,则此方法返回null.

那么,有没有其他方法可以将文件存储在那些正在返回的服务器nullgetServlet().getServletContext().getRealPath("")

java tomcat servlets file-storage java-ee

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

Java - 如何减小第三方jar的大小以减小应用程序的大小

我正在开发一个java Web应用程序,其中包括一个applet.该applet依赖于两个jar文件:

  • JFreeChart(用于在客户端绘制图形) - 1.7 MB(jar文件的大小)
  • MySqlJdbcConnector(用于存储在客户端捕获的数据到远程数据库) - .7 mb(jar文件的大小)

现在,问题是上面两个jar文件的大小.我的applet jar (myApplet.jar)的总大小是2.5 MB,其中2.4 MB是因为上面两个jar文件.

我没有使用那些jar文件中的所有类.具体来说,对于 jfreechart,我使用的是来自该库的极少数类.

============================== 问题 =================== ===================

Q1.为了创建myApplet.jar文件,我所做的是解压缩了两个jar文件(jfreechart和mySQLJdbcConnector),然后使用我的applet代码的源代码打包解压缩版本的jar文件,以创建一个jar文件(即myApplet.jar).这是用你的applet代码打包第三方jar文件的正确方法吗?有什么方法可以优化这个吗?

Q2.我试图找到我在我的应用程序中使用的jfreechart库类的依赖项,以便只在myApplet.jar中打包这些依赖项.为此,我使用DependencyAnalyzer查找所有类的依赖项.但后来我发现很难手动这样做,因为每个类(我在我的应用程序中使用的jfreechart类)都有很多依赖项,而且我使用了15个类的jfreechart,因此为每个类执行此操作将非常困难.那有什么建议吗?

Q3.这种情况是非常普遍的开发人员遇到或我遗失的东西,因为我必须这样做?

java dependencies jar

11
推荐指数
3
解决办法
5071
查看次数

Java - 如何在写入文件时检测文件删除?

我们的java程序不断地将一些重要数据写入文件.现在我们想要在某些用户手动删除文件(java程序正在编写的文件)时抛出一些异常或在控制台上显示某种错误消息.

我发现java在尝试写入已删除的文件时不会抛出任何异常.

方法I -启动一个新线程,该线程将继续检查文件是否存在,并在删除文件时通知主java程序.这在我们的情况下不起作用,因为我们将有几个java程序将要编写的文件,因此为每个文件启动一个新线程将不具有内存效率.

方法II -每次在写入文件之前检查文件是否存在.这也不是一个好方法,因为检查文件存在是一个更昂贵的操作.

方法III -扩展java.io.FilterWriter(我们用来写入文件)并覆盖write()方法,以便在尝试写入已删除的文件时抛出异常.这似乎是一个很好的解决方案,但我找不到任何地方Java正在消化一些异常(当它试图写入已被删除的文件时),我们可以通过覆盖该方法抛出.

java io filewriter writer

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