通过批处理来启动java jar程序

[JAVA]利用bat将jar转变成一个可执行文件exe 如何简单利用bat和一句简单的C语言让你的jar文件伪装成一个exe文件,在windows下肆意运行。 阅读详情

通过批处理来启动java jar程序

版权声明:转载请注明出处。 https://blog.youkuaiyun.com/tiantang_1986/article/details/50827423

我们很多功能都可能需要做成一个程序来启动,启动方式无非就是在命令行敲上:java -jar xxx.jar [参数1,参数2] 。这样虽然比较简单,但是还是有些不方便的地方。

接下来跟大家讲讲怎么样通过写批出来脚本来实习jar程序的启动。

首先,我们需要自己的jar包及它的依赖jar包,假如放在lib目录下,配置文件conf.properties在conf目录下,然后我们的启动脚本放在bin目录下。

接下来就是编写我们的脚本,假设这个脚本取名叫 start.bat :

 

@echo off
set BASE_HOME=%cd%\..
set JAVA="Z:\base\tools\JDK\jdk7_71\bin\java.exe"
set JAVA_OPTS=-Xmx512m
set CONF="%BASE_HOME%\conf\conf.properties"

if not exist "%BASE_HOME%\lib\Application*.jar" (
@echo "配置的Application路径不正确"
@pause
exit
)
if not exist %JAVA% (
@echo "没有找到JDK,请安装JDK1.6-64位"
@pause
exit
)
if not exist %CONF% (
@echo "没有找到conf.properties"
@pause
exit
)

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

%JAVA% %JAVA_OPTS% -Dlog4j.configuration=file:///%BASE_HOME%/conf/log4j.properties -cp "%BASE_HOME%\lib\*"  -Dconfig.path=%CONF% com.mysite.kafka.KafkaConsumer


这样通过简单的一些判断来实现对环境的检测,如果环境满足,则继续运行。

 

我们的jar包使用到了log4j的配置,参数传递的方式是通过 -D,java内部获取这个参数可以通过System.getProperty("config.path") 来获取,如果不是通过 -D的方式,直接传入,像这样:-config.path=xxx ,则在代码里面获取的方式是 通过main方法的args数组参数来获取。

接着就是我们的主类了 com.mysite.kafka.KafkaConsumer 。这里需要注意的是,-D传参数应该放到主类前面,直接传则放到主类后面。

 

@echo off
if "%1" == "h" goto begin
rem mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

 

 


 

 

这一段代码是让脚本能后台运行,如果你只需要前台运行的话,则可注释掉第三句。使用 rem 注释,像这样:

 

rem mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit


然后我们双击这个脚本即可启动程序,如果我们的软件包换了目录,完全不需要修改,而且这个脚本只需要稍微的修改一下即可用到别的地方,是不是很方便。

 

其实我们掌握了规律,知道一个jar程序启动需要哪些东西,也可以很快的把shell脚本写出来。

例如:

 

nohup /home/jst/jdk1.7.0_71/bin/java -Xmx512m -Dlog4j.configuration=file:/home/Application/conf/log4j.properties -Dconfig.path=../conf/conf.properties -cp "../lib/*" com.mysite.kafka.KafkaConsumer > /dev/null 2>&1 &

 

 

这里使用nohup来启动,可以让jar程序在后台启动,如果需要前台只需要简单的修改一下启动命令即可,就像这样:

 

/home/jst/jdk1.7.0_71/bin/java -Xmx512m -Dlog4j.configuration=file:/home/Application/conf/log4j.properties -Dconfig.path=../conf/conf.properties -cp "../lib/*" com.mysite.kafka.KafkaConsumer


这里的-cp 指的是-classpath 你也可以写全名,来指定jar包、依赖jar包的路径,使它们能够加载到JVM去运行。

 

好了就讲到这里。
 

 

window启动Java程序以及停止程序bat文件 window系统服务器,java程序快捷启动的脚本书写介绍 阅读详情

相关推荐

Unity 2022.3.3 LTS + Visual Studio 2022:手把手教你复刻《吸血鬼幸存者》核心战斗(附完整项目源码)

本文详细介绍了如何使用Unity 2022.3.3 LTS和Visual Studio 2022从零构建《吸血鬼幸存者》式战斗系统。通过图文开发教程,涵盖对象池优化、ECS架构雏形、2D物理碰撞控制等关键技术,帮助开发者高效复刻这款热门游戏的自动攻击与海量刷怪机制。

weixin_30721077的博客 458

利用批处理命令执行.jar文件

利用批处理命令执行.jar文件 1.创建.jar文件(此处为一个java项目,主函数里只有一条语句System.out.println(“请输入一个字符串:”);) 2.创建批处理文件(后缀名.bat) 目录结构:批处理文件中的启动代码及结果(执行方法:双击.bat文件)解释: @echo off 关闭回显@echo on 打开回显@echo off并不是DOS程序中的, 而是DOS批

heping_csdn的博客 6540

西南交通大学车辆工程专业大四上车辆综合实训ame仿真部分

