導航:首頁 > 女裝百科 > 言和模型rem外套

言和模型rem外套

發布時間:2021-10-07 10:55:29

Ⅰ Css單位中px、em和rem的區別

1)px 像素(Pixel)。絕對單位。像素 px 是相對於顯示器屏幕解析度而言的,是一
個虛擬長度單位,是計算機系統的數字化圖像長度單位。
2)em 是相對長度單位,相對於當前對象內文本的字體尺寸。如當前對行內文本的字
體尺寸未被人為設置,則相對於瀏覽器的默認字體尺寸。它會繼承父級元素的字體大小,因
此並不是一個固定的值。
3)rem 是 CSS3 新增的一個相對單位(root em,根 em),使用 rem 為元素設定字
體大小時,仍然是相對大小,但相對的只是 HTML 根元素。
4)區別:
IE 無法調整那些使用 px 作為單位的字體大小,而 em 和 rem 可以縮放,rem
相對的只是 HTML 根元素。這個單位可謂集相對大小和絕對大小的優點於一身,通過它既
可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖
反應。目前,除了 IE8 及更早版本外,所有瀏覽器均已支持 rem。
可以多看看黑馬程序員的課程,多學學這些基礎知識。

Ⅱ 歌曲我的名字是Remarond是在什麼動漫上

你好,這個歌曲我的名字是Rem Arond是動漫與魔共舞裡面的。

本作故事的舞台設立在了名為「四皇學園」的學園,主要描寫了被惡魔纏住的主人公立華六花與魔界的惡魔們間充滿戲劇性的物語。

歌詞寫的是鉤貫雷姆(鉤貫レム / Rem Kaginuki)

聲優:齊藤壯馬「將軍了哪,你就盡管掙扎吧。說到底不過只是消磨時間而已」跨越魔界的境界線而來的惡魔。在人間界的偽裝姿態是四皇學園的學生會長。 無懈可擊,一言一行都堪稱完美,比較嚴肅內斂。

歌手是齊藤壯馬。

歌詞在圖片裡面。

如滿意望採納

Ⅲ 徹底弄懂css中單位px和em,rem的區別

css中單位px和em,rem的區別:

1、px是相對長度單位,它是相對於顯示器屏幕解析度而言的。

優缺點:比較穩定和精確,但在瀏覽器中放大或縮放瀏覽頁面時會出現頁面混亂的情況。

2、em是相對長度單位,EM是相對於父元素來設計字體大小的。如果當前對行內文本的字體尺寸未被人為設置,則相對於瀏覽器的默認字體尺寸。

優缺點:em的值並不是固定的,它會繼承父級元素的字體大小。

3、rem是CSS3新增的一個相對單位,REM是相對單位,是相對HTML根元素。

這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。

拓展資料

px:

px實際上就是像素,用PX設置字體大小時,比較穩定和精確。

但是這種方法存在一個問題,當用戶在瀏覽器中瀏覽我們製作的Web頁面時,如果改變了瀏覽器的縮放,這時會使用我們的Web頁面布局被打破,這樣對於那些關心自己網站可用性的用戶來說,就是一個大問題了。

em:

em就是根據基準來縮放字體的大小,em實質是一個相對值,而非具體的數值,這種技術需要一個參考點,一般都是以<body>的「font-size」為基準,如WordPress官方主題Twenntytwelve的基準就是14px=1em。

所以,我們在寫CSS的時候,需要注意以下3點:

1、body選擇器中聲明Font-size=62.5%;

2、將你的原來的px數值除以10,然後換上em作為單位;

3、重新計算那些被放大的字體的em數值,避免字體大小的重復聲明。

rem:

rem是CSS3新增的一個相對單位(root em,根em),使用rem為元素設定字體大小時,仍然是相對大小,但相對的只是HTML根元素。這個單位可謂集相對大小和絕對大小的優點於一身,通過它既可以做到只修改根元素就成比例地調整所有字體大小,又可以避免字體大小逐層復合的連鎖反應。

例子:

p {font-size:14px; font-size:.875rem;}

Ⅳ 鬼壓床啊。。。。。。

這是藍心網上面關於鬼壓床的科學解釋,我覺得說得比較全面和詳細了的。

中國說鬼壓身,西方說惡魔坐床頭,其實都是睡眠麻痹,在正要入睡或自夢中醒來時發生。幾乎每個人一生都會遇到一兩次睡眠麻痹。所以,當某天你自夢中醒來,卻發現連睜眼這個最平常的動作都做不到時,要淡定地想:嗯,我終於經歷了人生的第一次睡眠麻痹。然後想一想怎麼把它變成談資,等幾分鍾甚至幾秒鍾後,你就活動自如了。

