PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/usr/share/zsh/5.5.1/functions/
Upload File :
Current File : //usr/share/zsh/5.5.1/functions/_java
#compdef javac java javadoc appletviewer jar jdb javah javap extcheck rmic rmiregistry rmid serialver native2ascii keytool jarsigner policytool

local expl tmp jdb_args jar_cmd match basedir ret=1
local curcontext="$curcontext" state line jf
typeset -A opt_args tmpassoc

jdb_args=()

case "$service" in
javac|jar)
  if compset -P @; then
    _wanted files expl 'option file' _files
    return
  fi
  ;| # continue
javac)
  _arguments -C \
    '-g-[generate debugging information]:debug:->debug' \
    '-A-[specify option to annotation processors]:option' \
    '-implicit\:-[control generation of class files for implicitly loaded sources]:implicit:(class none)' \
    '-nowarn[generate no warnings]' \
    '-verbose[output messages about what the compiler is doing]' \
    '-deprecation[output source locations where deprecated APIs are used]' \
    '(-cp -classpath)'{-cp,-classpath}'[specify where to find user class files]:class path:->classpath' \
    '-sourcepath[specify where to find input source files]:source path:->sourcepath' \
    '-bootclasspath[override location of bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
    '-extdirs[override location of installed extensions]:extensions directories:->extdirs' \
    '-d[specify where to place generated class files]:directory:_files -/' \
    '-encoding[specify character encoding used by source files]:encoding:->encoding' \
    '-proc\:-[control annotation processing]:annotation processing:(none only)' \
    '-processor[specify annotation processors to run]:class:_files' \
    '-processorpath[specify where to find annotation processors]:directory:_directories' \
    '-s[specify directory for generated source files]:directory:_directories' \
    '-source[provide source compatibility with specified release]:release:(1.{2..8} {5..8})' \
    '-target[specify VM version]:release:(1.{1..5})' \
    '(-)-help[print a synopsis of standard options]' \
    '(-)-version[print version information]' \
    '(-)-X[display information about non-standard options]' \
    '*:java source file:_files -g \*.java\(-.\)' && return 0
  ;;

jdb)
  jdb_args=(
    '-host[specify host to connect to]:host:_hosts'
    '-password[specify password]:password'
    '-attach[attach to running VM]:address'
    '-listen[wait for VM to connect]:address'
    '-listenany[wait for VM to connect at any available address]'
    '-launch[launch VM immediately]'
    '-listconnectors[list the connectors available in this VM]'
    '-connect[connect to target VM]:connector'
    -dbgtrace -tclient -tserver
    '-J-[java runtime option]:option'
  )
  ;&

java)
  _arguments -C \
    "$jdb_args[@]" \
    -client -server -d32 -d64 \
    '-agentlib\:-:agent library' \
    '-agentpath\:-:path:_directories' \
    '-javaagent\:-:path:_directories' \
    '(-cp -classpath)'{-cp,-classpath}'[specify path for user class files]:class path:->classpath' \
    '-D-[specify a property]:property:->property' \
    \*{-enableassertions,-ea}-::class \
    \*{-disableassertions,-da}-::class \
    '(-enablesystemassertions -esa -disablesystemassertions -dsa)'{-enablesystemassertions,-esa,-disablesystemassertions,-dsa} \
    '(-verbose:class)-verbose[print class information]' \
    '(-verbose)-verbose\:class[print class information]' \
    '-verbose\:gc[print gc information]' \
    '-verbose\:jni[print JNI information]' \
    '(- 1)-version[print version]' \
    '-showversion[print version and continue]' \
    '(- 1)-'{\?,help}'[print help message]' \
    '(- 1)-X-[non-standard java option]:option' \
    '(- 1)-jar[specify a program encapsulated as jar]:jar:_files -g \*.jar\(-.\)' \
    '(-):class:_java_class -m main ${(kv)opt_args[(i)(-classpath|-cp)]}' \
    '*::args:= _normal' \
     && return 0
  ;;

