private static void saveProcessID(String svrName, String runDir) { Log.info("Server Name is " + svrName + " Run Dir is " + runDir); RuntimeMXBean rt = ManagementFactory.getRuntimeMXBean(); String pid = rt.getName(); if (Log.loggingDebug) { Log.info("PROCESS ID IS " + pid); Log.info("server name is " + svrName); } try { if (runDir != null) { File outFile = new File(runDir + "\\" + svrName + ".bat"); PrintWriter out = new PrintWriter(new FileWriter(outFile)); out.println("set pid=" + pid.substring(0, pid.indexOf("@"))); out.close(); } } catch (IOException e) { Log.exception("saveProcessID caught exception", e); } }
@Override public void run() { try { if (!picDirectory.exists()) picDirectory.mkdirs(); File csvPath = csvFile.getParentFile(); if ((csvPath != null) && !csvPath.exists()) csvPath.mkdirs(); PrintWriter csvWrite = new PrintWriter(csvFile); for (int i = 0; i < id.length; i++) { progressBar.setValue(i * 100 / id.length); csvWrite.print("'" + id[i] + "'"); Detail info = new Detail(frame.database, id[i]); for (int x = 0; x < 7; x++) for (int y = 0; y < 7; y++) { String data = info.get(List.COLUMN_NAME[x][y]); switch (List.COLUMN_TYPE[x][y]) { case 1: data = "'" + data + "'"; break; case 2: if (data == null) data = "null"; break; case 3: if (data == null) data = "0000-00-00"; data = "'" + data + "'"; break; case 4: data = "'" + data + "'"; } csvWrite.print("," + data); } csvWrite.println(); String picAddress = info.get("pic"); info.close(); if (picAddress.length() == 32) { ReadableByteChannel url = Channels.newChannel( new URL( "http://" + Configure.webserverAddress + "/" + Configure.picDirectory + picAddress.substring(0, picAddress.length() - 5) + "/" + picAddress.substring(picAddress.length() - 5) + ".jpg") .openStream()); FileOutputStream outStream = new FileOutputStream(picDirectory.getPath() + "/" + id[i] + ".jpg"); FileChannel out = outStream.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(10000); while (url.read(buffer) != -1) { buffer.flip(); out.write(buffer); buffer.clear(); } out.close(); outStream.close(); url.close(); } } csvWrite.close(); progressBar.setValue(100); finish(); } catch (Exception e) { JOptionPane.showMessageDialog(Port.this, "导出失败!", "错误", JOptionPane.ERROR_MESSAGE); dispose(); } }