源碼啟動命令
以D:\java\包名1\包名2\welcome.java文件為例(package 包名1.包名2)
首先進入DOS命令窗口
運行 -->cmd
接著將路徑替換為編寫的java項目的路徑
cd d:\java
然後編輯java文件
javac 包名1.包名2.welcome.java
最後運行java文件
java 包名1.包名2.welcome
當然還可以藉助於java編輯工具運行,使用不同工具運行方法當然就不同了。你要的應該是這吧?
❷ 用什麼命令執行源代碼
CMD命令大全 有關某個命令的詳細信息,請鍵入 HELP 命令名 XP.CMD命令大全 有關某個命令的詳細信息,請鍵入 HELP 命令名 ASSOC 顯示或修改文件擴展名關聯。 AT 計劃在計算機上運行的命令和程序。 ATTRIB 顯示或更改文件屬性。 BREAK 設置或清除擴展式 CTRL+C 檢查。 CACLS 顯示或修改文件的訪問控制列表(ACLs)。 CALL 從另一個批處理程序調用這一個。 CD 顯示當前目錄的名稱或將其更改。 CHCP 顯示或設置活動代碼頁數。 CHDIR 顯示當前目錄的名稱或將其更改。 CHKDSK 檢查磁碟並顯示狀態報告。 CHKNTFS 顯示或修改啟動時間磁碟檢查。 CLS 清除屏幕。 CMD 打開另一個 Windows 命令解釋程序窗口。 COLOR 設置默認控制台前景和背景顏色。 COMP 比較兩個或兩套文件的內容。 COMPACT 顯示或更改 NTFS 分區上文件的壓縮。 CONVERT 將 FAT 卷轉換成 NTFS。您不能轉換 當前驅動器。 COPY 將至少一個文件復制到另一個位置。 DATE 顯示或設置日期。 DEL 刪除至少一個文件。 DIR 顯示一個目錄中的文件和子目錄。 DISKCOMP 比較兩個軟盤的內容。 DISKCOPY 將一個軟盤的內容復制到另一個軟盤。 DOSKEY 編輯命令行、調用 Windows 命令並創建宏。 ECHO 顯示消息,或將命令回顯打開或關上。 ENDLOCAL 結束批文件中環境更改的本地化。 ERASE 刪除至少一個文件。 EXIT 退出 CMD.EXE 程序(命令解釋程序)。 FC 比較兩個或兩套文件,並顯示 不同處。 FIND 在文件中搜索文字字元串。 FINDSTR 在文件中搜索字元串。 FOR 為一套文件中的每個文件運行一個指定的命令。 FORMAT 格式化磁碟,以便跟 Windows 使用。 FTYPE 顯示或修改用於文件擴展名關聯的文件類型。 GOTO 將 Windows 命令解釋程序指向批處理程序 中某個標明的行。 GRAFTABL 啟用 Windows 來以圖像模式顯示 擴展字元集。 HELP 提供 Windows 命令的幫助信息。 IF 執行批處理程序中的條件性處理。 LABEL 創建、更改或刪除磁碟的卷標。 MD 創建目錄。 MKDIR 創建目錄。 MODE 配置系統設備。 MORE 一次顯示一個結果屏幕。 MOVE 將文件從一個目錄移到另一個目錄。 PATH 顯示或設置可執行文件的搜索路徑。 PAUSE 暫停批文件的處理並顯示消息。 POPD 還原 PUSHD 保存的當前目錄的上一個值。 PRINT 列印文本文件。 PROMPT 更改 Windows 命令提示符。 PUSHD 保存當前目錄,然後對其進行更改。 RD 刪除目錄。 RECOVER 從有問題的磁碟恢復可讀信息。 REM 記錄批文件或 CONFIG.SYS 中的注釋。 REN 重命名文件。 RENAME 重命名文件。 REPLACE 替換文件。 RMDIR 刪除目錄。 SET 顯示、設置或刪除 Windows 環境變數。 SETLOCAL 開始批文件中環境更改的本地化。 SHIFT 更換批文件中可替換參數的位置。 SORT 對輸入進行分類。 START 啟動另一個窗口來運行指定的程序或命令。 SUBST 將路徑跟一個驅動器號關聯。 TIME 顯示或設置系統時間。 TITLE 設置 CMD.EXE 會話的窗口標題。 TREE 以圖形模式顯示驅動器或路徑的目錄結構。 TYPE 顯示文本文件的內容。 VER 顯示 Windows 版本。 VERIFY 告訴 Windows 是否驗證文件是否已正確 寫入磁碟。 VOL 顯示磁碟卷標和序列號。 XCOPY 復制文件和目錄樹。 appwiz.cpl-添加刪除程序 control userpasswords2-用戶帳戶設置 cleanmgr-垃圾整理 CMD-命令提示符可以當作是 Windows 的一個附件,Ping,Convert 這些不能在圖形環境下 使用的功能要藉助它來完成。 cmd-jview察看Java虛擬機版本。 command.com-調用的則是系統內置的 NTVDM,一個 DOS虛擬機。它完全是一個類似 Virtual PC 的 虛擬環境,和系統本身聯系不大。當我們在命令提示符下運行 DOS 程序時,實際上也 是自動轉移到 NTVDM虛擬機下,和 CMD 本身沒什麼關系。 calc-啟動計算器 chkdsk.exe-Chkdsk磁碟檢查 compmgmt.msc-計算機管理 conf-啟動 netmeeting control userpasswords2-User Account 許可權設置 devmgmt.msc-設備管理器 diskmgmt.msc-磁碟管理實用程序 dfrg.msc-磁碟碎片整理程序 drwtsn32- 系統醫生 dvdplay-啟動Media Player dxdiag-DirectX Diagnostic Tool gpedit.msc-組策略編輯器 gpupdate /target:computer /force 強制刷新組策略 eventvwr.exe-事件查看器 explorer-打開資源管理器 logoff-注銷命令 lusrmgr.msc-本機用戶和組 msinfo32-系統信息 msconfig-系統配置實用程序 net start (servicename)-啟動該服務 net stop (servicename)-停止該服務 notepad-打開記事本 nusrmgr.cpl-同control userpasswords,打開用戶帳戶控制面板 Nslookup-IP地址偵測器 oobe/msoobe /a-檢查XP是否激活 perfmon.msc-計算機性能監測程序 progman-程序管理器 regedit-注冊表編輯器 regedt32-注冊表編輯器 regsvr32 /u *.dll-停止dll文件運行 route print-查看路由表 rononce -p -15秒關機 rsop.msc-組策略結果集 rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----啟動一個空白的Windows 圖片和傳真查看器 secpol.msc本地安全策略 services.msc-本地服務設置 sfc /scannow-啟動系統文件檢查器 sndrec32-錄音機 taskmgr務管理器(適用於2000/xp/2003) tsshutdn-60秒倒計時關機命令 winchat-XP自帶區域網聊天 winmsd-系統信
❸ 啟動mysql伺服器的命令是什麼
啟動mysql伺服器的命令是:
1、linux開啟mysql命令。
2、啟動MySQL的命令。
3、linux啟動mysql。
4、linux中如何啟動mysql。
linux啟動mysql的命令,為您提供linux啟動mysql的命令圖文信息,打開linux系統,在linux的桌面的空白處右擊。在彈出的下拉選項里,在啟動之前需要修改mysql的配置文件,修改之後可以使用servicemysqldstart命令來啟動mysql服務,使用命令ps-ef|grepmysqld來查看有沒有啟動成功。
含義
MySQL是一種關系型資料庫管理系統,關系資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。
MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型和大型網站的開發都選擇 MySQL 作為網站資料庫。
❹ (suse linux)源碼安裝apache,啟動時提示許可權不夠!命令:bash: /usr/local/httpd/bin/apachectl:許可權不夠
http://wenku..com/view/67f7d10216fc700abb68fccb.html
安裝編譯過程中有錯誤提示嗎?或者你直接去日誌中查查,看看具體原因是什麼
❺ MC1.6.4 易語言啟動器源碼
.版本 2 .支持庫 shell
命令行 = 「-Xms」 + 最小內存_子 + 「m -Xmx」 + 最大內存_子 + 「m -Dfml.=true -Dfml.ignorePatchDiscrepancies=true -Djava.library.path=」 + #引號 + 「.minecraft\natives」 + #引號 + 「 -cp 」 + #引號 + 運行目錄 + 「\.minecraft\libraries\java3d\vecmath\1.3.1\vecmath-1.3.1.jar;」 + 運行目錄 + 「\.minecraft\libraries\net\sf\trove4j\trove4j\3.0.3\trove4j-3.0.3.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\ibm\icu\icu4j-core-mojang\51.2\icu4j-core-mojang-51.2.jar;」 + 運行目錄 + 「\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;」 + 運行目錄 + 「\.minecraft\libraries\io\netty\netty-all\4.0.10.Final\netty-all-4.0.10.Final.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\google\guava\guava\15.0\guava-15.0.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;」 + 運行目錄 + 「\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;」 + 運行目錄 + 「\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;」 + 運行目錄 + 「\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;」 + 運行目錄 + 「\.minecraft\libraries\com\mojang\authlib\1.2\authlib-1.2.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\apache\logging\log4j\log4j-api\2.0-beta9\log4j-api-2.0-beta9.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\apache\logging\log4j\log4j-core\2.0-beta9\log4j-core-2.0-beta9.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.1-nightly-20131120\lwjgl-2.9.1-nightly-20131120.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.1-nightly-20131120\lwjgl_util-2.9.1-nightly-20131120.jar;」 + 運行目錄 + 「\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl-platform\2.9.1-nightly-20131120\lwjgl-platform-2.9.1-nightly-20131120-natives-windows.jar;」 + 運行目錄 + 「\.minecraft\libraries\tv\twitch\twitch\5.12\twitch-5.12.jar;」 + 運行目錄 + 「\.minecraft\versions\」 + 游戲名字 + 「\」 + 游戲名字 + 「.jar」 + #引號 + 「 net.minecraft.client.main.Main --username 」 + 游戲名字_子 + 「 --version 」 + 游戲名字 + 「 --gameDir .minecraft --assetsDir .minecraft\assets --assetIndex 」 + 游戲名字 + 「 --uuid ${auth_uuid} --accessToken ${auth_access_token} --userProperties {} --userType mojang --tweakClass cpw.mods.fml.common.launcher.FMLTweaker」
執行 (#打開文件, java路徑_子, 命令行, 運行目錄, )
❻ [Spring boot源碼解析] 2 啟動流程分析
在了解 Spring Boot 的啟動流程的時候,我們先看一下一個Spring Boot 應用是如何啟動的,如下是一個簡單的 SpringBoot 程序,非常的簡潔,他是如何做到的呢,我們接下來就將一步步分解。
我們追蹤 SpringApplication.run() 方法,其實最終它主要的邏輯是新建一個 SpringApplication ,然後調用他的 run 方法,如下:
我們先來看一下創建 SpringApplication 的方法:
在將Main class 設置 primarySources 後,調用了 WebApplicationType.deceFromClasspath() 方法,該方法是為了檢查當前的應用類型,並設置給 webApplicationType 。 我們進入 deceFromClasspath 方法 :
這里主要是通過類載入器判斷是否存在 REACTIVE 相關的類信息,假如有就代表是一個 REACTIVE 的應用,假如不是就檢查是否存在 Servelt 和 ,假如都沒有,就代表應用為非 WEB 類應用,返回 NONE ,默認返回 SERVLET 類型,我們這期以我們目前最常使用的 SERVLET 類型進行講解,所以我們在應用中引入了 spring-boot-starter-web 作為依賴:
他會包含 Spring-mvc 的依賴,所以就包含了內嵌 tomcat 中的 Servlet 和 Spring-web 中的 ,因此返回了 SERVLET 類型。
回到剛才創建 SpringApplication 的構建方法中,我們設置完成應用類型後,就尋找所有的 Initializer 實現類,並設置到 SpringApplication 的 Initializers 中,這里先說一下 getSpringFactoriesInstances 方法,我們知道在我們使用 SpringBoot 程序中,會經常在 META-INF/spring.factories 目錄下看到一些 EnableAutoConfiguration ,來出發 config 類注入到容器中,我們知道一般一個 config 類要想被 SpringBoot 掃描到需要使用 @CompnentScan 來掃描具體的路徑,對於 jar 包來說這無疑是非常不方便的,所以 SpringBoot 提供了另外一種方式來實現,就是使用 spring.factories ,比如下面這個,我們從 Springboot-test 中找到的例子,這里先定義了一個ExampleAutoConfiguration,並加上了 Configuration 註解:
然後在 spring.factories 中定義如下:
那這種方式是怎麼實現的你,這就要回到我們剛才的方法 getSpringFactoriesInstances :
我們先來看一下傳入參數,這里需要注意的是 args,這個是初始化對應 type 的時候傳入的構造參數,我們先看一下 SpringFactoriesLoader#loadFactoryNames 方法:
首先是會先檢查緩存,假如緩存中存在就直接返回,假如沒有就調用 classLoader#getResources 方法,傳入 META-INF/spring.factories ,即獲取所有 jar 包下的對應文件,並封裝成 UrlResource ,然後使用 PropertiesLoaderUtils 將這些信息讀取成一個對一對的 properties,我們觀察一下 spring.factories 都是按 properties 格式排版的,假如有多個就用逗號隔開,所以這里還需要將逗號的多個類分隔開來,並加到 result 中,由於 result 是一個 LinkedMultiValueMap 類型,支持多個值插入,最後放回緩存中。最終完成載入 META-INF/spring.factories 中的配置,如下:
我們可以看一下我們找到的 initializer 有多少個:
在獲取到所有的 Initializer 後接下來是調用 方法進行初始化。
這里的 names 就是我們上面通過類載入器載入到的類名,到這里會先通過反射生成 class 對象,然後判斷該類是否繼承與 ApplicationContextInitializer ,最後通過發射的方式獲取這個類的構造方法,並調用該構造方法,傳入已經定義好的構造參數,對於 ApplicationContextInitializer 是無參的構造方法,然後初始化實例並返回,回到原來的方法,這里會先對所有的 ApplicationContextInitializer 進行排序,調用 #sort(instances) 方法,這里就是根據 @Order 中的順序進行排序。
接下來是設置 ApplicationListener ,我們跟進去就會發現這里和上面獲取 ApplicationContextInitializer 的方法如出一轍,最終會載入到如圖的 15 個 listener (這里除了 外,其他都是 SpringBoot 內部的 Listener):
在完成 SpringApplication 對象的初始化後,我們進入了他的 run 方法,這個方法幾乎涵蓋了 SpringBoot 生命周期的所有內容,主要分為九個步驟,每一個步驟這里都使用註解進行標識:
主要步驟如下:
第一步:獲取 SpringApplicationRunListener, 然後調用他的 staring 方法啟動監聽器。
第二步:根據 SpringApplicationRunListeners以及參數來准備環境。
第三步:創建 Spring 容器。
第四步:Spring 容器的前置處理。
第五步:刷新 Spring 容器。
第六步: Spring 容器的後置處理器。
第七步:通知所有 listener 結束啟動。
第八步:調用所有 runner 的 run 方法。
第九步:通知所有 listener running 事件。
我們接下來一一講解這些內容。
我們首先看一下第一步,獲取 SpringApplicationRunListener :
這里和上面獲取 initializer 和 listener 的方式基本一致,都是通過 getSpringFactoriesInstances , 最終只找到一個類就是: org.springframework.boot.context.event.EventPublishingRunListener ,然後調用其構造方法並傳入產生 args , 和 SpringApplication 本身:
我們先看一下構造函數,首先將我們獲取到的 ApplicationListener 集合添加到initialMulticaster 中, 最後都是通過操作 來進行廣播,我,他繼承於 ,我們先看一下他的 addApplicationListener 方法:
我們可以看出,最後是放到了 applicationListenters 這個容器中。他是 defaultRetriever 的成員屬性, defaultRetriever 則是 的私有類,我們簡單看一下這個類:
我們只需要看一下這里的 getApplicationListeners 方法,它主要是到 beanFactory 中檢查是否存在多的 ApplicationListener 和舊的 applicationListeners 組合並返回,接著執行 listener 的 start 方法,最後也是調用了 的 multicastEvent 查找支持對應的 ApplicationEvent 類型的通知的 ApplicationListener 的 onApplicationEvent 方法 ,這里除了會:
篩選的方法如下,都是調用了對應類型的 supportsEventType 方法 :
如圖,我們可以看到對 org.springframework.boot.context.event.ApplicationStartingEvent 感興趣的有5個 Listener
環境准備的具體方法如下:
首先是調用 getOrCreateEnvironment 方法來創建 environment ,我們跟進去可以發現這里是根據我們上面設置的環境的類型來進行選擇的,當前環境會創建 StandardServletEnvironment
我們先來看一下 StandardServletEnvironment 的類繼承關系圖,我們可以看出他是繼承了 AbstractEnvironment :
他會調用子類的 customizePropertySources 方法實現,首先是 StandardServletEnvironment 的實現如下,他會添加 servletConfigInitParams , servletContextInitParams , jndiProperties 三種 properties,當前調試環境沒有配置 jndi properties,所以這里不會添加。接著調用父類的 customizePropertySources 方法,即調用到了 StandardEnvironment 。
我們看一下 StandardEnvironment#customizePropertySources 方法,與上面的三個 properties 創建不同,這兩個是會進行賦值的,包括系統環境變數放入 systemEnvironment 中,jvm 先關參數放到 systemProperties 中:
這里會添加 systemEnvironment 和 systemProperties 這兩個 properties,最終拿到的 properties 數量如下 4個:
在創建完成 Environment 後,接下來就到了調用 configureEnvironment 方法:
我們先看一下 configurePropertySources 方法,這里主要分兩部分,首先是查詢當前是否存在 defaultProperties ,假如不為空就會添加到 environment 的 propertySources 中,接著是處理命令行參數,將命令行參數作為一個 CompositePropertySource 或則 添加到 environment 的 propertySources 裡面,
接著調用 ConfigurationPropertySources#attach 方法,他會先去 environment 中查找 configurationProperties , 假如尋找到了,先檢查 configurationProperties 和當前 environment 是否匹配,假如不相等,就先去除,最後添加 configurationProperties 並將其 sources 屬性設置進去。
回到我們的 prepareEnvironment 邏輯,下一步是通知觀察者,發送 事件,調用的是 SpringApplicationRunListeners#environmentPrepared 方法,最終回到了 #multicastEvent 方法,我們通過 debug 找到最後對這個時間感興趣的 Listener 如下:
其主要邏輯如下:
這個方法最後載入了 PropertySourceLoader , 這里主要是兩種,一個是用於 Properties 的,一個是用於 YAML 的如下:
其中 apply 方法主要是載入 defaultProperties ,假如已經存在,就進行替換,而替換的目標 PropertySource 就是 load 這里最後的一個 consumer 函數載入出來的,這里列一下主要做的事情:
1、載入系統中設置的所有的 Profile 。
2、遍歷所有的 Profile ,假如是默認的 Profile , 就將這個 Profile 加到 environment 中。
3、調用load 方法,載入配置,我們深入看一下這個方法:
他會先調用 getSearchLocations 方法,載入所有的需要載入的路徑,最終有如下路徑:
其核心方法是遍歷所有的 propertySourceLoader ,也就是上面載入到兩種 propertySourceLoader ,最紅 loadForFileExtension 方法,載入配置文件,這里就不展開分析了,說一下主要的作用,因為每個 propertySourceLoader 都有自己可以載入的擴展名,默認擴展名有如下四個 properties, xml, yml, yaml,所以最終拿到文件名字,然後通過 - 拼接所有的真實的名字,然後加上路徑一起載入。
接下來,我們分析 BackgroundPreinitializer ,這個方法在接收 ApplicationPrepareEnvironment 事件的時候真正調用了這份方法:
1、 ConversionServiceInitializer 主要負責將包括 日期,貨幣等一些默認的轉換器注冊到 formatterRegistry 中。
2、 ValidationInitializer 創建 validation 的匹配器。
3、 MessageConverterInitializer 主要是添加了一些 http 的 Message Converter。
4、 JacksonInitializer 主要用於生成 xml 轉換器的。
接著回到我們將的主體方法, prepareEnvironment 在調用完成 listeners.environmentPrepared(environment) 方法後,調用 bindToSpringApplication(environment) 方法,將 environment 綁定到 SpirngApplication 中。
接著將 enviroment 轉化為 StandardEnvironment 對象。
最後將 configurationProperties 加入到 enviroment 中, configurationProperties 其實是將 environment 中其他的 PropertySource 重新包裝了一遍,並放到 environment 中,這里主要的作用是方便 進行解析。
它主要是檢查是否存在 spring.beaninfo.ignore 配置,這個配置的主要作用是設置 javaBean 的內省模式,所謂內省就是應用程序在 Runtime 的時候能檢查對象類型的能力,通常也可以稱作運行時類型檢查,區別於反射主要用於修改類屬性,內省主要用戶獲取類屬性。那麼我們什麼時候會使用到內省呢,java主要是通過內省工具 Introspector 來完成內省的工作,內省的結果通過一個 Beaninfo 對象返回,主要包括類的一些相關信息,而在 Spring中,主要是 BeanUtils#Properties 會使用到,Spring 對內省機制還進行了改進,有三種內省模式,如下圖中紅色框框的內容,默認情況下是使用 USE_ALL_BEANINFO。假如設置為true,就是改成第三中 IGNORE_ALL_BEANINFO
首先是檢查 Application的類型,然後獲取對應的 ApplicationContext 類,我們這里是獲取到了 org.springframework.boot.web.servlet.context. 接著調用 BeanUtils.instantiateClass(contextClass); 方法進行對象的初始化。
最終其實是調用了 的默認構造方法。我們看一下這個方法做了什麼事情。這里只是簡單的設置了一個 reader 和一個 scanner,作用於 bean 的掃描工作。
我們再來看一下這個類的繼承關系
這里獲取 ExceptionReporter 的方式主要還是和之前 Listener 的方式一致,通過 getSpringFactoriesInstances 來獲取所有的 SpringBootExceptionReporter 。
其主要方法執行如下:
❼ 如何使用命令行編譯和運行Java代碼
這里給你一個具體的場景來講述如何使用命令行編譯和運行Java代碼:
任務
我們有一個相當標準的Java工程,它包含三個頂層文件夾:
/bin-用來存放已編譯好的.class文件
/lib-用來存放第三方.jar文件
/src-存放.java源代碼
我的任務就是要從Java工程根目錄去編譯和運行工程。我們將使用Windows操作系統作為例子(和在Unix系統上的唯一區別就是路徑分隔符是」:「而不是」;「)。
編譯Java代碼
第一步是把文本文件.java源代碼編譯成Java虛擬機位元組碼文件(.class)。這一步使用一個叫javac的JDK工具來完成。
假設我們在應用的根目錄下,從com.example包下嘗試把Application.java文件,以及把lib文件夾中的lib1.jar和lib2.jar庫編譯到目標文件夾bin下,編譯命令應該是如下格式:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java1
編譯完後,/bin/com/example/Application.class應該就會創建出來了。如何Application.java使用了其他工程的類,那麼他們全部會自動被編譯並且放到相應的文件夾下。
運行Java代碼
為了啟動我們剛剛編譯的.class文件,需要另外一個叫java的JDK工具。
假設我們在應用的根目錄下,為了能夠啟動com.example包中的,使用了lib文件夾下的lib1.jar和lib2.jar庫的Application.class文件,啟動命令應該是如下
java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
我們在這里沒有提供文件名,只有一個實際的類名,java會基於提供的classpath(縮寫成cp)路徑去搜索。
❽ Android源碼能在其他電腦上運行嗎
如下:
1.在ubuntu系統下,進入源碼根目錄,運行如下命令。
mmm命令編譯idegen模塊,在源碼目錄下的out/host/linux-x86/frameworks/目錄下生成了idegen.jar文件。
2.在源碼目錄下繼續執行如下命令:
3.development/tools/idegen/idegen.sh命令執行完成,會在根目錄下生成
android.iml和android.ipr這兩個文件,這兩個文件是Android Studio的工程配置文件。
4.到這一步我們可以打開Android Studio導入源碼了,不過還有一些要注意的地方,如果我們就這么直接導入,會把所有的源碼模塊導入到Android Studio中,這會很慢的,想想源碼那麼多文件,直接全部導入,如果你的電腦配置不好,可能會直接假死。所以我們最好過濾一下我們不需要的源碼文件,只導入我們需要的模塊。
對比源碼下目錄,我把除了frameworks模塊的其他所有模塊都過濾掉了。這樣導入的速度很快,3分鍾左右就導入完成了。
5.所有配置完成了,下面啟動Android Studio開始導入源碼。
6.Android Studio導入源碼
點擊ok,大概過了3-5分鍾,就導入完成了。
7.好了,現在我們可以愉快的使用Android Studio查看源碼了。
8.如果你不想編譯源碼,還想把源碼導入Android Studio的簡單方法是什麼呢,到這一步我想大家都知道了,就是把上面生成的兩個文件android.iml和android.ipr拷貝到你的未編譯源碼根目錄就可以用Android Studio導入了。
9.當然,一般我們大部分人不在ubuntu下開發app ,為了能在Windows或Mac系統下也能使用Android Studio查看未編譯的源碼,我們也可以像上一步那樣直接拷貝ubuntu下的android.iml和android.ipr文件到Windows或Mac系統下的android源碼根目錄下,然後導入Adnroid Studio中,這樣就可以在這兩個平台上進行查看源碼了,不用一直開虛擬機了。
❾ 易語言我的世界啟動器源碼
根據游戲的jar內容和代碼處理,你不能直接使用java啟動MC,需要用java編譯器(javaw.exe)進行啟動,這個需要研究java了,建議使用其他語言製作
❿ linux下編譯程序源碼,執行make命令時報錯如圖,有沒有什麼頭緒或者建議,謝謝大神了
linux下所有軟體源碼包的安裝方式一般都會在readme中有詳細的官方說明,對於gerbv如下圖所示
上述大部分內容對linux下所有軟體包的安裝都適用。