是否有一种独立于平台的方式以编程方式从zip / jar中删除文件?

希望无需解压缩和重新打包存档。

通过ProcessBuilder运行脚本后,在java中收集环境变量

为什么以下代码打印为false? 我正在尝试test.sh脚本中的环境变量并在java中收集它。 如果可能,请建议替代方法。 public static void main(String[] args){ ProcessBuilder processBuilder = new ProcessBuilder(“test.sh”); Process process; int exitCode; try { process = processBuilder.start(); exitCode = process.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } MapenvVars = processBuilder.environment(); System.out.println(envVars.keySet().contains(“SOURCE”)); } 而test.sh脚本的代码很简单 set SOURCE=source

如何使用Thread Sleep暂停JUNG“animator”(给定IterativeProcess)?

我正在通过JUNG库为节点之间的移动agents (即JUNG节点)提供一个接口。 当我命令agent从节点1移动到节点2时 ,并且在代理到节点2的行程结束之前,我命令agent移动到节点1 。 我希望agent在到达节点2后移动到节点1但是代理slowed down (因为新命令降低其速度)并且当通过该降低的速度到达节点2时它以相同的降低的速度返回到节点1。 并且当存在命令代理移动到的Third点时(当它在跳闸forms节点1到节点2时 ),代理looses its path到节点2的 looses its path并且不到达节点2或3中的任何节点。 我知道发生这种情况是因为当一些thread正在moving the agent ,执行新命令的另一个thread应该以某种方式paused并且在另一个thread完成其工作之后应该resumed它。 我试过通过睡觉线程来做这样的事情,但它不起作用。 即使我睡眠线程,顶点对撞机仍然会改变节点位置。 我也试过使用semaphores但同样的事情发生了。 我怎么能完全阻止它? 这是我的代码的完整实现(The main part for moving the agents is the MOVE class) : InterpretMaster.java commandMaster.java Command.java Move.java: /* * To change this license header, choose License Headers in Project Properties. * To change […]

NoClassDefFoundError:Mac计算机上的javax / swing / GroupLayout $组

我只在Mac计算机上测试Java程序时出现运行时错误。 它在各种Windows操作系统上测试完美。 这是我在Mac计算机上收到的错误消息… 线程“AWT-EventQueue-0”中的exceptionjava.lang.NoClassDefFoundError:javax / swing / GroupLayout $ project.MainPanel.calculateButtonActionPerformed(MainPanel.java:198)at project.MainPanel.access $ 200(MainPanel.java:32) at project.MainPanel $ 3.actionPerformed(MainPanel.java:97)at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)at javax.swing.AbstractButton $ Handler.actionPerformed(AbstractButton.java:2202)at javax.swing .DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)位于java.awt的javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)的javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)。 java.awt.Container.processEvent上的java.awt.Component.processEvent(Component.java:5367)中的javax.swing.JComponent.processMouseEvent(JComponent.java:3135)上的Component.processMouseEvent(Component.java:5602) .java:2010)java.awt.Con上的java.awt.Component.dispatchEventImpl(Component.java:4068) tainer.dispatchEventImpl(Container.java:2068)位于java.awt.Light上的java.awt.Component.dispatchEvent(Component.java:3903)java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)java.awt.LightweightDispatcher.processMouseEvent(Container) .java:3936)java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)at java.awt.Container.dispatchEventImpl(Container.java:2054)at java.awt.Window.dispatchEventImpl(Window.java:1801) java.awt.EventDispatchEvent(EventQueue.java:463)java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatch!)的java.awt.Component.dispatchEvent(Component.java:3903) Thread.j ava:269)java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 176)at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)\ 我不知道为什么会这样。 我在Windows计算机上编译程序的事实可能是问题吗? 这是我唯一能想到的。

FacesContext中getExternalContext中的NullpointerException

我尝试从FacesContext获取外部上下文,并获得NullPointerException: ExternalContext context = FacesContext.getCurrentInstance().getExternalContext(); 什么可能导致问题?

Jenkens插件(使用Maven构建)和外部jar子

我正在尝试编写一个简单的Jenkins插件,它需要一个专有的外部库myAwesomePackage.jar。 这里经常讨论将外部jar包含到maven项目中的stackoverflow,这里的解决方案https://stackoverflow.com/a/7623805似乎是解决这个问题的简洁方法。 所以我加了我的jar子 mvn install:install-file \ -Dfile=./lib/path_to_jar/lib/myAwesomePackage.jar \ -DlocalRepositoryPath=my_repo \ -DcreateChecksum=true \ -DgroupId=myAwesomePackage \ -DartifactId=myAwesomePackage \ -Dversion=1 \ -Dpackaging=jar \ -DgeneratePom=true 并修改了它看起来像我的pom.xml 4.0.0 org.jenkins-ci.plugins plugin 1.532.3 org.jenkins-ci.plugins myPlugin 1.0-SNAPSHOT hpi … license name … /name> … license url … repo.jenkins-ci.org http://repo.jenkins-ci.org/public/ my_repo file://${project.basedir}/my_repo repo.jenkins-ci.org http://repo.jenkins-ci.org/public/ org.glassfish javax.xml.rpc 3.0-Prelude-Embedded-m2 myAwesomePackage myAwesomePackage 1 我没有〜/ m2 / .settings文件。 […]

Ghostscript在命令行中工作,但如果在AIX上从Java执行则不起作用

简短的介绍 我必须在AIX上运行Ghostscript。 它在命令行中工作 : XXXXXXXX:i2zate:/home/i2zate>/usr/bin/gs -dFIXEDMEDIA -dPDFFitPage -dFirstPage=1 -dLastPage=1 -dBATCH -dNOPAUSE -dNOPROMPT -dSAFER -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=0 -dDEVICEWIDTH=90 -dDEVICEHEIGHT=120 -dORIENT1=true -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=1.jpg porsche.pdf GPL Ghostscript 8.70 (2009-07-31) Copyright (C) 2009 Artifex Software, Inc. All rights reserved. This software comes with NO WARRANTY: see the file PUBLIC for details. Processing pages 1 through 1. Page […]

扩展JPanels的问题

嗨,我正在解决一个问题,我在Swing中遇到了一些问题。 使用扩展JFrame或JComponent的类没有任何问题,但是当我尝试使用我编写的扩展JPanel的类时,它将不会显示,并且我在该面板上调用的任何内容都不显示,包括添加自定义JComponents到它。 创建JPanel扩展类然后将其设置为要在JFrame中使用的内容窗格的一般过程是什么?

将提取更改为EAGER似乎可以修复无关的会话缓存问题

这不是一个“它破碎”的问题。 这是为什么不打破?! 题。 不幸的是,需要一些上下文。 之前我问了一个问题,我想如何覆盖Hibernate的第一级缓存,以便获得新更新的JobStatus实体的数据而不是缓存(但是陈旧的)版本。 我得到了两条有用的评论:首先,我应该在服务方法上尝试@Transactional(propagation = Propagation.REQUIRES_NEW) ; 第二,在尝试分离线程来处理某些东西时,我调用了thread.run()而不是thread.start() ,它运行代码但是在同一个线程上。 应用这些建议后,我发现REQUIRES_NEW似乎没有做任何事情,并且thread.start()产生了ERROR: org.hibernate.LazyInitializationException failed to lazily initialize a collection of role: DataSourceResults 现在,作为实验,我将DataSourceResults中的集合字段的加载更改为EAGER 。 这不仅修复了LazyInitializationException,而且修复了过时的会话缓存问题,即使这是一个完全不同的实体类型 JobStatus。 我的问题基本上是: 这怎么可能? 供参考:所涉及实体的ORM XML。 <!—-> <!—-> TIMESTAMP

JUnit:运行一个具有不同配置的测试

我有2种测试方法,我需要使用不同的配置运行它们 myTest() { ….. ….. } @Test myTest_c1() { setConf1(); myTest(); } @Test myTest_c2() { setConf2(); myTest(); } //—————— nextTest() { ….. ….. } @Test nextTest_c1() { setConf1(); nextTest(); } @Test nextTest_c2() { setConf2(); nextTest(); } 我不能从一个配置运行它们(如下面的代码),因为我需要单独的方法来执行tosca。 @Test tests_c1() { setConf1(); myTest() nextTest(); } 我不想写那两个方法来运行每个测试,我该如何解决这个问题? 首先我想写自定义注释 @Test @RunWithBothConf myTest() { …. } 但也许还有其他解决方案吗?