javadoc)
  _arguments -C \
    '-overview[specify overview file]:_files' \
    '-public[display public classes and members only]' \
    '-protected[display public/protected classes and members only (default)]' \
    '-package[display packages, public/protected classes and members only]' \
    '-private[display all classes and members]' \
    '-help[print help message]' \
    '-doclet[specify a doclet]:doclet:_java_class -t doclet ${(kv)opt_args[(i)-classpath]}' \
    '-docletpath[specify a path to search doclet]:doclet path:->docletpath' \
    '-1.1[Javadoc 1.1 compatible output]' \
    '-sourcepath[specify path for source files]:source path:->sourcepath' \
    '-classpath[specify path for user class files]:class path:->classpath' \
    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
    '-extdirs[specify directories for extensions]:extensions directories:->extdirs' \
    '-verbose[print verbose messages]' \
    '-locale[specify locale]:language_country_variant:' \
    '-encoding[specify character encoding for source files]:encoding:->encoding' \
    '-J-[specify java option]:java option:' \
    '-d[specify destination directory]:destination directory:_files -/' \
    '-use[display pages for use]' \
    '-version[include @version text]' \
    '-author[include @author text]' \
    '-splitindex[split index file for each alphabet]' \
    '-windowtitle[specify HTML title element]:title element:' \
    '-doctitle[specify title]:document title:' \
    '-header[specify header text]:header text:' \
    '-footer[specify footer text]:footer text:' \
    '-bottom[specify bottom text]:bottom text:' \
    '-link[generate a link to external reference classes]:document URL:' \
    '-linkoffline[generate a link for external reference class names]:document URL::package list URL:' \
    '-group[generate tables for each groupes]:group heading::package patterns:' \
    '-nodeprecated[do not document deprecated API]' \
    '-nodeprecatedlist[do not generate deprecated API list]' \
    '-notree[do not generate class and interface hierarchy]' \
    '-noindex[do not generate index]' \
    '-nohelp[do not generate help link]' \
    '-nonavbar[do not generate navigation bar]' \
    '-helpfile[specify alternative help link]:helpfile path/filename:' \
    '-stylesheet[specify alternative HTML style sheet]:stylesheet path/filename:' \
    '-docencoding[specify character encoding for output HTML files]:encoding:->encoding' \
    '*:package name, source file or @list:->docsrc' && ret=0
  ;;

appletviewer)
  _arguments -C \
    '-debug[run applet on jdb]' \
    '-encoding[specify character encoding for source files]:encoding:->encoding' \
    '-J-[specify java option]:java option:' \
    '*:URL:_urls' && return 0
  ;;

jar)
  if (( CURRENT == 2 )); then
    compset -P -
    _values -s '' 'jar command' \
      '(  t x u)c[create new archive]' \
      '(c   x u)t[list the table of archive]' \
      '(c t   u)x[extract files from archive]' \
      '(c t x  )u[update archive]' \
      'f[specify archive file]' \
      'v[verbose mode]' \
      '(e)m[specify manifest file]' \
      '(m)e[specify class of for application entry point]' \
      '0[store only without using ZIP compression]' \
      'M[do not create manifest file]' \
      'i[generate index information for specified jar files]' && return
  else
    jar_cmd="${words[2]#-}"
    tmpassoc=(
      m ':manifest file:_files'
      e ':main class'
      f ':archive file:_files -g "*.([ejw]ar|zip)(-.)"'
    )
    _arguments '*-C[directory of class file]:directory:_directories' \
      '-J-[java runtime option]:option' \
      "${jar_cmd/[^-]*/:dummy:}" \
      ${${(s::)jar_cmd}/(#b)(?)/$tmpassoc[$match[1]]} \
      '*:file:->jararg' && return 0
  fi
  ;;

javah|javah_g)
  _arguments -C \
    '-o[specify output file]:output file:_files' \
    '-d[specify destination directory]:directory:_files -/' \
    '-stubs[generate stubs]' \
    '-verbose[print verbose messages]' \
    '-help[print help message]' \
    '-version[print version]' \
    '-jni[JNI-style native method function prototypes]' \
    '-classpath[specify path for user class files]:class path:->classpath' \
    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
    '-old[generate old JDK1.0-style header files]' \
    '-force[force output]' \
    '-J-[java runtime option]:option' \
    '*:class:_java_class -m main ${(kv)opt_args[(i)-classpath]}' && return 0
  ;;

javap)
  _arguments -C \
    '-help[print help message]' \
    '-l[line and local variable tables]' \
    '-b[backward compatible to JDK1.1]' \
    '-public[only public classes and members]' \
    '-protected[only protected and public classes and members]' \
    '-package[only package, protected and public classes and members (default)]' \
    '-private[all classes and members]' \
    '-J-[specify java option]:java option:' \
    '-s[internal type signatures]' \
    '-c[disassemble code]' \
    '-verbose[stack size, number of locals and args for methods]' \
    '-classpath[specify path for user class files]:class path:->classpath' \
    '-bootclasspath[specify path for bootstrap class files]:bootstrap class path:->bootstrapclasspath' \
    '-extdirs[specify directories for extensions]:extensions directories:->extdirs' \
    '*:class:_java_class ${(kv)opt_args[(i)-classpath]}' && return 0
  ;;

