OC4J介绍和使用

oracle下的oc4j配置 oracle下的oc4j配置 入门配置 立即下载
导读:

   什么是 OC4J 独立版?OC4J独立版是Oracle应用服务器产品家族的成员,包含J2EE和Web服务组件。OC4J独立版比完整的Oracle应用服务器产品稍小,下载以后只有一个ZIP文件。它作为单JAVA进程执行。OC4J独立版兼容于J2EE1.3,可用于开发和运行小规模产品。OC4J独立版提供了内嵌的HTTP/S监听器,允许客户端运行发布后的应用程序。OC4J独立版的应用程序发布与服务器的配置,需要手工编辑几个XML文件。大规模的企业级发布,Oracle应用服务器产品或许更适合于它,来适应广泛的企业级需求(而不是OC4J独立版),这样可以更好的进行程序控制和性能管理,以及配置、管理控制台。 那么 Oracle 独立版和在 Oracle 应用服务器之内的 OC4J 有什么重大不同之处? 在代码方面,构造OC4J独立版的单元集合与Oracle应用服务器之内的OC4J几乎一样。如果你在OC4J独立版中开发并发布一个应用程序,那么这个程序也可以在Oracle应用服务器上很好的运行。

  这两种环境的最主要的不同点是配置上的。Oracle应用服务器的OC4J被配置在运行于Oracle应用服务器环境中。意味着Oracle应用服务器类似于一个入口,这个入口是附加的特征,通过附加的类库提供支持。它在不同的端口之间监听连接(Oracle应用服务器动态平分),日志输出到不同的文件和目录,它的默认Web监听器使用mod_oc4j,能和AJP协议交流,胜于HTTP协议直接浏览客户端。

  另外一个不同在于控制和管理OC4J的方式。在Oracle应用服务器环境下,OC4J被配置为完整的应用程序服务器技术的一部分,使用Oracle企业级应用程序管理器控制,或者用等价的命令行工具,dcmctl。直接对XML配置文件操作并不是首选方案,尽管也能完成配置。应用程序发布也使用Oracle企业级应用程序管理器操作,或用命令行工具。Oracle应用服务器的OC4J启动和停止也通过以上同样的控制台操作,并能作为Oracle应用服务器实例的一部分,可配置成自动管理。

  与之相反,对OC4J独立版的操作、发布以及管理工作很大程度上依赖手工编辑XML文件。命令行工具不适用于OC4J独立版。admin.jar,能够利用一组命令把多个任务执行完,但不能将这些命令适用于Oracle应用服务器环境。

  关于更多的Oracle应用服务器OC4J配置信息以及命令行工具dcmctl方面的操作,请参考OC4J独立版用户指南。

  关于更多的OC4J独立版配置信息以及命令行工具admin.jar方面的操作,请参考OC4J独立版用户指南。 在哪里能看到 OC4J 的文档? 所有Oracle产品的相关文档都能在OTN网站上找到http://otn.oracle.com/documentation/content.html。更加详细的OC4J文档在。OC4J独立版用户指南在OC4J大类中提供。Readme.txt文件在OC4J独立版的根目录,提供了一些关于安装和使用的基本信息。 在哪里能找到关于 OC4J 性能的列表? 得到OC4J技术信息最好的地方是在OTN上的OC4J技术专区http://otn.oracle.com/tech/java/oc4j。OC4J的特性总览在http://otn.oracle.com/tech/java/oc4j/904/collateral/OC4J-FOV-904.html,列举了OC4J 10g (9.0.4)的所有特点。 在哪里可以得到更多关于 OC4J 的信息? 呵呵,说来说去还是OTN网站。 安装 Oracle 独立版需要怎样做? 安装Oracle独立版,需要解压缩oc4j_extended.zip文件。 会创建这样的目录结构: /bin /j2ee /javacache /javavm /jdbc /jdk /jlib /lib /rdbms /soap /sqlj /webservices 就是你解压缩oc4j_extended.zip后所产生的目录。

  完整安装OC4J,需要切换到j2ee/home目录,用以下命令: >cd /j2ee/home >java -jar oc4j.jar -install /j2ee/home目录作为提交。 安装会提示你输入和验证管理员密码,以便使用控制台命令行工具,管理员用户名默认为“admin”。

  一系列的指令包含在Readme.txt文件中,它跟随OC4J独立版一起发布。

   怎样启动 OC4J 独立版? 启动OC4J服务器,首先要用DOS命令切换到J2EE_HOME目录,然后:

  a)根据j2ee/home/config目录下的默认配置文件启动OC4J: >cd >java -jar oc4j.jar b)根据自定义的server.xml文件启动OC4J(在/mypath中): >cd >java -jar oc4j.jar -config /mypath/server.xml 当服务器启动以后,将会出现初始化信息,包括版本号等信息,例如: Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized 怎样停止 OC4J 独立版? 在OC4J进程窗口中按下^c(Ctrl+c)就可以停止它了,或者使用在admin.jar命令行工具中的停止命令,或者使用操作系统的进程终止命令(例如UNIX/Linux“kill”)。

   怎样使用 admin.jar 命令行工具停止 OC4J 呢? 用admin.jar停止OC4J,需要按如下的方法: >cd >java -jar admin.jar ormi://: -shutdown 这个命令是一个完美的关闭OC4J的方法。如果OC4J还没有被关闭,你就需要用-force参数强行关闭了: >java -jar admin.jar ormi://: -shutdown force 更多信息请参考OC4J独立版用户手册。

   OC4J 的 HTTP 默认端口是什么? OC4J独立版的默认HTTP端口是8888。指定的配置文件是/config/http-web-site.xml。如果你已经安装了Oracle应用服务器,而现在想用OC4J独立版来代替,你必须通过Oracle HTTP服务器访问发布在OC4J上面的Web应用程序。Oracle HTTP服务器的默认端口是7777。 如何部署一个应用程序? 首先将要部署的应用程序包上传到指定的路径下,以121(125.157.13.121)服务器为例,其OC4J的安装路径是opt/oracle/j2ee/home/,把应用程序包放到applications文件夹下;然后在config文件夹下打开application.xml和http-web-site.xml文件,在application.xml文件中增加,在http-web-site.xml文件里增加,这样,OC4J服务器就可以自动的部署night.war这个应用程序了。然后通过http://125.157.13.121:8888/night/index.do就可以访问night这个业务。另外,如果想重新部署night.war,首先要把applications文件夹下的night/ 和 night.war都删除掉,然后重新上传night.war。在更改一下application.xml文件(只要在这个文件里做一下任何改动都可以,例如增加个空格),更新application.xml,这样OC4J才能重新部署night.war包。

  Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论