不是所有的睡眠都有睡眠麻痹

睡眠麻痹也不是隨便就會發生的,它只發生於特定的睡眠階段——快速眼球運動睡眠(rapid eye movements,REM)。
人的睡眠分為快速眼球運動睡眠(REM)和慢速眼球運動睡眠(non-rapid eye movements,NREM或slow wave sleep,SWS)兩種。它們兩個輪流上崗執行睡眠任務,換個4、5次班,天就亮了。
兩個睡眠衛士各有特徵。一般認為,NREM是永遠的先鋒及勞動模範,總是它迎接我們進入每一個新的睡眠周期,總是它值時間最長的那班崗(一個完整的睡眠周期最少90分鍾,NREM持續時間將近80%)。而眼球的快速運動和做夢則是REM的兩大特徵,也是這兩個睡眠衛士名字的由來。
REM與NREM的輪流上崗制度也不是永遠都執行順利的。有時,會因為一些原因導致REM沒有上崗機會。但一旦REM能上崗時,它就要很盡責地把之前的任務補回來,這時,先迎接你進入睡眠的就可能是REM了,而且它的上崗時間也會相應延長。這就是為什麼,馬上要入睡的狀態,也會發生睡眠麻痹的原因了。

做夢與麻痹一對連體嬰

雖說只要進入睡眠,人體的感覺功能會暫時減退,肌肉也開始放鬆,血壓下降、心率減慢、呼吸變慢、代謝率降低等一系列自主神經功能也發生改變。但相對來說,NREM時,人在睡眠中還是能變換下睡姿、踢個被、說兩句夢話什麼的。
可一旦進入REM,感覺功能進一步減退,更難喚醒不說,骨骼肌(跟骨骼相連,靠其收縮完成人體的一系列動作)的反射活動和肌緊張那是弱到不行,肌肉幾乎就是完全鬆弛的。於是,一、二、三,我們都變木頭人,不能說話,不能動。但眼球的肌肉倒是好用,快速轉動。之所以在REM睡眠時,骨骼肌近乎鬆弛,使人體處於「癱瘓」狀態,跟REM時做夢是密切相關的。夢境,總是千奇百怪的。如果REM睡眠時人不處於麻痹狀態,會在夢境的支配下,做出大幅度的動作或暴力行為,傷害到自己或者身邊的人。所以,要做夢就得先麻痹自己。
插一句,別說自己從不做夢,那隻是因為幸運(抑或不幸)的你總是從NREM睡眠中醒來,所以不知道自己這一晚上還是頗做了幾個夢的。知道自己做夢的筒子們,也不要以為自己一晚上只做了這一個夢,你只是在做這個夢的時候醒了而已。

腦醒,身未醒

現在清楚了吧,所謂的「鬼壓床」只是在REM睡眠時,由於現代醫學也搞 不清楚的原因,大腦突然醒來了,卻沒有提前發出神經沖動告訴骨骼肌們也別睡了,准備起床。
當大腦發現這一錯誤時,它會趕緊把本該在醒前發出的神經沖動補發出去,可這就得耗上一點時間。這些神經沖動都是些生物電信號,如果你很著急,它們可能還得在大腦內紊亂一陣兒再出發。所以,要淡定。

躺著睡容易「中槍」,還是側著睡吧

雖然睡眠麻痹原因不明,可醫學家們還是找到了些相關因素的。其中一項就是:平躺著睡容易發生睡眠麻痹。原因是,平躺時,可以讓肌肉麻痹得很徹底,一旦這時醒來而大腦又沒做好提前通知工作,睡眠麻痹沒商量。可側著睡就不同了,因為要維持側躺,還是需要肌肉用點力的,肌肉也就不會麻痹得那麼徹底。

Ⅳ sleep cycle怎麼用

源自 http://www.guokr.com/question/458443/

Sleep Cycle我沒用過,我用的是iPad上的Smart Alarm HD,其原理應該都差不多。

我們知道人的睡眠其實是非常復雜的,不是「眼睛一閉一睜,一天就過去了」那麼簡單,人的睡眠是分若干相的,如果以腦電波信號作為分相依據,那麼人的睡眠可以分為5相:入睡期、淺睡期、熟睡期、深睡期、快速動眼期(REM)。前四個階段又統稱為費快速眼動期(非REM)。人在睡眠時會經歷若干次循環,從REM到非REM,再到REM,再到非REM……

