源码启动命令
以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下所有软件包的安装都适用。