J2V8:编译J2V8最新版Jar包
目录
- J2V8 简介
- 编译J2V8
- win32_x86_64版本
- 准备编译环境
- clone J2V8的源码
- 运行 j2v8-cli.cmd
- clone Node.js 源码
- 开始编译
- 编译生成Jar包目录
- linux_x86_64版本
- 编译中出现的错误
J2V8 简介
J2V8 是对 Google 的 JavaScript 引擎 V8 的 Java 封装,J2V8 的开发为Java 或是 Android 可以高效得执行 JavaScript 带来了可能。
Github地址
编译J2V8
在GitHub中,作者主要目的是使用J2V8进行tabris.js这个多平台js引擎的开发,用于在Android设备上执行JavaScript。只提供了Android版本最新的aar包,没有最新的jar包,因此根据作者提供的编译教程进行编译。
Github官方编译教程
win32_x86_64版本
准备编译环境
- Python2
- vs2017
- jdk
- windows 64位PC
以上是确定需要的,我电脑本身就有一些编译环境已经安装,不确定是否还有其他需要的
clone J2V8的源码
Github源码地址 将代码clone到本地
运行 j2v8-cli.cmd
编译工具链,运行后才可进行后面的编译,每次开始编译都需要运行一次
clone Node.js 源码
nodejs git clone
使用这个命令把nodejs的源码下载下来
nodejs diff apply
将所需修改应用于node.js源代码
开始编译
编译的步骤
Node.js --> CMake --> JNI --> C++ --> Optimize --> Java/Android Build --> Java/Android Test
确定需要编译的版本为win32_x86_64版本
作者提供了多种编译方式,我在编译过程中出了很多错误,需要单步解决bug,故推荐一步一步进行编译。
1. build -t win32 -a x64 Node.js
2. build -t win32 -a x64 j2v8cmake
3. build -t win32 -a x64 j2v8jni
4. build -t win32 -a x64 j2v8cpp
5. build -t win32 -a x64 j2v8optimize
6. build -t win32 -a x64 j2v8java
编译生成Jar包目录
./build.out/j2v8_{platform}_{abi}-{j2v8_version}.jar
linux_x86_64版本
需要在linux 64环境下进行编译,可搭建linux虚拟机进行编译
编译工具链命令为
source j2v8-cli.sh
单步编译命令前缀改为
build -t linux -a x64
其余步骤相似
编译中出现的错误
在单步编译的话可能报错,遇到错误解决后再继续进行当前步骤的编译。
大部分的错误都是找不到一些编译需要用到的工具,应安装这些工具或添加环境变量后继续。
E:\j2v8\J2V8-master>build -t win32 -a x64 j2v8cpp
Checking Node.js builtins integration consistency...
--------------------------------------------------
V8: 5.4.500.45 (candidate: False)
Node.js: 7.4.0 (release: True)
--------------------------------------------------
Caching Node.js artifacts...
>>> Node.js build-cache used: win32.x64Microsoft Windows [版本 10.0.16299.431]
Updating Maven configuration (./docker/shared/pom.xml)...
SHELL building win32@x64 => j2v8cpp
'msbuild' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Traceback (most recent call last):File "build.py", line 18, in <module>bex.execute_build(args)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 314, in execute_buildexecute_build_step(target_compiler, target_step)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 230, in execute_build_stepbuild_system.build(build_step)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 83, in buildself.exec_build(config)File "E:\j2v8\J2V8-master\build_system\shell_build.py", line 27, in exec_buildself.exec_cmd(shell_str, config)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 96, in exec_cmdself.__exec_cmd_core(cmd, config, config.build_cwd)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 105, in __exec_cmd_coreutils.execute(cmd, cwd)File "E:\j2v8\J2V8-master\build_system\build_utils.py", line 157, in executeraise subprocess.CalledProcessError(return_code, cmd)
subprocess.CalledProcessError: Command 'cd E:/j2v8/J2V8-master && cd ./cmake.out/win32.x64/ && msbuild j2v8.sln /property:Configuration=Release' returned non-zero exit status 1
解决方案:需要在系统环境变量中的path变量中添加一条路径,如C:\Windows\Microsoft.NET\Framework\v4.0.30319 C:\Windows\Microsoft.NET\Framework64\v4.0.30319
E:\j2v8\J2V8-master>build -t win32 -a x64 j2v8java
Checking Node.js builtins integration consistency...
--------------------------------------------------
V8: 5.4.500.45 (candidate: False)
Node.js: 7.4.0 (release: True)
--------------------------------------------------
Caching Node.js artifacts...
>>> Node.js build-cache used: win32.x64Microsoft Windows [版本 10.0.16299.431]
Updating Maven configuration (./docker/shared/pom.xml)...
SHELL building win32@x64 => j2v8java
Updating Maven configuration (./pom.xml)...
Copying native lib from: ./cmake.out/win32.x64/Release\libj2v8-windows-x86_64.dll to: src/main/resources/
Using system-var JAVA_HOME
'mvn' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Traceback (most recent call last):File "build.py", line 18, in <module>bex.execute_build(args)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 314, in execute_buildexecute_build_step(target_compiler, target_step)File "E:\j2v8\J2V8-master\build_system\build_executor.py", line 230, in execute_build_stepbuild_system.build(build_step)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 83, in buildself.exec_build(config)File "E:\j2v8\J2V8-master\build_system\shell_build.py", line 27, in exec_buildself.exec_cmd(shell_str, config)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 96, in exec_cmdself.__exec_cmd_core(cmd, config, config.build_cwd)File "E:\j2v8\J2V8-master\build_system\build_structures.py", line 105, in __exec_cmd_coreutils.execute(cmd, cwd)File "E:\j2v8\J2V8-master\build_system\build_utils.py", line 157, in executeraise subprocess.CalledProcessError(return_code, cmd)
subprocess.CalledProcessError: Command 'cd E:/j2v8/J2V8-master && python E:/j2v8/J2V8-master/build_system/polyfills/cp.py ./cmake.out/win32.x64/Release\libj2v8-windows-x86_64.dll src/main/resources/ && mvn clean verify -e --batch-mode -DskipTests && python E:/j2v8/J2V8-master/build_system/polyfills/mkdir.py build.out && python E:/j2v8/J2V8-master/build_system/polyfills/cp.py target/j2v8_win32_x86_64-5.1.0-SNAPSHOT.jar build.out/' returned non-zero exit status 1
需要安装maven和添加环境变量
欢迎关注我的公众号,持续分析优质技术文章
J2V8:编译J2V8最新版Jar包相关推荐
- java动态编译无法导包_java动态编译整个项目,解决jar包找不到问题.doc
java动态编译整个项目,解决jar包找不到问题.doc 还剩 8页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 64. } 65. 66. /*** ...
- 【一整套】如何下载Jackson官方的三个最新版jar包
如何下载官方Jackson的三个最新版jar包 说明: 官方下载地址:http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ 当前下载日期: ...
- android源码编译jar,在android源码编译中导入第三方jar包
源码编译,我们可以只留下app的src,res目录和androidmanifest.xml文件,在app的根目录添加一个android.mk文件,还有我们需要导入的jar包,我这里是libjsoup- ...
- Java--使用反编译工具,打开jar包,查看源码
操作系统:Windows 1.反编译工具: 链接:https://pan.baidu.com/s/1GwglWXc_lj5Q60g1t16lTA 提取码:tf5l 2.下载好后,解压至自己存放的路径 ...
- 既使用maven编译,又使用lib下的Jar包
既使用maven编译,又使用lib下的Jar包 在项目开发中,项目用maven管理,是一个maven项目. 一般情况下jar包都可以使用pom.xml来配置管理,但也有一些时候,我们项目中使用了一个 ...
- 如何修改可运行Jar包,如何反编译Jar包
将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All ...
- java如何转成jar包,修改及反编译可运行Jar包实现过程详解
将可运行Jar包,反编译成项目,修改代码,再次编译,打包. 需要工具:jd-gui.myeclipse 具体步骤: 1.使用jd-gui打开原始的Jar包,选择File-->Save All S ...
- IDEA—使用插件反编译jar包
关注微信公众号:CodingTechWork,一起学习进步. 引言 在产品上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况, ...
- [转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件)
[转]一款可以反编译jar包的java反编译工具-JD-GUI(绿色软件) 文章分类:Java编程 该软件无需安装,界面清爽. 转自:http://www.devdoc.org/index.php/a ...
最新文章
- 第十一周作业关于json
- 关于学习Python的一点学习总结(18->序列解包)
- lnmp mysql 路径_LNMP笔记:更改网站文件和MySQL数据库的存放目录
- centos启动流程
- typecho 邮件mail插件 LoveKKCommentModify 美化版
- 计科14-1 140201125 王振禹 作业三
- Sql Server数据库备份和恢复:原理篇
- 解决UICollectionViewCell/UITableViewCell因重用机制导致的错乱问题
- 1.1.1.1校园网_突破校园网限制,开启寝室Wifi
- arcgis中python计算面积的表达式_ArcGIS应用——四种计算图斑面积的方法
- openwrt utc时区修改
- 苹果怎么锁定计算机,苹果电脑如何锁定屏幕-mac锁定屏幕教程 - 河东软件园
- PhpStorm 2016.2 Mac破解版
- java bounce tale_bouncetales蹦球传说安卓版
- 沉浸式WebXR开发技术架构
- 计算机应用行距怎么弄,电脑行间距在哪里设置
- 使用Ajax自动获取QQ头像昵称
- (更新时间)2021年5月15日 Nginx服务器 Nginx面试题
- DataStage记录
- 为什么国内的软件很臃肿,而且还没有国外的发达?
热门文章
- 视锥体与AABB和OBB包围盒相交判断
- Android ITelephony EndCall Remove 各版本挂断、拦截电话方法
- c语言小游戏10例,C语言的应用 小游戏为例.doc
- 考研英语——书本资料选择复习规划
- 屋面房顶白色外壁降温用凉凉胶隔热面漆 隔热性能十分优异
- Mysql性能优化及主从同步-mysql-xing-neng-you-hua-ji-zhu-cong-tong-bu
- php格式视频怎么下载链接,php – 如何找到vimeo视频的下载链接?
- html网页设计代码作业——代码质量好-重庆火锅(5页) HTML+CSS+JavaScript 大学生网页制作期末作业
- ORACLE数据库NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET区别
- 【读者群答疑】使用xlwings编程进行调试时会在后台留下若干Excel进程,如何解决?