在快速眼動期(即圖中的REM)當中,腦電波迅速改變,出現與清醒狀態時的腦點波相似的高頻率、低波幅腦波,這時人會有較大幅度的翻身等動作,也比較容易喚醒。因此如果在REM期喚醒睡眠者,睡眠者會感覺神清氣爽,休息的很好;如果在非REM期喚醒睡眠者,則會感覺沒睡夠、昏昏沉沉。這都是由腦電波決定的。

當然,目前的iPad、iPhone等產品還不具備直接探測腦電波的功能,因此這類App採用的是一種近似的手段,即以人睡眠當中的動作幅度和頻率作為衡量睡眠周期的標准,其原理就是把電子產品平放在床上,利用電子產品內置的加速度感測器,探測床表面的震動,從而獲知人的動作幅度和頻率,再利用其設計好的演算法對睡眠周期進行判斷,從而在REM期中喚醒睡眠者。比如上面的圖中最後喚醒時都是在REM期。

比如你設定早上7:00起床,這類App會認為7:00就是起床的deadline,它會在7:00之前你的某一個REM睡眠期內將你喚醒,這樣你醒的時候就會覺得神清氣爽。換言之,此類App與普通鬧鍾的區別在於它喚醒你的時間不一定是你設定的時間,因為在你設定的那個時間點上,你可能會處於非REM睡眠期。

由於這類App靠的是加速度感測器,所以如果你把iPad、iPhone壓在枕頭底下,或是離你身體太遠,它就很不準了。我曾經試驗過,結果是無法探測數據,最後App只能保險起見,在我設定的7:00准時把我叫醒,結果自然是昏昏沉沉,上午的課都沒聽進去……

至於這類App的實際作用,我覺得還是很有效果的。第一個寫出這種App的絕對是天才,要知道探測腦電波非常不容易,需要貼上滿頭的電極片,成本也很高,根本就不是我們日常睡覺所能用的;而利用加速度感測的方法不僅簡單易行,而且降低了成本。當然,任何軟體的功能都是有限的,也不能過分誇大,比如我用的Smart Alarm HD,在個別情況下還是會出現無法探測的情況,只能老老實實的按照設定的時間喚醒我。

Ⅵ 魔力寶貝生產系多少級能傳送奇力和其他村子

聖拉魯卡、伊爾村無限制
亞留特12
維諾亞、奇利15
迦納20
傑諾瓦、蒂娜、阿巴尼斯25
亞諾曼到4個村的傳送、從阿凱魯法到坎那貝拉、哥拉爾到米諾基亞村,生產系都是限制25級且要經過二轉

Ⅶ 九年級英語書第107頁3a 「 I remembe」翻譯是什麼

具體翻譯如下:

The owner of a restaurant must know how to make food. They also need to know how to make money. It's something they get from science learning. Red is a color that makes people hungry. Red also makes customers eat faster.

餐廳的老闆必須知道怎樣製作食物。他們也需要知道怎樣賺錢。這是一些他們從科學學習中得到的東西。紅色這種顏色會讓人們感到飢餓。紅色也會使顧客吃得更快。

Therefore, many fast food restaurants have red furniture or walls. Warm
colors like pink and light blue make people relax, so they spend more
time eating. Warm lighting makes people look better, but it makes food
look bad.

因此,許多快餐店都有紅色的傢具或牆面。像粉紅和淺藍這樣的暖顏色會使人們放鬆,因此他們會花更多的時間吃飯。溫暖的燈光會讓人們看起來更好,但它會使食物看起來糟糕。

Loud music may be good at the beginning, but soon it
will make people want to leave. Many restaurants, especially fast food
restaurants, use this knowledge to make customers eat faster.

喧鬧的音樂可能在開始時很好,但很快它會讓人們想要離開。許多餐館,特別是快餐店,使用這些知識讓顧客吃快些。

They
only sit for about 20 minutes before the customer leaves. Because
customers won't stay long, small restaurants can receive more customers
every day.

在顧客離開之前他們只會坐大概20分鍾。因為顧客不會待很久,小餐館每天就可以接待更多的顧客。

這部分內容主要考察的一般現在時的知識點:

描述主語的狀態、性質、特徵、能力等,目的是為了「描述現階段的動作或者狀態。e.g. I don't want so much.我不想要太多。Wang An writes good English but doesn't speak well.王安英語寫得很好但是說得不好,比較:Now I put the sugar in the cup.現在我把一些糖放進杯子裡面。I am doing my homework now.現在我正在寫我的作業。