本文转自

http://www.xxlinux.com/linux/article/development/database/20060907/4053.html
oracle的oc4j自动部署脚本解决方案 NULL 博文链接:https://sambafeng.iteye.com/blog/777777 立即下载

相关推荐

芯片测试中的DC与AC模式详解:如何选择最适合你的测试方案?

本文深入解析了芯片测试中DC(直流)与AC(交流)模式的核心差异与互补性。DC测试关注静态电气特性,如固定型故障;而AC测试则聚焦于芯片在额定工作速度下的动态时序行为。文章从VLSI设计、电路模块、成本约束、可测试性设计和应用场景五大维度,提供了如何根据工艺节点、工作频率及具体需求,在testMode配置、时钟复位策略和输入输出接口设计中,平衡两种测试模式以制定最优方案的决策框架。

bb456的博客 1086

OC4J Web容器

主要了解OC4J(Oracle Application Server Containers for J2EE)概念、作用、安装、启动及配置和部署应用程序。

黄瓜与萝卜 5172

Keil5安装包别乱下!手把手教你从官网精准下载C51/V960和MDK5,并完成2032年有效注册(避坑网络资源失效)

本文详细介绍了如何从Keil官网安全下载C51 V9.60和MDK5开发环境,并提供2032年有效注册的完整指南。通过验证安装包完整性、自定义安装路径和长期激活方案,帮助开发者避开网络资源陷阱,搭建稳定的STM32开发环境。