西南交通大学车辆工程专业大四上车辆综合实训ame仿真建模部分

qq_64814052的博客 1245

Windows编写批处理脚本.bat启动jar文件

Java代码中统一编码为UTF8,打包成Jar通过CMD运行,都会出现中文字符串为GBK问题。根源——cmd/bash默认的编码是GBK。最好也要规定执行java时的编码方式,把jvm的读写文件、也就是流的编码设置为utf-8。@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)打开cmd,输入以下命令:chcp 65001 更改cmd的编码为UTF-8。echo off 表示在此语句后所有运行的命令都不显示命令行本身。echo 表示将内容输出到窗口。

OuNuo5280的博客 4652

人形机器人五大核心零部件技术解析与国产化实况

人形机器人并非简单机械集成,而是物理、能量、感知、决策与执行五层系统毫秒级协同的复杂体。其性能瓶颈往往不在于整机算法,而深植于谐波减速器的刚度稳定性、无框力矩电机的功率密度与温升控制、六维力传感器的动态响应与温漂抑制、运动控制器的实时OS生态及灵巧手的多指协同精度等底层硬件能力。这些部件共同构成整机68.3%的成本,且国产化率差异显著——谐波减速器达72%,而高精度力矩传感器仍受制于日德厂商。本文聚焦‘谐波减速器’和‘六维力传感器’两大热词,从材料工艺、参数定义、失效模式到产线验证,揭示真正卡脖子的技术关卡

weixin_29065959的博客 406

用逐飞STC32G库做个智能小车:编码器测速、PWM调电机、ADC读电池电压(完整项目)

本文详细介绍了如何使用逐飞科技的STC32G12K128开源库构建智能小车项目,涵盖编码器测速、PWM电机控制和电池电压监测等核心功能。通过硬件选型、开发环境搭建、代码实现及调试技巧的全流程讲解,帮助开发者快速掌握基于STC32G的嵌入式系统开发,实现高性能的智能小车控制。

weixin_42526417的博客 194

Windows中bat文件启动jar、exe、cmd等文件

因为我们的reids启动文件不和bat文件同级,所以先通过/d "D:\Java\redis"进入到文件夹中在指定启动文件即可启动。同样因为nacos的启动文件不和bat文件同级,也要通过/d 进入到对应的启动文件夹中 在启动startup.cmd文件。随着组件的增多、每次启动都要找到位置写一遍命令十分的费劲、麻烦。第一个zipkin为小黑框的名称。第二个是启动jar包的命令。

weixin_60974823的博客 8102

yolo自动化项目实例解析(九) 导航

比如我们经常使用的导航,说白了就是寻找两点之间最近的路径,也就是所谓的寻路,我们需要想办法让程序知道他要去哪里,路径包含(起点、轨迹、路径)

默子昂 1996

批处理启动JAVA程序(多JAR包)

JavaJVMF# . 直接给出代码吧,下面是我自己为一个端口映射程序写的启动程序。 Batch代码 1.@echo off 2.title Alon 平台-端口映射 3.rem 设置延迟环境变量扩充,即感叹号间的值不会因跳出循环而为空值。 4.setlocal enabledelayedexpansion 5.rem java命令 6.se...

mno2330的博客 785

高精度磁力计RM3100 传感器LR振荡电路偏置电路分析

LR振荡器电路通过正向和反向偏置实现磁场测量。Sen-XY-f/Z-f传感器线圈作为电感元件构成LR弛张振荡电路,其振荡频率随磁场变化而改变。测量时,线圈一端接地,另一端交替通入正反向电流,通过两次偏置测量消除电路自身磁场干扰,仅保留外部磁场影响。MagI2C芯片通过高速时钟测量振荡次数和时间差,计算磁场强度。该设计具有抗干扰强、数字化输出和高分辨率等优势,是RM3100传感器高精度磁测量的核心原理。

bother3000的博客 1135

Hermes Agent 彩蛋大盘点:藏在终端里的浪漫

本文主要介绍了Hermes Agent 彩蛋大盘点:藏在终端里的浪漫,希望能对使用Hermes Agent的同学们有所帮助。 文章目录 1. 前言 2. Spinner 动画 3. Kawaii 表情 4. 思考动词 THINKING_VERBS 5. 皮肤主题 6. 启动 Banner 7. 工具 Emoji 8. 内置人格 9. SOUL.md —— Agent 的灵魂 10. BOOT.md —— 启动自动执行 11. 随机 Tips 12. 统计总览

weixin_43178406的博客 7万+

bat启动java_bat 批处理 启动java程序 jar

操作步骤1、新建一个文件夹xxx,将要执行java程序(可使用eclipse导出的可执行的jar包)拷贝到该文件夹中;2、将jdk中jre文件夹拷贝到要执行的java程序所在的文件夹;3、在java程序所在的文件夹中新建一个bat文件。bat文件样例:样例一:@echo offset PATH=.;%CD%\xxx\jre\binset CLASSPATH=.start java.exe -jar...

weixin_28890693的博客 2697

计算机组成原理(第三版)唐朔飞-第八章CPU的结构和功能-课后习题