第一句用一般現在時,用於操作演示或指導說明的示範性動作,表示言行的瞬間動作。再如:Now watch me,I switch on the current and stand back. 第二句中的now是進行時的標志,表示正在進行的動作的客觀狀況,所以後句用現在進行時。

表示通常性、規律性、習慣性、真理性(即事實)的動作或狀態,或者動作有時間規律發生的事件的一種時間狀態。在英語語法中,「時「指動作發生的時間,」態「指動作的樣子和狀態。

Ⅷ 哪能找到國外的潮流Rem、RB音樂啊不要那俗不可耐的冰河時代類型的啊 要有深度的。。。。謝謝 急啊

一:什麼是 r&b?
r&b的全名是 rhythm & blues,一般譯作"節奏布魯斯"。廣義上, r&b可視為「黑人的流行音樂」,它源於黑人的blues音樂,是現今西行流行樂和搖滾樂的基礎,billboard雜志曾介定 r&b為所有黑人音樂,除了 jazz和blues之外,都可列作 r&b,可見 r&b的范圍是多麼的廣泛。近年黑人音樂圈大為盛行的 hip hop和 rap都源於 r&b,並且同時保存著不少 r&b成分。
二:朋克(punk)
70年代中期發展起來的一種搖滾樂,或稱「朋克搖滾」(punk rock),80年代初擴展到全美國。朋克針對搖滾樂的反抗性減弱這一情況,以一種故意與比較文明的搖滾樂相對立的面目出現。它繼承了搖滾樂開始時的反叛精神,蔑視一切傳統,蔑視、宗教、教育機構等等,但卻是用一種更加頹廢的方式,極端無主義的言行表現出來。他們的唱詞淫狠、粗魯;在舞台上尖叫、跺腳、斗毆;音樂上與硬搖滾比較接近,音響極大,音色濃烈渾厚。代表性樂隊有「性手槍」(sex pistols)、「撞擊」(the clash)等。
70年代末,從朋克中分離出一支比較能被人接受的、也更帶點藝術性的新品種,叫「新浪潮」(new wave)。

三:說唱(rap)(hip-hop)

黑人俚語,相當於「談話」(talking),產自紐約貧困黑人聚居區。它以在機械的節奏聲的背景下,快速地訴說一連串押韻的詩句為特徵。這種形式來源之一是過去電台節目主持人在介紹唱片時所用的一種快速的、押韻的行話性的語言。萊普的歌詞幽默、風趣,常帶諷刺性,80年代尤其受到黑人歡迎。最有代表性的樂隊是「公開的敵人」(public enemy)。萊普有時也稱「希普-霍普」(hip-hop)。實際上,希普-霍普的含義更寬,泛指當時紐約街頭文化的各種成分,除萊普外,還有:(萊普經常採用的)用手把放在唱機轉盤上的唱片前後移動,發出有節奏的刮擦聲;唱片播放員(dj)在轉換唱片拼接唱片音樂片斷時,聽不出中斷痕跡的技法;霹靂舞等等。Hip-Hop,這種音樂節奏直接針對和適合街舞,很容易形成視覺沖擊。如今「韓流」的成功,在很大程度上就是依靠Hip-Hop旋律所編排的舞蹈,而且更進一步用OLD SCHOOL的節奏來詮釋NEW SCHOOL的舞步,新奇刺激,頗具挑逗性。韓國樂隊H.O.T在舞台上就是把這種音樂表現得十分到位。不過相對於Hip-Hop音樂發源地的美國來說,由於地理、歷史、民族、文化上的差異,使像H.O.T這樣的樂隊沒有太多黑人勁舞的色彩,同樣也避免受到太多的RAP音樂舊弊影響。所以,亞洲的Hip-Hop音樂就別具一格,不同於美國式的NEW YORK style與L.A.style。
說到美國式的Hip-Hop音樂,就必須從聽覺而不是視覺上去感受了。因為美式的Hip-Hop演變進化中,舞蹈是跟隨音樂的變化而改變的,由OLD SCHOOL發展到NEW SCHOOL,很大程度上是因為節奏快慢的變化所致,這也許正是Hip-Hop音樂亞、美之間最大的差異吧。而且要說Hip-Hop音樂,必須追溯到Dr.Dre的RAP時代開始講述。
Hip-Hop是由RAP音樂發展而來的。而RAP這種音樂極具沖擊力和表演方式極具爭議性,歌詞也扭曲混亂,充斥著暴力和煽動。以Dr.Dre與Eminem這對「黑白雙煞」為代表的專輯《Strange Outta Compton》和《The slim shady》很能反映RAP音樂在思想上的陰暗性的反動性。
等RAP音樂發展到2PAC這位饒舌大師的時代,RAP正漸漸地被藝術化,內容上也出現較多的文化成份.2PAC饒舌歌曲中加進了一些柔性搖滾的成份,盡管像《Until the end of time》專輯製作很次,混音嘈雜,但仍然可以聽出弦樂隱約的斷奏和內容上對性權利的探討。隨著進一步的演化,這種被正統音樂視為音樂界異類的音樂形式,由於過於特立獨行和迥異突兀,同時因為能夠對年輕人造成巨大的心靈沖擊,而被主流社會的音樂衛道士視為不入流的街頭垃圾文化。因此發展到Hip-Hop時代,無法從內容還是從形式都演變的比較溫和折中了。音樂形態上融入了許多其它音樂元素,歌曲內容上正面攻擊的詞彙銳減。