weixin_26886855的博客 532

OC4J独立服务器的安装与设置

   最近学习了一下OC4J, 在此简要地把其安装设置记录下来.        1, 先去Oracle下载一个OC4J, 我用的是10.1.3.3.0        2, 解压缩后, 更名为 OC4J_101330 放至D:下        3, Run cmd, 进入OC4J_101330/J2EE/HOME子目录,            执行 java -jar oc4j.jar -insta

DragonBill的专栏 2470

告别混乱!用Cadence Capture CIS高效管理你的原理图库:以单逻辑器件K9F2G08U0M为例

本文以单逻辑器件K9F2G08U0M为例,详细介绍了如何使用Cadence Capture CIS高效管理原理图库。通过三级分类体系、工程化命名规范和智能检索技术,帮助工程师实现从混乱到有序的转变,提升团队协作效率和设计准确性。

aizhi0169的博客 400

手把手教你做基于stm32的红外、语音、按键智能灯光控制(上)

这次项目使用的板子是stm32f103c8t6最小系统板,这个板子在tb上都能够买到,随便一个最小系统板都可以,== 注意在买最小系统板的时候需要买一个stlink下载器来下载程序。显示模块是使用的0.96英寸的OLED屏幕,注意是使用的IIC通信协议的OLED屏幕,不是使用SPI总线协议的。这次写的代码还顺便集成了检测温湿度的功能,所以要使用DHT11温湿度传感器,来采集温度。本文所设计的基于单片机的灯光控制系统主要由模式选择功能、手动模式和自动模式组成。LED灯自然就是要控制的部件了。

nbbskk的博客 6557

OC4J独立版概述

OC4J(Oracle Containers for JavaEE)是Oracle应用服务器的JavaEE运行时核心组件。而OC4J有两种部署方式: 独立版:是一个快速、轻量、易用和高可伸缩的应用服务器,只能做单独运行的环境,不能替代的oracle应用服务器中内置的OC4J。在oracle官网上以zip的方式提供下载,下载后解压并设置环境变量即可启动运行。 托管版:是or...

weixin_34306446的博客 226

【nerfStudio】1-在windows上安装nerfStudio

安装Git。安装Visual Studio 2022。在安装CUDA之前必须完成此步骤。必须在“桌面开发与C++”工作流程(在BuildTools版本中称为“C++构建工具”)中包含所需的组件。Nerfstudio要求。我们建议使用conda来管理依赖关系。在继续之前,请确保安装了Conda。 依赖关系 PyTorch 请注意,如果安装了低于2.0.1的PyTorch版本,则应卸载先前版本的pytorch、functorch和tiny-cuda-nn。 基于CUDA 11.8的Torch 2.0.1 安装基

dlhlSC的博客 1692

OC4J

1.OC4J(Oracle Components for java 2 Enterprise Edition) 是 Oracle 用于Java的运行时环境,它通常被装载为Application Server的一部分。  2.一个OC4J进程只能支持一个Database Console进程 管理一个数据库。

为天加朵云... 1317

【温室气体】GOSAT 数据产品

【温室气体】GOSAT 数据产品

WW、forever的博客 238

PyTorch实战(20)——生成对抗网络(Generative Adversarial Network,GAN)

自生成对抗网络 (Generative Adversarial Network, GAN) 提出以来,一直是一个活跃的研究和开发领域。本节探索了 GAN 的基本概念,重点解析了其两大核心组件——生成器与判别器的架构设计,深入阐述了 GAN 模型的整体工作机制,并使用 PyTorch 从零开始实现了深度卷积生成对抗网络 (Deep Convolutional GAN, DCGAN)。

