我在使用开放式SuSE 12.1的Linux机器上安装了Android SDK。我已经使用这两台机器多次成功构建Android应用程序,并使用用于测试的调试密钥和来自我自己的密钥库的发布密钥对它们进行签名,因此它应该位于每台计算机上的某个位置。
使用命令
jarsigner
但是,在两台计算机上返回命令not found错误。我查看了Android SDK文件夹,Windows上的JDK文件夹和/ usr / lib64 / jvm /,但它不是我看过的任何地方。
我认为它必须使用不同的名称。我也跑了:
find -name jarsigner
在Linux机器上的整个系统上没有成功。
答案 0 :(得分:84)
它位于java JDK安装(Java SE)的bin文件夹中。如果你只安装了JRE,你可能没有。
答案 1 :(得分:16)
%JAVA_HOME%\ BIN \的jarsigner
你可以在那里找到jarsigner。首先安装jdk。
答案 2 :(得分:8)
为了后人的缘故,如果您尝试使用jarsigner实际使用密钥库来签署jar文件(例如applet的文件),则需要在从密钥库所在的文件夹运行命令时引用jarsigner。在:
cd "C:\Program Files\Java\jre(version#)\bin"
然后
"C:\Program Files\Java\jdk(version#)\bin\jarsigner.exe" -keystore mykeystore (PATH TO YOUR .JAR)\MyJarFile.jar alias
以上可能是显而易见的,但我花了几次尝试,因为我试图在JDK文件夹中调用jarsigner,它不知道我的密钥库在哪里(在jre目录中!),所以我希望这样将帮助那些希望看到这种情况的可用语法的人。
答案 3 :(得分:7)
如果您使用的是Mac或Linux,只需转到终端并输入:
whereis jarsigner
它将为您提供jarsigner的位置
答案 4 :(得分:3)
如果找不到,请从here
下载并安装Java JDK答案 5 :(得分:1)
就我而言,我尝试这样做:
sudo apt install openjdk-11-jdk-headless
sudo apt install openjdk-8-jdk-headless
我使用openjdk
答案 6 :(得分:0)
当您在JAVA_HOME变量中仅安装了JRE而不是JDK时,会出现此错误。不幸的是,你不能将它们都安装在同一个变量中,所以你只需要用新的JDK安装路径覆盖变量。
该过程应与安装JRE的方式相同
答案 7 :(得分:0)
对我来说,解决方案是设置JDK的全局变量路径。看这里: https://appopus.wordpress.com/2012/07/11/how-to-install-jdk-java-development-kit-and-jarsigner-on-windows/
答案 8 :(得分:0)
查找 {
"name": "react_template",
"version": "0.0.1",
"description": "React + Webpack + Bable Template",
"main": "index.js",
"scripts": {
"clean:node_modules": "rm -rf node_modules && npm i",
"clean:www": "rm -rf www/*",
"clean": "npm run clean:www",
"copy:imgae": "mkdir -p www/assets/images",
"copy:html": "cp src/index.html www/",
"copy:css": "mkdir -p www/assets/css && cp src/css/reset.min.css www/assets/css/",
"copy:development": "npm run copy:html && npm run copy:css && npm run copy:imgae",
"copy:production": "npm run copy:html && npm run copy:css && npm run copy:imgae",
"setup:conf:development": "if [[ ! -f src/js/conf/development.js ]]; then cp src/js/conf/default.js src/js/conf/development.js; fi",
"setup:conf:production": "if [[ ! -f src/js/conf/production.js ]]; then cp src/js/conf/default.js src/js/conf/production.js; fi",
"setup": "npm run setup:conf:development",
"setup:prod": "npm run setup:conf:production",
"build": "npm run clean && npm run copy:development && npm run setup && `npm bin`/webpack",
"build:prod": "npm run clean && npm run copy:production && npm run setup:prod && `npm bin`/webpack --config webpack.config.prod.js",
"lint": "`npm bin`/eslint src; exit 0",
"mocha": "NODE_PATH=./src/js `npm bin`/mocha; exit 0",
"test": "npm run lint && npm run mocha",
"watch:html": "cpx --watch src/index.html www",
"watch:webpack": "`npm bin`/webpack --watch",
"watch:browser": "`npm bin`/browser-sync start --config bs-config.js",
"watch": "npm run watch:html & npm run watch:webpack & npm run watch:browser",
"start": "npm run build && npm run watch"
},
"author": "",
"license": "MIT",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.4",
"@fortawesome/free-solid-svg-icons": "^5.3.1",
"@fortawesome/react-fontawesome": "^0.1.2",
"axios": "^0.9.1",
"babel-polyfill": "^6.9.0",
"babel-preset-stage-2": "^6.5.0",
"clone": "^1.0.2",
"fbemitter": "^2.0.2",
"i": "^0.3.6",
"key-mirror": "^1.0.1",
"md5": "^2.1.0",
"minarai-client-sdk-js-socket-io": "0.0.23",
"moment": "^2.13.0",
"npm": "^6.4.0",
"qs": "^6.3.0",
"react": "^16.2.0",
"react-addons-update": "^0.14.8",
"react-css-modules": "^3.7.6",
"react-dom": "^16.2.0",
"react-event-emitter-mixin": "0.0.4",
"react-ga": "^2.4.1",
"react-mixin": "^3.0.4",
"react-redux": "^4.4.2",
"react-redux-i18n": "0.0.3",
"react-redux-saga-face-detector": "github:nextremer/react-redux-saga-face-detector#v0.1.3",
"react-scroll": "^1.4.4",
"react-tap-event-plugin": "^3.0.2",
"react-textarea-autosize": "^5.2.1",
"redux": "^3.4.0",
"redux-actions": "^0.9.1",
"redux-saga": "^0.10.4",
"redux-thunk": "^2.0.1",
"socket.io-client": "^1.4.5",
"socketio-wildcard": "^0.3.0",
"woothee": "github:Nextremer/woothee-js"
},
"devDependencies": {
"autoprefixer": "^6.3.6",
"babel-core": "^6.4.5",
"babel-eslint": "^6.0.4",
"babel-loader": "^6.2.1",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-object-assign": "^6.5.0",
"babel-plugin-transform-runtime": "^6.15.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-register": "^6.9.0",
"babel-runtime": "^6.6.1",
"browser-sync": "^2.13.0",
"chai": "^3.5.0",
"cpx": "^1.3.1",
"css-loader": "^0.23.1",
"enzyme": "^2.3.0",
"eslint": "^2.11.0",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"linq": "^3.0.5",
"mocha": "^2.5.3",
"mocha-webpack": "^0.3.1",
"mock-require": "^1.3.0",
"postcss-color-hex-alpha": "^2.0.0",
"postcss-loader": "^0.9.1",
"postcss-mixins": "^5.0.0",
"postcss-nested": "^1.0.0",
"postcss-simple-vars": "^3.0.0",
"react-addons-test-utils": "^15.1.0",
"redux-devtools": "^3.2.0",
"redux-logger": "^2.6.1",
"require-dir": "^0.3.0",
"sinon": "^1.17.4",
"style-loader": "^0.13.1",
"uglify-js": "^2.6.4",
"url-loader": "^0.5.7",
"webpack": "~1.12.12",
"webpack-dev-server": "~1.12.1",
"webpack-node-externals": "^1.2.0"
}
}
答案 9 :(得分:0)
这将为您安装jdk并检查其中的jarsigner
sudo apt install -y default-jdk
要查找jarsigner,可以使用whereis jarsigner