四:波普(pop)
一種具有強烈節拍的現代流行音樂。一般認為,流行音樂有廣義和狹義之分,這里的「波普」是指狹義的流行音樂,如 70、80年代著名歌手羅斯(diana ross)、里奇(lionel richie)、惠特妮·休斯頓(whitney houston)、麥當娜(madonna)、邁克爾·傑克遜(michael jackson)、普林斯(prince)、珍妮特·傑克遜(janet jackson)等人演唱的很多歌曲。

五:雷鬼(reggae)
起源於牙買加,70年代中期傳入美國。它把非洲、拉丁美洲節奏和類似非洲流行的那種呼應式的歌唱法,與強勁的、有推動力的搖滾樂音響相結合。

六:索爾(soul)
亦稱「靈歌」。1969年,「公告牌」用「索爾」來代替原來對「節奏布魯斯」的稱呼。它是由布魯斯、搖滾樂與黑人福音歌混合而成的一種黑人流行音樂,演唱時較少演奏樂器。索爾的著名歌手有詹姆斯·布朗(james brown)、查爾斯(ray charles)、雷丁(ons redding)、史蒂夫·旺德(stevle wonder)、普林斯(prince)等。

七:電子音樂(electrophonic music)

何謂electrophonic music(電子音樂)?隨著時代的演進,音樂家有了更多製作音樂的方法.所謂電子音樂,就是以電子合成器,音樂軟體,電腦等所產生的電子聲響來製作音樂.電子音樂范圍廣泛,生活周遭常常能聽到,在電影配樂,廣告配樂,甚至某些國語流行歌中都有用到,不過以電子舞曲為最.很多人認為電子樂是一種冷冰冰,沒有感情的音樂.其實電子樂也可融入rock, jazz甚至blues等多種元素而充滿情感的。
電子音樂的類型也是多種多樣的,包括house 、techno、ambient、trance、psychedelic trance、 breakbeat、 brit-hop、 big-beat、 trip-hop、drum\'n\'bass、 jungle、electro、b、chill out、 minimalism
參考資料:http://vivid-yan.blog.hexun.com/2261236_d.html

Ⅸ 查看tomcat啟動文件都干點啥

在上一次查看tomcat啟動文件都干點啥一文中,我們總結出,startup.bat文件的作用就是找到catalina.bat文件,然後把參數傳遞給它,在startup.bat中,調用catalina.bat的命令call "%EXECUTABLE%" start %CMD_LINE_ARGS%,其中"%EXECUTABLE%"這個就是catalina.bat文件,這個命令至少向catalina.bat傳遞一個參數--start.

接下來看一下catalina.bat中的內容,內容很長:
View Code

在第1行,和第17行中的內容已經在前一章中做出說明,在此處不再敖述,我對於18-85行的這段注釋比較感興趣:
復制代碼