盼小辉丶的博客 3542

什么是OC4J

OC4J独立版是Oracle应用服务器产品家族的成员,包含J2EE和Web服务组件。OC4J独立版比完整的Oracle应用服务器产品稍小,下载以后只有一个ZIP文件。它作为单JAVA进程执行。

512

【LLC快速上手系列】LLC轻载时,死区时间怎么调才对?别再傻傻乱搞了!

死区时间,就是指。如果你死区设得好,就能让开通前 ( V_DS to 0 ),完美实现!

weixin_43199439的博客 1856

用OC4J和Axis构建Web Services

作者:曾巧(numenzq)等级:初级 本文介绍了用OC4J和Axis构建Web服务,主要是用OC4J实现服务端,而用Axis实现客户端。 版本说明l         JDK:1.4.2_08l         OC4J:10.1.3.0.0l         Axis:1.4l         Ant:1.6.2(OC4J自带) OC4J简介Ora

2506

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 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")

oracle和oc4j下载链接

http://download.oracle.com/otn/java/oc4j/1012/oc4j_extended.ziphttp://download.oracle.com/otn/nt/oracle10g/10g_win32_db.zip

冰灯咖啡屋 2238

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RAC 开启gsd和oc4j服务

Oracle 11g RAC中,发现oc4j以及gsd服务都处于offline状态,这是Oracle 11g RAC默认情形。即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用。GSD则是用于支持dbca,srvctl,oem等的交互工具。本文描述将这两个服务切换到online。SQL> select * from v$version;B

岁伏 990

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

关于oc4j在加载和关闭时的处理class

http://download.oracle.com/docs/cd/B25221_04/web.1013/b14433/startclas.htm   2 Developing Startup and Shutdown Classes This chapter provides guidelines on developing startup and shutdown classes that ...

happyforever82 247

OC4J与Hibernate和XFire整合问题

一个在其他应用服务器上运行得好好的应用程序,放到OC4J上来就一大堆问题,相信许多使用OC4J的用户都有此感受。在应用服务器的转换过程中,通常都会出现很多问题,而OC4J则是出现问题的佼佼者。如果你在应用程序中使用了Hibernate和XFire,并且在tomcat上跑得非常正常,而转到OC4J上来的时候,出现一大堆问题,那很可能就与OC4J类加载有关系。这时,你在发布项目到OC4J上的时候,

kuangxinping的专栏 971

rac 11gR2中 gsd 和 oc4j默认offline的解释

如下是安装完成11gR2rac之后查看crs状态的结果: [oracle@rac1 ~]$ crs_stat -t Name           Type           Target    State     Host         ------------------------------------------------------------ ora.DATA.dg

changyanmanman的专栏 2674

如何处理11gR2 RAC下oc4j和gsd服务为OFFLINE状态

安装完RAC后oc4j和gsd这两类服务处于OFFLINE状态: 即便如此,并不影响数据库的使用,因为 oc4j 是用于WLM 的一个资源, WLM在 11.2.0.2 才可用。GSD则是用于支持...

cowdeowfq707347470的博客 226

如何处理11gR2 RAC下oc4j和gsd服务为OFFLINE状态?

摘自:

无心人的终点 1947

ORACLE RAC中的oc4j和gsd资源以及RAC相关的进程

1.RAC相比单实例数据库多出的进程: LMS - Gobal Cache Service Process 全局缓存服务进程 LMD - Global Enqueue Service Daemon 全局查询服务守护进程 LMON - Global Enqueue Service Monitor全局查询服务监视进程 LCK0 - Instance Enqueue Process 实例查询进程 D...

weixin_33908217的博客 415
上一篇: normal、sysdba、sysoper不同身份登陆oracle的区别理解
下一篇: Ziddu - 能帮你赚美元的无限空间免费网络硬盘
Xviewee
博客等级 码龄20年 78粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值