extcheck)
  _arguments \
    '-verbose[print verbose messages]' \
    ':target jar file:_files -g \*.jar\(-.\)' && return 0
  ;;

rmic)
  _arguments -C \
    '-classpath[specify path for user class files]:class path:->classpath' \
    '-d[specify destination directory]:directory:_files -/' \
    '-depend[treat dependencies]' \
    '-g[enable debugging]' \
    '-J-[specify java option]:java option:' \
    '-keepgenerated[retain generated source files]' \
    '-nowarn[disable warnings]' \
    '-show[GUI mode]' \
    '-vcompat[compatible with JDK 1.1 and 1.2 (default)]' \
    '-verbose[print verbose messages]' \
    '-v1.1[JDK 1.1 stub protocol]' \
    '-v1.2[JDK 1.2 stub protocol]' \
    '*:package qualified class name:_java_class  ${(kv)opt_args[(i)-classpath]}' && return 0
  ;;

rmiregistry)
  if (( CURRENT == 2 )); then
    _wanted ports expl 'port to listen on' _ports && return
  else
    _message 'no more arguments'
  fi
  ;;

rmid)
  _arguments \
    '-C-[specify command line argument for child process]:command line argument for child process:' \
    '-log[specify log directory]:directory to place logs:_files -/' \
    '-port[specify port]:port:_ports' \
    '-stop[stop rmid]:' && return 0
  ;;
       
serialver)
  _arguments \
    '-classpath[specify where to find user class files]:class path:->classpath' \
    '(*)-show[display user interface]' \
    '(-show)*:class:_java_class ${(kv)opt_args[(i)-classpath]}' && return 0
  ;;

native2ascii)
  _arguments -C \
    '-reverse[convert Latin-1 (with \udddd) to native encoding]' \
    '-encoding[specify character encoding]:encoding:->encoding' \
    ':input file:_files' \
    ':output file:_files' && return 0
  ;;

keytool)
  _arguments \
      '-J-[specify java option]:java option:' \
    - genkey \
      '-genkey[command to generate a key pair]' \
      '-alias[alias]:alias:' \
      '-keyalg[key algorithm]:key algorithm:' \
      '-keysize[key size]:key size:' \
      '-sigalg[signature algorithm]:signature algorithm:' \
      '-dname[X.500 distinguish name]:X.500 distinguish name:' \
      '-keypass[password for private key]:password for private key:' \
      '-validity[valid days]:number of days:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - import \
      '-import[command to import certificate or certificate chain]' \
      '-alias[alias]:alias:' \
      '-file[specify certificate file]:certificate file:_files' \
      '-keypass[password for private key]:password for private key:' \
      '-noprompt[disable interaction with the user]' \
      '-trustcacerts[use cacerts]' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - selfcert \
      '-selfcert[command to generate X.509 v1 self-signed certificate]' \
      '-alias[alias]:alias:' \
      '-sigalg[signature algorithm]:signature algorithm:' \
      '-dname[X.500 distinguish name]:X.500 distinguish name:' \
      '-validity[valid days]:number of days:' \
      '-keypass[password for private key]:password for private key:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - identitydb \
      '-identitydb[command to read identity database]' \
      '-file[specify identity database file]:identity database file:_files' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - certreq \
      '-certreq[command to generate certificate signing request]' \
      '-alias[alias]:alias:' \
      '-sigalg[signature algorithm]:signature algorithm:' \
      '-file[specify certificate signing request file]:certificate signing request file:_files' \
      '-keypass[password for private key]:password for private key:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - export \
      '-export[command to store certificate]' \
      '-alias[alias]:alias:' \
      '-file[specify certificate file]:certificate file:_files' \
      '-rfc[make certificate format printable as RFC 1421]' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - list \
      '-list[command to print keystore entry]' \
      '-alias[alias]:alias:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '(-rfc)-v[make certificate format human-readable]' \
      '(-v)-rfc[make certificate format printable as RFC 1421]' \
    - printcert \
      '-printcert[command to print certificate in a human-readable format]' \
      '-file[specify certificate file]:certificate file:_files' \
      '-v[verbose mode]' \
    - keyclone \
      '-keyclone[command to create new keystore entry]' \
      '-alias[alias]:alias:' \
      '-dest[destination alias]:destination alias:' \
      '-keypass[password for private key]:password for private key:' \
      '-new[password for private key of new entry]:password for private key of new entry:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - storepasswd \
      '-storepasswd[command to change password for keystore]' \
      '-new[new password]:new password:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - keypasswd \
      '-keypasswd[command to change password for private key]' \
      '-alias[alias]:alias:' \
      '-keypass[old password for private key]:old password for private key:' \
      '-new[nwe password for private key]:new password for private key:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - delete \
      '-delete[command to delete entry]' \
      '-alias[alias]:alias:' \
      '-storetype[keystore type]:store type:' \
      '-keystore[keystore location]:keystore location:_files' \
      '-storepass[password for keystore]:password:' \
      '-v[verbose mode]' \
    - help \
      '(-J)-help[command to print help message]' && return 0
  ;;