1 rem ---------------------------------------------------------------------------
2 rem Start/Stop Script for the CATALINA Server
3 rem
4 rem Environment Variable Prerequisites
5 rem
6 rem CATALINA_HOME May point at your Catalina "build" directory.
7 rem
8 rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
9 rem of a Catalina installation. If not present, resolves to
10 rem the same directory that CATALINA_HOME points to.
11 rem
12 rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
13 rem or "run" command is executed.
14 rem
15 rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
16 rem the JVM should use (java.io.tmpdir). Defaults to
17 rem %CATALINA_BASE%\temp.
18 rem
19 rem JAVA_HOME Must point at your Java Development Kit installation.
20 rem Required to run the with the "debug" argument.
21 rem
22 rem JRE_HOME Must point at your Java Runtime installation.
23 rem Defaults to JAVA_HOME if empty.
24 rem
25 rem JAVA_OPTS (Optional) Java runtime options used when the "start",
26 rem "stop", or "run" command is executed.
27 rem
28 rem JAVA_ENDORSED_DIRS (Optional) Lists of of semi-colon separated directories
29 rem containing some jars in order to allow replacement of APIs
30 rem created outside of the JCP (i.e. DOM and SAX from W3C).
31 rem It can also be used to update the XML parser implementation.
32 rem Defaults to $CATALINA_HOME/endorsed.
33 rem
34 rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
35 rem command is executed. The default is "dt_socket".
36 rem
37 rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
38 rem command is executed. The default is 8000.
39 rem
40 rem JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start"
41 rem command is executed. Specifies whether JVM should suspend
42 rem execution immediately after startup. Default is "n".
43 rem
44 rem JPDA_OPTS (Optional) Java runtime options used when the "jpda start"
45 rem command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
46 rem and JPDA_SUSPEND are ignored. Thus, all required jpda
47 rem options MUST be specified. The default is:
48 rem
49 rem -agentlib:jdwp=transport=%JPDA_TRANSPORT%,
50 rem address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
51 rem
52 rem LOGGING_CONFIG (Optional) Override Tomcat's logging config file
53 rem Example (all one line)
54 rem set LOGGING_CONFIG="-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties"
55 rem
56 rem LOGGING_MANAGER (Optional) Override Tomcat's logging manager
57 rem Example (all one line)
58 rem set LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
59 rem
60 rem TITLE (Optional) Specify the title of Tomcat window. The default
61 rem TITLE is Tomcat if it's not specified.
62 rem Example (all one line)
63 rem set TITLE=Tomcat.Cluster#1.Server#1 [%DATE% %TIME%]
64 rem
65 rem
66 rem
67 rem $Id: catalina.bat 1040546 2010-11-30 14:47:34Z markt $
68 rem ---------------------------------------------------------------------------

復制代碼

這段的內容就是說明一下在啟動和停止CATALINA server時候需要的一下先決條件,CATALINA_HOME--看到這個大家可能會有點疑問,如果在操作系統上沒有設置CATALINA_HOME變數的時候,那麼這個變數應該是不存在的丫,是怎麼回事呢?是不是?下面我們還是用測試來說明問題:我在F:\apache-tomcat-7.0.8\bin目錄下創建一個test.bat文件,文件內容如下:

@echo off
set CURRENT_DIR=%cd%
test2.bat

意思很簡單,只是將%cd%變數的值賦給CURRENT_DIR變數,然後調用test2.bat文件,test2.bat文件的內容如下:

echo %CURRENT_DIR%

只是簡單的輸出%CURRENT_DIR%變數,讓我們先運行test.bat文件,查看%CURRENT_DIR%變數是否能夠正確輸出: 結果正確顯示了,但是如果我們直接運行test2.bat文件會有什麼結果呢? 結果顯示不正常,這個測試就說明由test.bat調用test2.bat文件時候,test.bat中定義的變數在test2.bat中可見,就是CURRENT_DIR變數的生命周期范圍並不是僅限於本文件,也能加深對於setlocal方法的理解。回到catalina.bat本身,也許我們本身沒有設置CATALINA_HOME環境變數的習慣,但是回想一下上一節,在startup.bat中說到,如果沒有設置CATALINA_HOME變數,startup.bat內會給CATALINA_HOME變數賦值,然後在catalina.bat中依然能夠訪問此變數。

這段注釋說完之後,看一下88行:

if not ""%1"" == ""run"" goto mainEntry

如果接收到的第一個參數是run那麼到:mainEntry節點,事實是我們從startup.bat調用的時候傳遞的第一個參數無疑是start,所以應該順序執行到第89行,這里可能有人會有疑問,那什麼時候第一個參數才是run呢?事情是這樣的,因為並不是所有人都是跟我們一樣直接使用startup.bat文件啟動,因為startup.bat文件也只不過就是找到catalina.bat文件,然後照樣傳遞參數,其實有經驗的人大可直接使用catalina.bat文件來啟動tomcat。這就是第一個參數為run的產生情況。接下來我們順序執行到第89行。

