我正在使用IMAP协议从服务器接收电子邮件,就像这里描述的那样.这工作得非常好,我可以将电子邮件和附件存储在磁盘上.
问题:当客户端尝试接收所有电子邮件时,我是否有可能从服务器中删除文件,以便它们不再可用?如果是这样,请告诉我如何.
我已经生成了一个非常好的文档接口.每个方法都有自己的JavaDoc.实现此接口的条款在其逻辑上几乎没有区别.
如何从超类中将JavaDoc添加到现有JavaDoc中.关键词
/**
* {@inheritDoc}
*/
Run Code Online (Sandbox Code Playgroud)
只将超类的javaDoc设置为当前方法.但是当我尝试添加一些单词时,超级方法的JavaDoc就不见了
/**
* {@inheritDoc}
* These value depends on...
*/
Run Code Online (Sandbox Code Playgroud)
有没有人知道我如何更新超级方法的JavaDoc,而不删除.
编辑:
关于Brian Agnew的答案,这很好但不是真正的答案;)
如果要覆盖现有方法(如Swing中的paint()),并且想要描述如何从外部初始化或处理绘制行为,则也会遇到同样的问题.这不仅适用于界面描述.
我正在Java中为SWT和AWT实现一个屏幕键盘.一个重要的事情是将键盘移动到所选文本字段可以显示的位置,而不是位于屏幕键盘后面.
对于AWT,我可以检测当前所选组件的位置
Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
if (owner == null) {
return;
}
Point ownerLocation = owner.getLocationOnScreen();
Dimension ownerSize = owner.getSize();
Run Code Online (Sandbox Code Playgroud)
如何在SWT中实现相同的逻辑?我通过将一个focuslistener添加到SWT事件队列来获取当前选定的小部件.但是当我打电话时
Point location = new Point(mTextWidget.getLocation().x, mTextWidget.getLocation().y);
Dimension dimension = new Dimension(mTextWidget.getSize().x, mTextWidget.getSize().y);
Run Code Online (Sandbox Code Playgroud)
我将获得与父复合相对的位置.
如何才能将特殊小部件的位置与整个屏幕相关联?
我的项目包括多个插件,每个插件都包含plugin.properties文件,有近20个翻译.MANIFEST.MF文件定义存储外部插件字符串的属性文件的名称.
Bundle-Localization: plugin
Run Code Online (Sandbox Code Playgroud)
我定义的插件的名称
%plugin.name
Run Code Online (Sandbox Code Playgroud)
Eclipse将在运行时搜索plugin.properties文件中的"%plugin.name".
哪个类读出了MANIFEST.MF Bundle-Localization条目,并且在"plugin.properties"文件中搜索了带有起始'%'后缀的字符串?
我想以这种方式找到并修补这些类,我可以先查看一些其他目录/文件中的"%plugin.name"标识符.使用这些新机制,我可以在我的产品中添加片段并覆盖"plugin.properties"文件中的单行,而无需更改原始插件.通过这些机制,我可以通过添加不同的片段为多个客户创建构建过程.片段包括他们想要更改的客户名称和特殊字符串.
我想这样做,因为片段机制只将文件添加到原始插件.当插件中存在"plugin.properties"文件时,将忽略片段"plugin.properties"文件.
更新1:
方法
class ManifestLocalization{
...
protected ResourceBundle getResourceBundle(String localeString) {
}
...
}
Run Code Online (Sandbox Code Playgroud)
返回给定语言环境字符串的属性文件的ResourceBundle.当有人知道我现在如何首先查看片段以获取资源路径时请发布它.
更新2:
类ManifestLocalization中的方法
private URL findInResolved(String filePath, AbstractBundle bundleHost) {
URL result = findInBundle(filePath, bundleHost);
if (result != null)
return result;
return findInFragments(filePath, bundleHost);
}
Run Code Online (Sandbox Code Playgroud)
搜索属性文件并对其进行缓存.翻译可以从缓存文件中获取.问题是,完整文件是缓存的而不是单个翻译.
解决方案是首先读取片段文件,而不是读取包文件.当两个文件都存在时,将它们合并到一个文件中,并将新属性文件写入磁盘.返回新属性文件的URL,以便可以缓存新的propetries文件.
Java可以显示png,jpg等一些其他图片格式,但我必须通过获取文件路径在JLable中显示bmp文件.
ImageIcon imageIcon = new ImageIcon(imageFile.getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)
ImageIcon支持典型png,gif,jpg图像.
在我正在工作的项目中,我无法打开bmp文件并将相同的文件存储为jpg,因为我不允许在运行时存储某些内容.我只能在内存中生成图像.但我不知道该怎么做.
我怎样才能显示BMP在Java 1.4?
谢谢
我创建了一个包含以下文件夹结构的插件:
清单包括命令
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Commands Plug-in
Bundle-SymbolicName: de.system.commands;singleton:=true
Bundle-Version: 1.0.0
Bundle-Activator: de.system.commands.CommandsPlugin
Bundle-Localization: plugin
Bundle-NativeCode: native/so/libsystemcommand.so; osname = Linux; processor = x86
Require-Bundle: org.eclipse.core.runtime,
org.apache.commons.logging
Eclipse-AutoStart: true
Export-Package: de.system.commands,
de.system.commands.jni,
de.system.commands.utils
Bundle-ClassPath: .
Run Code Online (Sandbox Code Playgroud)
build.properties看起来像
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
native/
Run Code Online (Sandbox Code Playgroud)
在我Activator班的开始方法中,我打电话
System.loadLibrary("systemcommand");
Run Code Online (Sandbox Code Playgroud)
在运行时,找不到库并抛出UnsatisfiedLinkError.
java.lang.UnsatisfiedLinkError: no libsystemcommand in java.library.path
Run Code Online (Sandbox Code Playgroud)
我是否必须在插件中设置更多属性?我是否必须在目标平台上解压缩一些信息?
编辑:
java.library.path=/opt/jdk/j2re1.4.2_16/lib/i386/client:/opt/jdk/j2re1.4.2_16/lib/i386:/opt/jdk/j2re1.4.2_16/../lib/i386::/opt/dsa/lib:/opt/dsa/lib
Run Code Online (Sandbox Code Playgroud) 我正在使用自动生成的 Java 类来执行特殊方法。因此,我必须通过反射调用该方法。
此执行由 Swing 线程触发,因为该方法(从“未知”类调用)正在更新 UI 元素。新线程的每次执行都是通过调用在类中搜索方法
Class {
...
public Method[] getMethods() throws SecurityException
...
}
Run Code Online (Sandbox Code Playgroud)
getMethods 的逻辑,缓存元素,但我不知道为什么。Profiler 告诉我,Method 对象正在浮动内存。
我可以通过设置系统属性“sun.reflect.noCaches”来禁用 Java 的方法缓存,但是在我更改这些属性后,我的应用程序变得异常缓慢。
问题: 在尝试从类中获取方法之前,我可以实现自己的缓存算法。但是我正在工作的项目非常大,我们有多个反射调用。
什么可以解决这些问题?
哪些情况会触发这些内存泄漏(错误的类加载器,...)?
该项目使用 Java 1.5 在 Linux 下运行
我有主应用程序JFrame窗口,它可以包含不同的组件.当用户选择可编辑的文本字段时,我打开一个自己实现的OnScreenKeyboard.OSK也是一个JFrame窗口.
当用户将主窗口拖动到另一台监视器时,OSK也应显示在同一监视器上.为此,我必须检测显示器,显示主JFrame.
我试着找到一个方法
Toolkit.getDefaultToolkit()
Run Code Online (Sandbox Code Playgroud)
但是找不到东西.
你知道我怎么能检测显示JFrame的显示器吗?
Java-Version 1.4 Windows XP
谢谢
我不明白为什么最后一个代码块生成1819043176 1870078063 6581362 0 1 2 3 4 0 6488159 ...这些数字不是随机的,但为什么这些数字呢?谢谢!
int main(void) {
int x;
int y[10];
int* p;
char* q;
int k;
char* prefix;
k = 0;
while (k < 10) {
y[k] = k;
k = k + 1;
}
x = 42;
printf("address of y are %d %d %d\n", y, y + 1, y + 9);
doit(y + 1);
p = &y[0];
printf("p is %d\n", p);
*p = 42;
p = p + 9;
printf("p is …Run Code Online (Sandbox Code Playgroud)