jarsigner)
  _arguments \
    '-keystore[keystore location]:keystore location:_files' \
    '-storetype[specify keystore type]:store type:' \
    '-storepass[specify password for keystore]:password:' \
    '-keypass[specify password for private key]:password:' \
    '-sigfile[specify base file name of .SF and .DSA files to be generated]:sigfile:_files' \
    '-signedjar[specify signed JAR file]:_files -g "*.(jar|zip)(-.)"' \
    '(2)-verify[verify mode]' \
    '-certs[output certificate information in verify mode]' \
    '-verbose[print verbose messages]' \
    '-internalsf[old behaviour]' \
    '-sectionsonly[omit header of hash of the whole manifest file]' \
    '-J-[specify java option]:java option:' \
    ':jar file:_files -g "*.(jar|zip)(-.)"' \
    ':alias:' && return 0
  ;;

policytool)
  _arguments \
    '-file:policy file:_files' && return 0
  ;;

*)
  _message 'unknown command'
  ;;
esac

[[ -n "$state" ]] &&
case "$state" in
debug)
  if [[ -prefix :*, ]]; then
    compset -P :
    _values -s , "debug info" lines vars source && return
  else
    _description debuginfo expl "debug info"
    compadd -P: "$expl[@]" none && ret=0
    compadd -P: -qS, "$expl[@]" lines vars source && ret=0
  fi
  ;;

classpath|sourcepath|bootstrapclasspath|docletpath)
  compset -P '*:'
  compset -S ':*'
  _alternative \
    "classpath:$state:_path_files -qS: -g '*.(jar|zip)(-.)'" \
    "classpath:$state:_path_files -r': ' -/" && return
  ;;

extdirs)
  compset -P '*:'
  _path_files -/ && return
  ;;

