⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 howtomakehelloworldablekvm103byvc.txt

📁 This is a java virtual machine implement in c
💻 TXT
字号:
1. unzip j2me_cldc-1_0_3-fcs-src-b17-winunix-14_sep_2001.zip

2.1. mkdir j2me_cldc\tools\jcc\classes

2.2. j2me_cldc\tools\jcc\src>javac -d ..\classes *.java components\*.java jcc\*.java 
                             runtime\*.java text\*.java util\*.java vm\*.java

2.3. zip j2me_cldc\bin\common\api\classes, excluding:
	com/sun/cldc/io/NetworkConnectionBase.class
	com/sun/cldc/io/j2me/comm/*
	com/sun/cldc/io/j2me/datagram/*
	com/sun/cldc/io/j2me/events/*
	com/sun/cldc/io/j2me/resource/*
	com/sun/cldc/io/j2me/serversocket/*
	com/sun/cldc/io/j2me/socket/*
     to j2me_cldc\tools\jcc\classes.zip

2.4. j2me_cldc\tools\jcc>java -cp classes JavaCodeCompact -nq -arch KVM_Native 
                         -o nativeFunctionTableWin.c classes.zip

3.1. mkdir kvm

3.2. copy j2me_cldc\kvm\VmCommon j2me_cldc\kvm\VmExtra j2me_cldc\kvm\VmWin to kvm

3.3. copy nativeFunctionTableWin.c to j2me_cldc\kvm\VmWin\src

4. build KVM by Microsoft Visual C++

   a. File:New:Win32ConsoleApplication, ProjectName=KVM
   
   b. Project:AddToProject:Files
 	cache.c class.c collector.c events.c execute.c fields.c frame.c garbage.c global.c 
 	hashtable.c interpret.c loader.c log.c native.c nativeCore.c pool.c 
 	profiling.c property.c stackmap.c StartJVM.c thread.c verifier.c 
 	// the above from VmCommon\src (excluding: bytecodes.c collectorDebug.c)
 	// (note: in fact bytecodes.c is a head file)
 	async.c fakeStaticMemory.c inflate.c jar.c loaderFile.c main.c 
 	// the above from VmExtra\src
 	runtime_md.c runtime2_md.c 
 	// the above from VmWin\src
 	nativeFunctionTableWin.c 
   
   c. Project:Settings:C/C++:Preprocessor:AdditionalIncludeDirectories
   	.\VmCommon\h;.\VmExtra\h;.\VmWin\h
   
   d. Project:Settings:C/C++:Preprocessor:PreprocessorDefinitions
   	NOGUI,ROMIZING=0,USE_DEBUG_COLLECTOR=0,INCLUDE_ALL_CLASSES=0,ENABLE_JAVA_DEBUGGER=0
   
   e. Project:Settings:C/C++:CodeGeneration:UseRunTimeLibrary
   	Debug Multithreaded
   
   f. Build/RebuildAll
   
5.1. mkdir kvm\test

5.2. move classes.zip from j2me_cldc\tools\jcc to kvm\test

5.3. edit & javac HelloWorld.java in kvm\test

5.4. execute/debug HelloWorld by Microsoft Visual C++
   
   a. Project:Setting:Debug:General:WorkingDirectory
        test
        
   b. Project:Setting:Debug:General:ProgramArguments
        -classpath classes.zip;. HelloWorld
   
   c. Build:StartDebug: ...

clchen 2002/01/25 (updated for kvm 1.0.3)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -