内核如何获得在linux下运行的可执行二进制文件?
这似乎是一个简单的问题,但任何人都可以帮助我深入挖掘?如何将文件加载到内存以及如何启动执行代码?
任何人都可以帮助我,一步一步地告诉我们发生了什么吗?
最近已经触及Java类加载器并突然认识到,当有人调用时,不能完全理解一步一步发生的事情
java -jar App.jar
Run Code Online (Sandbox Code Playgroud)
好吧,我想
但我仍然认为有很多事情我需要了解更多.
我找到了两个相关的问题,但没有解释如何将其应用于Java现实.
这类似于运行程序时会发生什么?,但不是一个骗局.
假设我有一个简单的控制台程序,有两个方法A和B.
public static void RunSnippet()
{
TestClass t = new TestClass();
t.A(1, 2);
t.B(3, 4);
}
public class TestClass
{
public void A(int param1, int param2)
{
//do something
C();
}
private void C()
{
//do
}
public bool B(int param1, int param2)
{
//do something
bool result = true;
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以详细解释(但请用简单的英文简单说明),当RunSnippet调用方法A和方法B(并在内部调用其他方法)时会发生什么.我想了解引擎盖下真正发生的事情......意思是params如何通过,它们存储在哪里,本地变量发生了什么,返回值如何通过,如果另一个线程在A调用C时开始运行会发生什么,如果抛出异常将会发生什么.
在Eclipse中编译c文件时,我偶尔会遇到此编译错误.
c:/ mingw/bin /../ lib/gcc/mingw32/4.7.2 /../../../../ mingw32/bin/ld.exe:无法打开输出文件main.exe:权限被拒绝
当我对源代码进行了更改时,它就会发生 - 但并非总是如此.
我知道如何解决这个问题*但是我想知道它为什么会发生以及如何避免它?
*在eclipse中,我转到调试器并终止程序的主线程