encoding)
  tmp=(
    'US-ASCII:American Standard Code for Information Interchange'
    'Cp1252:Windows Latin-1'
    'ISO-8859-1:ISO 8859-1, Latin alphabet No. 1 '
    'ISO-8859-15:Latin alphabet No. 9 '
    'UTF-8:Eight-bit UCS Transformation Format'
    'UTF-16:Sixteen-bit UCS Transformation Format, byte order identified by an'
    'UTF-16BE:Sixteen-bit UCS Transformation Format, big-endian byte order '
    'UTF-16LE:Sixteen-bit UCS Transformation Format, little-endian byte order '
    'ASCII:American Standard Code for Information Interchange'
    'ISO8859_1:ISO 8859-1, Latin alphabet No. 1'
    'UnicodeBig:Sixteen-bit Unicode Transformation Format, big-endian'
    'UnicodeBigUnmarked:Sixteen-bit Unicode Transformation Format, big-endian'
    'UnicodeLittle:Sixteen-bit Unicode Transformation Format, little-endian'
    'UnicodeLittleUnmarked:Sixteen-bit Unicode Transformation Format, little-endian'
    'UTF8:Eight-bit Unicode Transformation Format'
    'UTF-16:Sixteen-bit Unicode Transformation Format, byte order'
    'Big5:Big5, Traditional Chinese'
    'Big5_HKSCS:Big5 with Hong Kong extensions, Traditional Chinese'
    'Big5_Solaris:Big5 with seven additional Hanzi ideograph character mappings '
    'Cp037:USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia'
    'Cp273:IBM Austria, Germany'
    'Cp277:IBM Denmark, Norway'
    'Cp278:IBM Finland, Sweden'
    'Cp280:IBM Italy'
    'Cp284:IBM Catalan/Spain, Spanish Latin America'
    'Cp285:IBM United Kingdom, Ireland'
    'Cp297:IBM France'
    'Cp420:IBM Arabic'
    'Cp424:IBM Hebrew'
    'Cp437:MS-DOS United States, Australia, New Zealand, South Africa'
    'Cp500:EBCDIC 500V1'
    'Cp737:PC Greek'
    'Cp775:PC Baltic'
    'Cp838:IBM Thailand extended SBCS'
    'Cp850:MS-DOS Latin-1'
    'Cp852:MS-DOS Latin-2'
    'Cp855:IBM Cyrillic'
    'Cp856:IBM Hebrew'
    'Cp857:IBM Turkish'
    'Cp858:Variant of Cp850 with Euro character'
    'Cp860:MS-DOS Portuguese'
    'Cp861:MS-DOS Icelandic'
    'Cp862:PC Hebrew'
    'Cp863:MS-DOS Canadian French'
    'Cp864:PC Arabic'
    'Cp865:MS-DOS Nordic'
    'Cp866:MS-DOS Russian'
    'Cp868:MS-DOS Pakistan'
    'Cp869:IBM Modern Greek'
    'Cp870:IBM Multilingual Latin-2'
    'Cp871:IBM Iceland'
    'Cp874:IBM Thai'
    'Cp875:IBM Greek'
    'Cp918:IBM Pakistan (Urdu)'
    'Cp921:IBM Latvia, Lithuania (AIX, DOS)'
    'Cp922:IBM Estonia (AIX, DOS)'
    'Cp930:Japanese Katakana-Kanji mixed with 4370 UDC, superset of 5026'
    'Cp933:Korean Mixed with 1880 UDC, superset of 5029'
    'Cp935:Simplified Chinese Host mixed with 1880 UDC, superset of 5031'
    'Cp937:Traditional Chinese Host miexed with 6204 UDC, superset 5033'
    'Cp939:Japanese Latin Kanji mixed with 4370 UDC, superset of 5035'
    'Cp942:IBM OS/2 Japanese, superset of Cp932'
    'Cp942C:Variant of Cp942'
    'Cp943:IBM OS/2 Japanese, superset of Cp932 and Shift-JIS'
    'Cp943C:Variant of Cp943'
    'Cp948:OS/2 Chinese (Taiwan) superset of 938'
    'Cp949:PC Korean'
    'Cp949C:Variant of Cp949'
    'Cp950:PC Chinese (Hong Kong, Taiwan)'
    'Cp964:AIX Chinese (Taiwan)'
    'Cp970:AIX Korean'
    'Cp1006:IBM AIX Pakistan (Urdu)'
    'Cp1025:IBM Multilingual Cyrillic (Bulgaria, Bosnia)'
    'Cp1025:IBM Multilingual Cyrillic - Bulgaria, Bosnia, Herzegovinia, Macedonia (FYR)'
    'Cp1026:IBM Latin-5, Turkey'
    'Cp1046:IBM Arabic - Windows'
    'Cp1097:IBM Iran (Farsi)/Persian'
    'Cp1098:IBM Iran (Farsi)/Persian (PC)'
    'Cp1112:IBM Latvia, Lithuania'
    'Cp1122:IBM Estonia'
    'Cp1123:IBM Ukraine'
    'Cp1124:IBM AIX Ukraine'
    'Cp1140:Variant of Cp037 with Euro character'
    'Cp1141:Variant of Cp273 with Euro character'
    'Cp1142:Variant of Cp277 with Euro character'
    'Cp1143:Variant of Cp278 with Euro character'
    'Cp1144:Variant of Cp280 with Euro character'
    'Cp1145:Variant of Cp284 with Euro character'
    'Cp1146:Variant of Cp285 with Euro character'
    'Cp1147:Variant of Cp297 with Euro character'
    'Cp1148:Variant of Cp500 with Euro character'
    'Cp1149:Variant of Cp871 with Euro character'
    'Cp1250:Windows Eastern European'
    'Cp1251:Windows Cyrillic'
    'Cp1253:Windows Greek'
    'Cp1254:Windows Turkish'
    'Cp1255:Windows Hebrew'
    'Cp1256:Windows Arabic'
    'Cp1257:Windows Baltic'
    'Cp1258:Windows Vietnamese'
    "Cp1381:IBM OS/2, DOS People's Republic of China (PRC)"
    "Cp1383:IBM AIX People's Republic of China (PRC)"
    'Cp33722:IBM-eucJP - Japanese (superset of 5050)'
    'EUC_CN:GB2312, EUC encoding, Simplified Chinese'
    'EUC_JP:JIS X 0201, 0208, 0212, EUC encoding, Japanese'
    'EUC_KR:KS C 5601, EUC encoding, Korean'
    'EUC_TW:CNS11643 (Plane 1-3), EUC encoding, Traditional Chinese'
    'GB18030:Simplified Chinese, PRC standard'
    'GBK:GBK, Simplified Chinese'
    'ISCII91:ISCII91 encoding of Indic scripts'
    'ISO2022CN:ISO 2022 CN, Chinese (conversion to Unicode only)'
    'ISO2022CN_CNS:CNS 11643 in ISO 2022 CN form, Traditional Chinese'
    'ISO2022CN_GB:GB 2312 in ISO 2022 CN form, Simplified Chinese'
    'ISO2022JP:JIS X 0201, 0208 in ISO 2022 form, Japanese'
    'ISO2022KR:ISO 2022 KR, Korean'
    'ISO8859_2:ISO 8859-2, Latin alphabet No. 2'
    'ISO8859_3:ISO 8859-3, Latin alphabet No. 3'
    'ISO8859_4:ISO 8859-4, Latin alphabet No. 4'
    'ISO8859_5:ISO 8859-5, Latin/Cyrillic alphabet'
    'ISO8859_6:ISO 8859-6, Latin/Arabic alphabet'
    'ISO8859_7:ISO 8859-7, Latin/Greek alphabet'
    'ISO8859_8:ISO 8859-8, Latin/Hebrew alphabet'
    'ISO8859_9:ISO 8859-9, Latin alphabet No. 5'
    'ISO8859_13:ISO 8859-13, Latin alphabet No. 7'
    'ISO8859_15:ISO 8859-15, Latin alphabet No. 9'
    'JIS0201:JIS X 0201, Japanese'
    'JIS0208:JIS X 0208, Japanese'
    'JIS0212:JIS X 0212, Japanese'
    'JISAutoDetect:Detects and converts from Shift-JIS, EUC-JP, ISO 2022 JP'
    'Johab:Johab, Korean'
    'KOI8_R:KOI8-R, Russian'
    'MS874:Windows Thai'
    'MS932:Windows Japanese'
    'MS936:Windows Simplified Chinese'
    'MS949:Windows Korean'
    'MS950:Windows Traditional Chinese'
    'MacArabic:Macintosh Arabic'
    'MacCentralEurope:Macintosh Latin-2'
    'MacCroatian:Macintosh Croatian'
    'MacCyrillic:Macintosh Cyrillic'
    'MacDingbat:Macintosh Dingbat'
    'MacGreek:Macintosh Greek'
    'MacHebrew:Macintosh Hebrew'
    'MacIceland:Macintosh Iceland'
    'MacRoman:Macintosh Roman'
    'MacRomania:Macintosh Romania'
    'MacSymbol:Macintosh Symbol'
    'MacThai:Macintosh Thai'
    'MacTurkish:Macintosh Turkish'
    'MacUkraine:Macintosh Ukraine'
    'SJIS:Shift-JIS, Japanese'
    'TIS620:TIS620, Thai'
  )
  _describe 'character encoding' tmp --
  ;;

property)
  if compset -P 1 '*='; then
    _default && return
  else
    _message -e property-names 'property name'
  fi
  ;;

docsrc)
  if compset -P @; then
    _wanted files expl 'package/source list file' _files && return
  else
    _wanted files expl 'package or source' _files -g '*.java(-.)' && return
  fi
  ;;

jararg)
  if [[ "$words[CURRENT - 2]" == -C ]]; then
    _wanted file expl 'input file' _files -W "($words[CURRENT - 1])" && return
  elif [[ $words[2] = *x* ]]; then
    jf="$words[3]"
    if [[ $jf != $_jar_cache_name && -f $jf ]]; then
      _jar_cache_list=("${(@f)$($words[1] tf $jf)}")
      _jar_cache_name=$jf
    fi
    _wanted files expl 'file from archive' _multi_parts / _jar_cache_list && return
  else
    _wanted files expl 'input file' _files && return
  fi
  ;;

*)
  _message "unknown state: $state"
  ;;
esac

return ret