批处理 bat文件制作
@echo 1. 配置好环境变量后,运行
@set classpath=%classpath%;.;.\lib\*;
@set PATH=%JAVA_HOME%\bin;%PATH%;
@java -server -Xms256m -Xmx1024m ImportCVE
@if errorlevel 1 (
@echo ----------------------------------------------
@echo ****错误***: 请设置好JAVA_HOME环境变量再运行或者检查你的classpath路径
@pause
)
:end
java文件 (执行main方法)
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.Requests;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
public class ImportCVE {
public static Client getClient() {
return new TransportClient().addTransportAddress(new InetSocketTransportAddress("10.56.4.41", 9300));
}
//创建索引
public void createCVEIndex(String index,String type) throws IOException{
getClient().admin().indices().prepareCreate(index).execute().actionGet();
//索引主事件
XContentBuilder mapping = null;
mapping = XContentFactory.jsonBuilder()
.startObject()
.startObject(type)
// .startObject("settings").startObject("_source")
.startObject("_id").field("path","id").field("store", "yes").field("index", "not_analyzed").endObject()
.startObject("properties")
.startObject("name").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("status").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("description").field("type", "string").field("store", "no").endObject()
.startObject("references").field("type", "string").field("store", "no").endObject()
.startObject("phase").field("type", "string").field("store", "no").endObject()
.startObject("votes").field("type", "string").field("store", "no").endObject()
.startObject("comments").field("type", "string").field("store", "no").endObject()
.endObject()
.endObject()
.endObject();
PutMappingRequest mappingRequest = Requests.putMappingRequest(index).type(type).source(mapping);
getClient().admin().indices().putMapping(mappingRequest).actionGet();
// client.close();
}
public static String getValue(XSSFCell cell){
if(cell==null)
return "";
return cell.getStringCellValue();
}
private void saveToCVEIndex(String index, String type,File file) throws IOException {
InputStream is = new FileInputStream(file);
XSSFWorkbook hssfWorkbook = new XSSFWorkbook(is);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
XSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);
XSSFRow hssfRow;
XSSFCell xh;
// 第3个sheet
hssfSheet = hssfWorkbook.getSheetAt(0); // 每天上报数据
System.out.println("总行数"+hssfSheet.getLastRowNum());
// 分两部分, 前半部分 数据转换封装
Client cli= getClient();
BulkRequestBuilder bulkRequest = cli.prepareBulk();
int i = 0;
for (int rowNum = 0; rowNum <=hssfSheet.getLastRowNum(); rowNum++) {
// for (int rowNum = 10; rowNum <= 10000; rowNum++) {
hssfRow = hssfSheet.getRow(rowNum);
/* CommonVulnerabilitiesExposures commonVulnerabilitiesExposures=new CommonVulnerabilitiesExposures();
commonVulnerabilitiesExposures.setName(getValue(hssfRow.getCell(0)));
commonVulnerabilitiesExposures.setStatus(getValue(hssfRow.getCell(1)));
commonVulnerabilitiesExposures.setDescription(getValue(hssfRow.getCell(2)));
commonVulnerabilitiesExposures.setReferences(getValue(hssfRow.getCell(3)));
commonVulnerabilitiesExposures.setPhase(getValue(hssfRow.getCell(4)));
commonVulnerabilitiesExposures.setVotes(getValue(hssfRow.getCell(5)));
commonVulnerabilitiesExposures.setComments(getValue(hssfRow.getCell(6)));*/
Map<String, Object> o = new HashMap<String, Object>();
o.put("name", getValue(hssfRow.getCell(0)));
o.put("status",getValue(hssfRow.getCell(1)));
o.put("description",getValue(hssfRow.getCell(2)));
o.put("references",getValue(hssfRow.getCell(3)));
o.put("phase", getValue(hssfRow.getCell(4)));
o.put("votes", getValue(hssfRow.getCell(5)));
o.put("comments", getValue(hssfRow.getCell(6)));
bulkRequest.add(cli.prepareIndex(index,type)
.setSource(o));
//cli.prepareIndex(index,type).setSource(o).execute();
if(rowNum%1000==0|| rowNum == hssfSheet.getLastRowNum())
{
BulkResponse resp = bulkRequest.execute().actionGet();
System.out.println(rowNum+" "+resp);
cli.close();
cli=getClient();
bulkRequest = cli.prepareBulk();
}
}
}
public void deleteindex(String index){
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(index);
deleteIndexRequest.listenerThreaded(false);
getClient().admin().indices().delete(deleteIndexRequest);
}
public void deletedata(String index, String type){
DeleteResponse response = getClient().prepareDelete(index,type, "AVILx1OATt0HqWzvaooe")
.execute()
.actionGet();
}
public void createCVEIndexShijian(String index,String type) throws IOException{
getClient().admin().indices().prepareCreate(index).execute().actionGet();
//索引主事件
XContentBuilder mapping = null;
mapping = XContentFactory.jsonBuilder()
.startObject()
.startObject(type)
// .startObject("settings").startObject("_source")
.startObject("_id").field("path","id").field("store", "yes").field("index", "not_analyzed").endObject()
.startObject("properties")
.startObject("solution").field("type", "string").field("store", "no").endObject()
.startObject("description").field("type", "string").field("store", "no").endObject()
.startObject("keyword").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("eventname").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.endObject()
.endObject()
.endObject();
PutMappingRequest mappingRequest = Requests.putMappingRequest(index).type(type).source(mapping);
getClient().admin().indices().putMapping(mappingRequest).actionGet();
// client.close();
}
public static void main(String[] args) throws IOException {
Scanner s=new Scanner(System.in);
String name=s.next();
System.out.println("开始导入CVE数据");
//修改 es 地址
ImportCVE client = new ImportCVE();
String indexcve="cve";
// String indexeventbase="eventbase17";
//创建索引
//client.createCVEIndex(indexcve, indexcve);
//System.out.println("索引: "+indexcve +"已创建");
//eventbase
//client.createCVEIndexShijian(indexeventbase,indexeventbase);
//System.out.println("索引: "+indexeventbase +"已创建");
//导入数据
String fileName=name+".xlsx";
System.out.println(fileName);
File cvexlsx=new File(fileName);
// cvexlsx.createNewFile();
client.saveToCVEIndex(indexcve,indexcve,cvexlsx);
// client.deleteindex(indexcve);
//
// client.deleteindex(indexeventbase);
// client.createCVEIndex(index, type);
// client.deletedata(index, type);
System.out.println("导入CVE数据结束");
}
}
分享到:
相关推荐
本篇文章将深入探讨如何打包Java项目、如何处理第三方JAR包,并创建一个.bat批处理文件来简化运行流程。 1. **打包Java项目为JAR文件** 打包Java项目通常使用Maven或Gradle等构建工具。在Maven中,可以在pom.xml...
### Java Jar 包运行与 Bat 文件制作详解 #### 一、引言 在日常的软件开发过程中,我们经常需要将Java应用程序打包成可执行的jar文件,并通过命令行或者批处理脚本(bat文件)来运行这些应用。这种方式不仅便于...
制作Java程序的安装程序是另一个重要步骤,特别是对于大型应用。商业软件如InstallAnyWhere和InstallShield提供了强大的功能,但它们是付费的,学习曲线较陡峭。对于开源解决方案,IzPack是一个不错的选择,它可以...
综上所述,制作Java可运行程序涉及多个步骤,从理解JVM工作原理,到正确设置类路径,再到打包和运行JAR文件。掌握这些知识点将使你能够自信地发布和部署Java应用程序。同时,不断学习和实践是提升编程技能的关键,...
### Java 制作 BAT 文件可执行 JAR 的详细步骤与知识点 #### 一、导言 在实际开发过程中,为了方便部署和分发应用程序,常常需要将 Java 应用程序打包成 JAR 文件,并通过批处理(BAT)文件来启动。这种方式不仅...
5. **设置启动逻辑**:创建一个启动脚本或批处理文件,该文件用于检查系统是否已经安装了兼容的JRE。如果没有,先安装JRE,然后启动Java应用程序。 6. **测试与优化**:在多种操作系统环境下测试安装程序,确保其能...
开发者使用Java的编译器(javac)将源代码编译成字节码(.class文件),然后通过Java打包工具(jar)将这些字节码文件及相关的库文件打包成JAR,便于分发和运行。用户无需安装Java环境,只需在命令行中指定正确的...
制作Java可执行程序通常是为了便于用户在无需安装Java开发环境的情况下运行程序。本文将详细介绍三种创建Java可执行程序的方法,并重点讲解如何将Java程序转换为Windows下的.exe文件以及使用JSmooth和NativeJ这两个...
本文将深入讲解如何使用Ant来打包Java项目为jar文件,并进一步将其制作成bat批处理文件,以便于双击运行。 首先,我们需要了解Ant的基本概念。Ant是Apache软件基金会的一个项目,它的设计目标是提供一个可配置的、...
5. 运行生成的JAR文件,可以通过命令行或创建批处理文件(`.bat`)来实现。 请注意,不同的方法适用于不同的场景。对于小型项目,第一种方法可能足够;大型项目通常需要使用IDE或构建工具,以确保正确处理依赖和...
2. **制作批处理文件**:创建一个`.bat`文件,其中包含`javaw -jar %1`或`java -jar %1`命令,这里的`%1`代表被点击的JAR文件的完整路径。 通过这种方式,只需双击JAR文件即可直接启动应用程序,无需在命令行中手动...
运行时还要到控制台下去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。
在Java编程语言中,源代码(.java文件)经过编译后会生成对应的.class文件,这是Java虚拟机(JVM)可以直接运行的二进制代码。由于这些文件是机器可读的,对于普通用户来说,直接查看和修改它们是非常困难的。Q君的...
“run.bat”通常是一个批处理文件,用于在Windows操作系统上运行Java应用程序。它包含了启动Java虚拟机(JVM)并执行jar文件的命令,可能是这样的形式:“java -jar 名称.jar”。用户只需双击此bat文件,管理系统就...
在Windows操作系统中,Java程序通常以可执行JAR文件的形式运行。然而,为了实现Java程序在Windows开机时自动启动,并且在用户登录之前就已经运行,我们需要将其转化为一个Windows服务。这个过程涉及到Java程序的打包...
**JSmooth制作EXE文件** JSmooth是一款开源的Java应用程序,主要用于将Java的JAR文件转换为Windows平台下的可执行文件(EXE)。它为Java应用提供了一种便捷的方式,使其能在没有安装Java运行环境(JRE)的Windows...
4. **配置启动脚本**:为了让用户能够通过点击.exe文件启动Java Web应用,你需要编写一个启动脚本(通常是批处理文件或Windows服务)。这个脚本会调用JDK的Java命令,指定Resin服务器的位置,并部署Web应用到Resin。...
在Windows环境下,我们可以创建一个批处理文件(扩展名为`.bat`),包含启动Java应用程序的命令,例如`java -jar Snow.jar`,让用户只需双击批处理文件即可运行桌面飘雪程序。 程序的实现可能依赖于Java的图形用户...