小编Joa*_*nis的帖子

有没有从Eclipse自动生成ant build.xml文件的方法?

从Eclipse中,我发现我可以轻松地为我的项目导出Ant构建文件.它提供对第三方库和一些基本目标的引用.我在我的全局构建文件中使用它.困扰我的唯一问题是,如果在项目结构中修改某些内容(比如添加新的第三方库),我们必须考虑(有时可能很难!)重新生成该build.xml文件.我想知道这里是否有人知道如何让它自动更新.通过"自动",我的意思是没有必要明确要求Eclipse在每次需要时重新生成它.我不知道触发器可能是什么......

对此有何想法或知识?

谢谢!

MJ

java eclipse ant build.xml

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

如何重命名Java包而不破坏Subversion历史记录?

我正在为之工作的公司正在启动,他们在此过程中改名.所以我们仍然使用包名com.oldname,因为我们害怕打破文件更改历史记录,或者版本之间的祖先链接,或者我们可能破坏的任何东西(我不认为我使用正确的术语,但你得到了概念).

我们使用:Eclipse,TortoiseSVN,Subversion

我发现的地方,我应该这样做在很多步骤,以防止在java文件.svn目录和包名的内容之间不连贯:

  • 首先使用TortoiseSVN重命名目录,更新.svn目录.
  • 然后,手动将目录重命名为原始名称.
  • 最后使用Eclipse将包重命名(refactor)重命名为新名称,更新java文件.

这对我来说似乎很好,但我需要知道祖先和历史以及其他一切是否仍然是连贯的并且运作良好.

我没有该服务器的密钥,这就是为什么我不急着备份东西并尝试一两件事.我想提出一个不这样做的好理由,或者一种有效的方法.

谢谢您的帮助,

M. Joanis


包重命名测试

程序:

  1. 创建一个新包com.oldname.test.renametest.subpackage.
  2. 在renametest下添加一个名为RenameTest0.java的新类,其中包含:

    class RenameTest0 {
        public RenameTest0() {
            showMessage();
            new RenameTest1();
        }
        public static void showMessage() {
            System.out.println("RenameTest0!");
        }
        public static void main(String[] args) {
            new RenameTest0();
        }
    }
  3. 在renametest.subpackage下添加一个新类,其中包含:

    class RenameTest1 {
        public RenameTest1() {
            showMessage();
            RenameTest0.showMessage();
        }
        public static void showMessage() {
            System.out.println("RenameTest1!");
        }
    }
  4. 测试RenameTest0运行正常.

  5. 承诺.
  6. 更改两个类的消息.
  7. 承诺.
  8. 再次,更改一个类的消息并提交(只创建一些历史记录).
  9. 应用上面提出的程序(原始消息中的三个步骤)将包重命名重命名为testrename.
  10. 承诺.
  11. 测试运行.
  12. 再次修改消息并进行测试.
  13. 承诺.
  14. 第一次同时更改两条消息时,尝试回滚到该版本.
  15. 如果到目前为止一切正常,它看起来不错,不是吗?

测试结果:

  • 关于步骤9的注意事项:必须以相反的顺序执行(Eclipse重命名为THEN TortoiseSVN重命名.),否则它变得复杂,因为TSVN创建了一个新的文件夹/包并标记旧的删除...所以你不能重命名为Eclipse,除非你同时把旧包放在其他地方,以防止丢失.svn文件夹等.使用这种方法进一步看起来不是一个好主意.(请注意:不要忘记勾选递归包重命名的复选框!)
  • 关于第14步的说明:工作了!我们可以看到以前的版本; …

java eclipse svn tortoisesvn renaming

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

从JButton显示/隐藏JPopupMenu; FocusListener无法正常工作?

我需要一个带有附加下拉样式菜单的JButton.所以我拿了一个JPopupMenu并以你在下面的代码中看到的方式将它附加到JButton.它需要做的是:

  • 单击时显示弹出窗口
  • 如果再次点击则隐藏它
  • 如果在弹出窗口中选择了某个项目,则隐藏它
  • 如果用户点击屏幕中的其他位置,则隐藏它

这4周工作上的事情,但我使用,因为布尔标志,如果用户点击了其他位置或选择一个项目,我必须在按钮上点击两次才能再次之前.这就是为什么我尝试添加一个FocusListener(绝对没有响应)来修复它并在这些情况下将标志设置为false.

编辑:最后一次尝试回答帖子......

以下是监听器:(它在一个扩展JButton的类中,所以第二个监听器在JButton上.)

// Show popup on left click.
menu.addFocusListener(new FocusListener() {
 @Override
 public void focusLost(FocusEvent e) {
  System.out.println("LOST FOCUS");
  isShowingPopup = false;
 }

 @Override
 public void focusGained(FocusEvent e) {
  System.out.println("GAINED FOCUS");
 }
});

addActionListener(new ActionListener() {
 @Override
 public void actionPerformed(ActionEvent e) {
  System.out.println("isShowingPopup: " + isShowingPopup);
  if (isShowingPopup) {
   isShowingPopup = false;
  } else {
   Component c = (Component) e.getSource();
   menu.show(c, -1, c.getHeight());
   isShowingPopup = true;
  }
 }
});
Run Code Online (Sandbox Code Playgroud)

我现在已经用这个太久了.如果有人能给我一个关于这个问题的线索,那就太好了!

谢谢!

码:

public class …
Run Code Online (Sandbox Code Playgroud)

java swing jbutton jpopupmenu

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

如何为log4j消息添加前缀(在对象级别)

我使用log4j2,我想为我的所有消息添加一个前缀.此前缀传递给构造函数参数,它取决于类的实例.所以我们处于对象级别(不是类或线程).

例如,我有一个A实例化的类new A(152),所以当我log.error("message")在这个类上使用时,152:就是在消息之前编写的.因为new A(155),155:将显示.

谢谢你的帮助

java log4j log4j2

8
推荐指数
3
解决办法
7466
查看次数

如何确定Windows系统的最大COM端口号?

我有一个系统,它有一些设备,通过虚拟COM端口进行通信.随着时间的推移,COM端口号会改变.我制作了一些代码来搜索这些设备的新COM端口号并记住它们.这很好用.

我的问题是定义COM端口号搜索范围.我在Microsoft KB中发现,Windows NT操作系统通常(默认情况下)限制为256个COM端口.他们还指出这是可配置的,并且没有什么能阻止系统具有非常不同的最大COM端口号.

我想知道是否有办法以编程方式知道COM端口号范围.显然,如果我让系统只搜索2⁸范围,那么比搜索2⁶⁶范围需要的时间要短得多!但是如果运行我的应用程序的系统被设置为支持超过2个COM端口号,那么在某些时候应用程序肯定会一次又一次地失败,直到COM端口号分配循环回到COM0(或者它是COM1?).如果它不需要太多巫术,我想避免这种情况.

我主要使用Java,但欢迎任何想法.

optimization windows-nt serial-port

6
推荐指数
0
解决办法
6464
查看次数