我在Ant中定义了两个不同的文件集,如下所示:
<fileset id="fileset1" dir="${classes.dir}">
</fileset>
<zipfileset id="fileset2" src="myArchive.zip" includes="**/*.class">
</zipfileset>
Run Code Online (Sandbox Code Playgroud)
我想创建第三个文件集,它是上述两个文件集的并集
<fileset id="merged">
</fileset>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?甚至可以做那样的事情吗?提前致谢!
我有一个Windows批处理文件,其中包含在路径包含重音字符的位置执行EXE文件的指令.以下是批处理文件的内容.
@echo off
C:\español\jre\bin\java.exe -version
Run Code Online (Sandbox Code Playgroud)
C:\español\ jre\bin\java.exe - 此路径存在且正确.我可以直接在cmd.exe上运行此命令.但是当我从bat/cmd文件运行命令时,它无法说"系统找不到指定的路径"
解决此问题的一种方法是将代码页设置为1252(适用于我).但我担心我们必须为任何非英语语言环境设置代码页,并确定使用哪个代码页非常困难.
有没有其他方法来解决这个问题?也许是命令行选项或其他?
我正在尝试使用默认端口从我的Java应用程序启动网络服务器模式下的Derby.服务器启动成功.现在我尝试连接到服务器上名为"myDB"的数据库.建立连接并成功创建db.lck.然后,我做了几个事务,提交并优雅地关闭连接.我看到db.lck仍在那里.然后我关闭了网络服务器.我希望在所有这些操作结束时删除db.lck文件.但它仍然存在.(PS:操作系统是Windows)
以下是代码:
1)启动服务器:
System.setProperty("derby.system.home", "C:\\SI\\testDerby");
System.setProperty("derby.drda.traceDirectory", "C:\\SI\\trace");
System.setProperty("derby.drda.traceAll", "true");
System.setProperty("derby.drda.logConnections", "true");
System.setProperty("derby.connection.requireAuthentication", "false");
serverHandle = new NetworkServerControl();
// Write server console messages to system output
serverHandle.start(new PrintWriter(System.out));
Run Code Online (Sandbox Code Playgroud)
2)连接到DB
final String PORT = 1527;
String driver = "org.apache.derby.jdbc.ClientDriver";
String dbName = "myDB";
String connectionURL = "jdbc:derby:" + "//localhost:"
+ PORT + "/" + dbName + ";create=true";
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(connectionURL);
Statement stmt = conn.createStatement();
boolean success = stmt.execute("DROP TABLE USERS");
PreparedStatement statement = conn.prepareStatement("CREATE TABLE USERS (id BIGINT not null, …Run Code Online (Sandbox Code Playgroud) 我开发了一个JSP Web应用程序,在每次请求时都会生成一个新的Java Thread.在每个新生成的线程中,我使用Runtime.exec()创建一个Process,并将进程对象存储在线程中的实例变量中.我有一个要求,我必须杀死创建的子进程,并停止线程.所以,我在线程和overridden方法中覆盖了中断方法,我在实例变量中已经存储过的Process对象上调用了destroy().以下是代码:
public class MyThread extends Thread {
private Process subprocess;
@Override
public void run() {
subprocess = Runtime.getRuntime().exec("myprocess.exe");
subprocess.waitFor();
/*
Some more statements
*/
}
@Override
public void interrupt() {
if(subprocess!=null) {
System.out.println("Destroying Process");
subprocess.destroy();
}
super.interrupt();
}
}
Run Code Online (Sandbox Code Playgroud)
覆盖中断方法是不合法的吗?重要的是我在中断创建它的线程之前杀死创建的进程.我看到线程确实被中断,因为waitFor()之后的语句没有被执行.但是,destroy()不起作用(但被调用),即使我在完成之前调用interrupt()方法,创建的"myprocess.exe"也会完成执行.有人可以帮我解决这个问题吗?我错过了什么?
提前致谢