8.1CPU有哪些功能?画出其结构框图并简要说明每个部件的作用。

weixin_45735391的博客 6万+

win10环境中设置java开机自启动

在开始设置Java开机启动之前,确保你的计算机已经安装了Java开发环境(JDK)。如果没有安装,你可以从Oracle官方网站下载并安装最新的Java开发工具包。

ldcaws的专栏 3025

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java项目自启动方案——jar包做成服务(Windows版本)

需求: 公司做的很多项目都是属于客户端—服务器形式,在客户端部分运行了属于面向客户的项目jar包,客户端机器就不想服务器那样,经常会避免重启机器的情况,所有让我们的项目能自启动就是个必须的工作。 方案: 1、用.bat脚本,并将脚本文件生成快捷方式,放置在电脑的启动目录下 打开目录快捷键:win+R 输入 shell:startup 2、做成服务(推荐使用这个),电脑重启 服务也会重启 具体方法: 1、.bat脚本文件启动jar包 新建一个文本,编辑内容示例如下,修改文本文件保存格式为.bat, echo

qiaodaima0的博客 3万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

bat批处理命令运行jar包

在Windows操作系统中,当你通过批处理文件(.bat文件)运行一个Java应用程序(打包为jar文件)时,默认情况下,命令行窗口(即黑窗口)会保持开启状态,直到你的Java应用程序执行完毕。如果你希望在应用程序执行完毕后自动关闭这个黑窗口,你可以使用以下几种方法之一来实现。

Napster的专栏 489

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java程序运行jar包,或者转exe可执行程序总结

1.input中的text赋值。 正确: $("#tbbmIispId").textbox("setValue",132); 错误 $("#tbbmIispId").attr("value",2112);或$("#tbbmIispId").val(2112);显示没有修改到

qq_23490959的博客 391

用网页打开本地jar程序

之前写过一篇用网页打开本地exe程序的文章,可惜后来项目又有新的变动,有个老师的程序是本地jar的形式。 于是老师要求我用本地打开jar包,于是,再写一篇关于网页打开jar包的文章 用网页打开本地exe程序的文章链接点击打开链接 接下来介绍: 在放jar包的目录下,新建一个.bat文件 .bat文件的内容如图所示。 记得一定要cd到 放置.bat文件的上一级目录。

h4329201的博客 2107

Java软件用 exe 启动

最近,给公司做一个软件,软件启动时,后缀是个jar,想 改成exe,用一个exe文件启动jar文件。 在网上找了资料,有好多这样的工具,例如JavaLaucher,还有一个忘记了,但试了下,(可能我自己不会设置), 都不行。后自己在VC2010写了一个对话框程序,在这个程序里,启动一个bat批处理文件,在bat文件里再启动 jar文件, 最后试验成功。 即java写的软件用exe启动

achirandliu的专栏 703

使用命令行方式或者批处理方式启动java程序

首先,将java程序打成jar包,比如打成test.jar 其次,如果使用命令行方式启动jar包,则先打开命令行窗口,进入到test.jar所在目录,输入java -jar test.jar 回车,即可运行。            如果程序的入口参数使用main方法的args[]进行传递:则可以写成java -jar test.jar   参数1   参数2   参数n 回车运行,注意各参数用

真理孤独的专栏 4427

运行Java程序批处理bat

---bat文件内容--- @echo on set JAVA_HOME=C:\jdk1.5 set classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;要引用的包的路径 set path=C:\jdk1.5\bin java com.javapackage.webService.Server  pause -

Benjamin 966

java程序jar包通过实现.bat文件实现Windows设置开机自动启动

1.找到启动文件夹,我的是C:\Users\WB\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup,或者打开运行,输入shell:startup,回车,也可以快速打开启动文件夹。2.拷贝需要开机启动的程序的快捷方式到此文件夹即可。

PcZxq的博客 1810

应用程序打包jar后实现随系统开机启动

<br />我们写好的应用程序打包后,怎么让它随系统启动就运行呢?最简单最绿色的方法是把jar包拷贝到开始菜单中的“启动”文件夹下,这样系统启动后程序就可以自动运行了。一般软件中选项设置有“随系统启动”这一项,拷贝的工作肯定由代码实现了。但是jar包路径如果动态的改变了那就有点麻烦了,那得必须获取动态的jar包路径信息。 <br />下面的代码可以简单的实现程序随系统启动...<br /><br /><br /> private final static String DIR = "C://Document

liujun2005_2010的专栏 587

将java程序打成jar包

1.将要打包的程序放在一个项目下,右键项目——>Export——>Runnable JAR file ——>Next——> Finish即可 2.建立一个文本文档和jar包放在同一级目录下,写上 java -jar jar包名.jar(jar包名是自己打jar包时命名的)。 将后缀txt改成bat 3.双击bat文件可以运行jar包。 ...

qq_44985985的博客 916
上一篇: 小议socket关闭
下一篇: X86汇编语言学习手记(1)
TuxedoLinux
博客等级 码龄9年 268粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值