看一下89行的內容:

if ""%TEMP%"" == """" goto mainEntry

如果TEMP變數為空,那麼到mainEntry節點,這個時候我們就需要看看我們到底有沒有這個TEMP變數,同樣弄個小測試,寫一個小的測試test.bat文件,文件內容如下:

@echo off
echo %TEMP%

查看執行結果:

記得在上一節中說過%TEMP%這個變數是從環境變數中讀取的,所以也可以去環境變數中查看是不是有此值,來確定TEMP變數是不是存在,一問在startup.bat和catalina.bat並沒有設置TEMP變數。查看環境變數: 因為TEMP存在,所以程序還需要順序執行到90行,第90行的內容如下:

if exist "%TEMP%\%~nx0.run" goto mainEntry

這句話至少看起來有點蒙圈,尤其是\%~nx0.run這個東西,反正我第一次看見的時候我就想問問,這是毛啊,~nx0,下面看一下網上對於%~nx0的解釋:

%~nx0 contains the name of the running batch file (without the path)

意思就是代表執行命令的文件的名字,我們來用實驗證明一下,同樣還是修改那個test.bat文件吧。;-)

@echo off
echo "%TEMP%\%~nx0.run"

如果按照上面的解釋,那麼輸出的信息應該是C:\Users\Think\AppData\Local\Temp\test.bat.run,下面看一下運行結果:咦事實證明說法正確,但是這個文件是不是存在呢,我們去TEMP目錄下看一下,遺憾的是在C:\Users\Think\AppData\Local\Temp目錄沒有找到這個文件,所以還得順序執行到第91行,91行的內容是:

echo Y>"%TEMP%\%~nx0.run"

這個看起來很簡單,既然不存在這個文件,那麼我就自己創建一個,同時寫入Y。也許你不信,所以我還是拿出個例子吧,還是test.bat呦:

@echo off
echo Y>"%TEMP%\%~nx0.run"

在C:\Users\Think\AppData\Local\Temp目錄下生成了test.bat.run文件,文件的內容果然為Y。至於生成的文件有何意義,以後再說。到現在位置我突然感慨,我很喜歡TOMCAT,它做了什麼我都能知道,在接下來的一段時間內,我想把我看TOMCAT源代碼的感受也下下來。也跟大家討論一下TOMCAT的工作原理。有點遠,扯回來,下面看一下92行的內容:

if not exist "%TEMP%\%~nx0.run" goto mainEntry

這個一眼就看明白了,再次判斷%~nx0.run文件是否存在,如果還是不存在,那麼直接到mainEntry節點,由於我們此時此文件已經創建成功,那麼順序執行到第93行。

93行的內容為:

echo Y>"%TEMP%\%~nx0.Y"

這個同91行命令,不再強調。順序執行到92行。

92行的內容為:

call "%~f0" %* <"%TEMP%\%~nx0.Y"

看到之後感覺依然是蒙圈,這裡面有兩個點需要大家掌握:%~f0, %* 知道這兩組符號是什麼意思,就解決了。

%~f0:表示運行的文件的全路徑,假如我在test.bat中如此寫:

@echo off
@echo %%~f0 is %~f0

那麼執行結果為: OK。

%*:在batch file中,每一個命令的參數都以%1,%2,%3 .....的形式展現,我們也可以使用%來代替所有的參數,下面看修改萬能測試文件test.bat中的內容如下:
復制代碼

@echo off
echo First argument: [%1]
echo Second argument: [%2]
echo Third argument: [%3]
echo Fourth argument: [%4]
echo Fifth argument: [%4]
echo Entire command line: [%*]

復制代碼

查看運行結果:意思就是將在catalina.bat文件中自己調用自己,傳遞參數Y,下面看一下測試,將test.bat中的內容改為:

@echo off
call "%~f0" %* <"%TEMP%\%~nx0.Y"

查看運行結果,在程序運行了一段時間以後,得出如下結論:很奇怪,奇怪亮點,為什麼運行的時候會有停頓,第二,為什麼會產生這個結果。下面解決這兩個困惑,我覺得程序在運行的時候肯定是在後台運行什麼操作了,所以我將test.bat中的內容改了一下:

call "%~f0" %* <"%TEMP%\%~nx0.Y"

然後再次運行,得到結果:原來程序在輸出最終結果之前一直到在調用自己,所以會有一個停頓的感覺。

第二:為什麼會產生這個結果:下面看第96行的內容:

set RETVAL=%ERRORLEVEL%

在前面的的內容中可能給大家一種誤解,所以在看到這句話的時候,不知道是不是也有人跟我似的直接去環境變數中找ERRORLEVEL的值,找不到之後覺得我在忽悠大家,下面我跟大家說說這個ERRORLEVEL。不知道大家是不是了解在Linux中的$?這個結果返回值,其實ERRORLEVEL和$?差不多,都是用來表示上次執行結果的,如果返回0說明執行正確,如果不是0說明執行失敗。例如在test.bat中的內容:

call %ERRORLEVEL%

執行結果:下面看97行的內容:

del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1

這裡面有/Q, >NUL, 2>&1需要跟大家解釋一下:

/Q: 跟在del後面表示不需要互動式的刪除。安靜模式的意思。如在test.bat中的內容如下:

del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1

然後運行結果為:此時文件系統中的文件確實已經被刪除,只是在刪除的過程中沒有顯示刪除的過程,下面我們重新創建此文件,然後把/Q標記去掉以後在嘗試一次:

>NUL 就是將輸出輸出到NUL中,這樣有錯誤的情況下你什麼都拿不到。

2>&1:2是值錯誤輸出,&1是標准輸出,意思就是將錯誤輸出重定向到標准輸出中

>NUL 2>&1的意思就是將錯誤輸出重定向到標准輸出,最後在重定向到NUL中,這樣出現錯誤,你從表面上不會看出來。如果將test.bat中的刪除操作執行多次,

@echo off
del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1

看結果:也不會顯示異常,如果將>NUL 2>&1刪除以後,再次執行:

@echo off
del /Q "%TEMP%\%~nx0.Y"

結果就會顯示出異常:下面看第98行的內容:

exit /B %RETVAL%

下面的mainEntry和gotHome節點的信息同前一節剛開始的內容一樣,所有就不再說明,如果對此有什麼疑問,請查看查看tomcat啟動文件都干點啥一節。在接下來的部分中我想把115-137行的內容放在一起說明,因為他們分為兩部分,分別引入setenv.bat和setclasspath.bat並執行,
復制代碼

:okHome

rem Ensure that any user defined CLASSPATH variables are not used on startup,
rem but allow them to be specified in setenv.bat, in rare case when it is needed.
set CLASSPATH=

rem Get standard environment variables
if "%CATALINA_BASE%" == "" goto gotSetenvHome
if exist "%CATALINA_BASE%\bin\setenv.bat" call "%CATALINA_BASE%\bin\setenv.bat"
goto gotSetenvBase
:gotSetenvHome
if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
:gotSetenvBase

rem Get standard Java environment variables
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat"
echo This file is needed to run this program
goto end
:okSetclasspath
set "BASEDIR=%CATALINA_HOME%"
call "%CATALINA_HOME%\bin\setclasspath.bat" %1
if errorlevel 1 goto end

復制代碼

這部分的操作就是設置環境變數,由於在tomcat7.0.8版本中不存在setenv.bat所以就不說了,setclasspath.bat這個腳本很重要,瀏覽一下其中的內容:
View Code

其中就是關於JAVA環境的一些校驗和變數的設置,重要性不言而喻,所以如果執行本步操作失敗的情況下,程序將退出執行。

與言和模型rem外套相關的資料

熱點內容
瑞格牌羽絨服 瀏覽:820
木美羽絨服 瀏覽:3
女式外套新款羊剪絨 瀏覽:419
閬中多維校服 瀏覽:719
蓮塘一中校服 瀏覽:639
穿低匡威配什麼褲子 瀏覽:392
男士韓式丅恤中袖小領襯衫 瀏覽:816
胖人穿襯衣搭什麼褲子好看圖片 瀏覽:559
女生穿裙子的裡面穿什麼褲子 瀏覽:269
款兒童羽絨服 瀏覽:15
小馬甲寫的書 瀏覽:689
機車款外套貼身好還是寬松好 瀏覽:253
怎麼樣織小寶寶衣 瀏覽:776
韓國女生風衣都是什麼牌子的好看 瀏覽:873
霧藍灰羽絨服配什麼顏色褲子好看 瀏覽:626
男生什麼衣服配校服好看 瀏覽:398
織圍巾上的圖案好看圖片欣賞 瀏覽:13
土褐色風衣 瀏覽:621
淡粉色的衣服搭什麼褲子好看 瀏覽:20
哺乳期多少文胸夠用 瀏覽:455