1、安裝JDK,配置環境變數。 不將JDK所在的目錄配置到系統環境變數中,系統怎麼能找到JDK中的編譯器,解釋器在哪呀?如果不指明JDK的bin文件夾的位置,在shell中是無法找到javac/java命令的。這點就不多說了。 2、編譯,解釋執行Java程序。【 javac命令/java命令】 (1) Test.java源代碼 Java代碼 //預設包,該程序源代所在位置: e:/project/ Test.java public class Test{ ..... public static void main(String[] args){ ..... } } 編譯命令: 【javac e:/project/Test.java 】 在e:/project目錄下生成了Test.class 注意: ① 如果想要將Test.class生成在指定目錄下,可以使用javac -d命令,如【 javac -d c:/ e:/project/Test.java 】 在c:/目錄下生成T est.class(即e:/Test.class) ② javac -cp 中的-cp並不是指定Test.java的目錄,這一點不要誤解了。-cp/-classpath只能是指定類文件(.class文件)的路徑。上面的命令不能寫成: java -cp e:/project Test.java 解釋執行命令 :【 j ava -cp e:/project Test】 將調用解釋器執行e:/project中的Test.class位元組碼。 注意: ① -cp 是指定用戶類文件的位置,比如上面的Test.class的位置。這里因為要尋找Test.class類文件,而不是Test.java源代碼文件,所以要通過-cp指定。千萬沒有這樣的執行命令: java e:/project/Test (2) Test.java源代碼 Java代碼//預設包,但源代碼中引用了一個JAR包內的自定義類,這個JAR包位於c:/目錄下 import net.single.util.SL; //導入自定義JAR包中的類 public class Test{ private SL aObject=new SL(); //初始化JAR中的SL類 public static void main(String[] args){ ...... } } 編譯命令: 【 javac -cp c:/single.jar e:/project/Test.java】 在e:/project目錄下生成了Test.class 注意: 如果當前你要編譯的java文件中引用了其它的類,但該引用類的.class文件不在當前目錄下(或在其他目錄下,或在.zip/.jar內),這種情況下就需要在javac命令後面,加上-cp/-classpath參數來指明這些類的位置。 一般來說有三種指定方式: ① 絕對或相對路徑:javac -cp c:/single.jar Test .java 或 javac -cp ../single.jar Test .java (其中.. 表示上一級目錄)
② 系統變數:javac -cp %CLASSPATH% Test .java (其中:%CLASSPATH%表示使用系統變數CLASSPATH的值進行查找,這里假設single.jar的路徑就包含在CLASSPATH系統變數中) ③ 當前目錄: javac -cp ./single.jar Test.java (其中. 表示當前目錄) 解釋執行命令 :【 java -cp c:/single.jar;e:/project Test】 注意: ① -cp的路徑不僅指定了所需要的single.jar的位置,還必須指出編譯後的Test.class的位置。 ② 類路徑中的不同項目要用分隔符區分,Unix系統的分隔符是冒號(:),Windows的是分號(;) (3) Test.java 源代碼 Java代碼//該類在net.single包中,類中沒有引入其他目錄下的自定義類 package net.single; public class Test{ ..... public static void main(String[] args){ ..... } } 編譯命令:【javac -d . e:/project/Test.java 】 注意: ① 如果沒有-d而直接編譯javac e:/project/Test.java。將會在 e:/project 目錄下直接生成一個Test.class,但此Test.class無法解釋執行,因為它實際上在e.single包中。所以必須將包一起編譯出來,這里用了-d參數。 ② 上面的編譯結果將在e:/目錄下 自動根據包的結構形式創建文件目錄,e:/net/single/Test.class 解釋執行命令 :【java -cp e:/ net.single.Test 】 現在我們總結一下: [a.] 沒有IDE環境,編譯一個大型項目是很困難的,因為必須把需要被其他類引用的類先編譯,而且最好把包結構一起編譯出來。所以一般命令格式如下: 編譯: javac -cp (需要引入的類文件路徑1;需要引入的類文件路徑2;....) -d (編譯出的類文件存放的位置目錄) (待編譯文件路徑) 執行: java -cp (需要解釋執行的類文件路徑) (帶包的類文件) 例:現在要編譯一個類源碼: Test.java,其中該類位於E:/project/下 (1. Test源代碼中使用了一個JAR包中的類,這個single.jar包位於C:/目錄下。 (2. Test源代碼中使用了一個自定義類Content,這個類的源代碼Content.java位於E:/下 (3. Test所在包為net.single,Content所在包為net.single.cont 解決: 步1:由於Test使用了Content類,所以必須先編譯Content,而且Content類在E:/目錄下,而且 屬於包net.single.cont 編譯命令: javac -d . e:/Content.java 編譯結果: 在Content.java的當前目錄下生成了一個 net/single/cont/Content.class 文件(帶包結構),即e:/net/single/cont/Content.class 步2:編譯Test類,並指明所引入的single.jar包和Content.class的位置 編譯命令: javac -cp c:/single.jar;e:/net/single/cont -d . e:/project/Test.java 編譯結果: 在Test的上一級目錄下生成了一個 net/single/Test.class 文件,即e:/ net/single/Test.class 步3:解釋執行Test.class 執行命令: java -cp c:/single.jar;e:/ net.single.Test 3、編譯器,虛擬機如何定位到類的 Java代碼package net.single; import java.util.*; import net.single.util.*; public class Test{ //SingleUtil類在c:/single.jar中的net.single.util包下 private SingleUtil sut=new SingleUtil(); } 編譯命令: javac -cp c:/single.jar -d . e:/project/Test.java 編譯器首先找到e:/project/Test.java。然後對Test源代碼進行編譯,當編譯到創建SingleUtil類對象的語句時,編譯器要開始尋找SingleUtil.class的位置。編譯器首先查找包含這個類的所有包的位置,並查詢所有的import指令,確定其中是否包含了被引用了的類。 如上面的Test.java,編譯器將試圖查找java.lang.SingleUtil,java.util.SingleUtil,net.single.util.SingleUtil以及當前包中的SingleUtil(即net.single.SingleUtil)。編譯器將在三個部分中查找類文件: (1) 在JDK的lib目錄下的標准類庫文件中查找java.lang,java.util和net.single.util包。顯然只能找到java.lang和java.util包。然後在這兩個包中查找SingleUtil類文件。當然是找不到的。 (2) 在編譯命令中-cp參數表明的類路徑(C:/single.jar)下查找java.lang,java.util和net.single.util包。顯然只能找到net.single.util包,然後在裡面找到SingleUtil類文件。 (3) 在Test.java的當前目錄下查找SingleUtil,也是沒有的。 如果沒有找到SingleUtil,或者找到多個SingleUtil。
2. 虛擬機可以虛擬定位嗎
可以,下載安卓虛擬機,在裡面虛擬定位打卡即可。
虛擬機(Virtual Machine)指通過軟體模擬的具有完整硬體系統功能的、運行在一個完全隔離環境中的完整計算機系統。在實體計算機中能夠完成的工作在虛擬機中都能夠實現。在計算機中創建虛擬機時,需要將實體機的部分硬碟和內存容量作為虛擬機的硬碟和內存容量。每個虛擬機都有獨立的CMOS、硬碟和操作系統,可以像使用實體機一樣對虛擬機進行操作。
虛擬系統通過生成現有操作系統的全新虛擬鏡像,它具有真實windows系統完全一樣的功能,進入虛擬系統後,所有操作都是在這個全新的獨立的虛擬系統裡面進行,可以獨立安裝運行軟體,保存數據,擁有自己的獨立桌面,不會對真正的系統產生任何影響 ,而且具有能夠在現有系統與虛擬鏡像之間靈活切換的一類操作系統。
流行的虛擬機軟體有VMware(VMWare ACE)、Virtual Box和Virtual PC,它們都能在Windows系統上虛擬出多個計算機。
虛擬系統和傳統的虛擬機(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在於:虛擬系統不會降低電腦的性能,啟動虛擬系統不需要像啟動windows系統那樣耗費時間,運行程序更加方便快捷;虛擬系統只能模擬和現有操作系統相同的環境,而虛擬機則可以模擬出其他種類的操作系統;而且虛擬機需要模擬底層的硬體指令,所以在應用程序運行速度上比虛擬系統慢得多。
3. emobile在虛擬機中無法定位
方法1:安卓手機建立一個人為可控的虛擬運行環境,把E-Mobile內置於這個虛擬環境之中,然後E-Mobile所能獲取的任何數據,包括定位和照片數據等都必須從這個虛擬環境獲取,前面講了這個虛擬環境是人為可控的,所以只要我們修改了這個虛擬環境的定位數據和照片內容即可達到破解E-Mobile定位和拍照的目的。優點是,安卓手機直接可用,缺點是蘋果手機無法使用。
方法2:主要針對蘋果手機(免越獄),由於蘋果手機晶元的BUG,我們可以用一種外設插件屏蔽蘋果手機晶元的定位功能,然後給手機設置一個我們需要的簽到定位地址,從而實現破解E-Mobile定位的目的,優點蘋果手機傻瓜式的破解使用,極易上手機。缺點是只能改定位,不能破解拍照上傳相冊照片。
4. 安卓手機虛擬定位怎麼弄
就是在你手機上安裝一個虛擬機,然後在虛擬機里邊ROOT運行一個虛擬定位軟體,全局模擬一個位置,root運行比較穩定。
5. 如何獲取虛擬機的內核源代碼的絕對路徑
使用函數,
char *getfullpath(struct inode *inod)
{
struct dentry *dent = container_of(inod, struct dentry, d_inode);
if(dent == NULL)
printk("dent == NULL\n");
struct path *pat = container_of(dent, struct path, dentry);
if(pat ==NULL)
printk("pat == NULL\n");
else
printk("%p\n",pat);
struct file *filp = filp_open("/media/aaaaaa/", O_RDONLY, 0600);
if(filp ==NULL)
printk("file failed\n");
else
printk("%p\n",&(filp->f_path));
filp_close(filp,NULL);
char *path=NULL, *start=NULL;
char *fullpath=NULL;
printk("fullpath\n");
fullpath = kmalloc(PATH_MAX,GFP_KERNEL);
if(fullpath == NULL)
printk("kmalloc NULL\n");
printk("seccess\n");
if(!fullpath)
goto OUT;
memset(fullpath,0,PATH_MAX);
path = kmalloc(PATH_MAX,GFP_KERNEL);
if(!path)
{
printk("path NULL\n");
kfree(fullpath);
goto OUT;
}
memset(path,0,PATH_MAX);
//get the path
start = d_path(pat,path,PATH_MAX); //就是到這個函數掛,參數前面列印的不能在詳細了 , 沒有出現NULL的, 但是還是掛
if(start == NULL)
printk("d_path NULL \n");
printk("d_path seccess\n");
strcpy(fullpath,start);
kfree(path);
OUT:
return fullpath;
}
6. 虛擬機寫的程序源代碼在哪
arch 這個子目錄包含了此核心源代碼所支持的硬體體系結構相關的核心代碼。如對於X86平台就是i386。
7. 虛擬定位技術原理
虛擬定位技術原理為注入指定的app後,hook住定位相關的API,然後篡改軟體獲取的定位數據。通過 iTools, 愛思助手等工具進行虛擬定位。 這種虛擬定位的原理和用xcode一樣,開啟了手機的調試模式後,強行打開了手機的虛擬通過硬體外設定位。 原來蘋果的閃電口提供了一套和軟體API完全獨立的介面,叫IAP協議,在網上的MFIAccessoryInte。
虛擬定位的介紹
虛擬定位是指不使用真實的位置為系統或者應用提供信息,而使用其他指定或者虛構的位置。虛擬定位的作用,這個虛擬定位,主要是改變設備的地址。主要用於,需要在特定位置,做點事情的時候。
8. 安卓手機怎麼虛擬定位
下載一個vmos-pro軟體就可以虛擬定位了。
vmos安卓虛擬手機系統pro高級版app讓你在手機上也可以裝虛擬機,給你提供多款系統自由的選擇讓你的手機更加的個性化,特色的功能文件傳輸,數據隱私保護等非常的安全,還有精彩的社區讓你一去來探討交流。
VMOS Pro是在原VMOS(虛擬大師)團隊做出了顛覆性的更新。這次我們將會提供給用戶自定義ROM的許可權,將不再限制用戶,我們將打造一個ROM平台,且鼓勵用戶自發的進行更改ROM,將用戶的想像發揮至極限。
自帶 root 環境,可免 root 運行Xposed、Magisk 等;預裝谷歌移動服務,支持所有應用浮窗化,可同屏操作兩個應用,支持自定義修改解析度。
軟體優勢:
全新的極致使用體驗,更為強大的軟/硬體兼容,名ROM打造ROM平台,任你挑選。
9. 虛擬機如何設置虛擬定位
1、首先打開虛擬機,輸入自己的賬號和密碼。
2、其次點擊gps定位系統,點擊設置虛擬定位。
3、最後等待程序反應後,點擊確認即可完成設置。
10. 光速虛擬機如何虛擬定位
1、首先點擊打開光速虛擬機,點擊頁面上的「文件中轉」。
2、其次點擊打開「導入」選項,選擇「天下游」和「王者榮耀」,點擊「導入」。
3、最後即可設置位置信息,玩家選擇想要虛擬的位置信息,點擊打開王者榮耀,下載使用位置信息即可。