Reputation: 1935
I have tried to execute keytool from Java bin directory but I get an error with warning bash: keytool: command not found.
root@xxxxxx]# keytool -genkey -alias mypassword -keyalg RSA
bash: keytools: command not found
Upvotes: 80
Views: 383294
Reputation: 203
If you are not using openjdk, use the below commands to set your keytool.
sudo update-alternatives --install "/usr/bin/keytool" "keytool" "/usr/lib/jvm/java8/jdk1.8.0_251/bin/keytool" 1
AND
sudo update-alternatives --set keytool /usr/lib/jvm/java8/jdk1.8.0_251/bin/keytool
This worked for me!
Upvotes: 2
Reputation: 1935
These are the steps which solved my problem:
Search the path where my java was installed
find / -name jre
Move to java directory (where jre was installed on my server)
cd /path/to/jre/bin
Create SSL certificate with keytool command
./keytool -genkey -alias [mypassword] -keyalg [RSA]
Upvotes: 101
Reputation: 91
If the jre is installed on your machine properly then look for keytool in jre or in jre/bin
to find where jre is installed, use this
sudo find / -name jre
Then look for keytool in path_to_jre or in path_to_jre/bin
cd to keytool location
then run ./keytool
Make sure to add the the path to $PATH by
export PATH=$PATH:location_to_keytool
To make sure you got it right after this, run
where keytool
for future edit you bash or zshrc file and source it
Upvotes: 1
Reputation: 72
You could also put this on one line like so:
/path/to/jre/bin/keytool -genkey -alias [mypassword] -keyalg [RSA]
Wanted to include this as a comment on piet.t answer but I don't have enough rep to comment.
See the "signing" section of this article that describes how to access the keytool.exe without changing your working directory to the path: https://flutter.dev/docs/deployment/android#signing-the-app
Note that they say you can type in space separated folder names like /"Program Files"/ with quotes but I found in bash i had to separate with back slashes like /Program\ Files/.
Upvotes: 1
Reputation: 11265
Keytool comes with your Java library. So you have to execute the Keytool command from your /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/bin directory. Or you can add JAVA_HOME to your environmental variables (Windows) or ~/.bash_profile (Linux)
Upvotes: 3
Reputation: 3917
If you are looking for keytool
because you are working with Android studio / Google Firebase, there is a keytool bundled with Android Studio. After extracting the zip file, the path to keytool is android-studio/jre/bin
.
Upvotes: 7
Reputation: 167
find your jre location ::sudo find / -name jre
And then :: sudo update-alternatives --install /usr/bin/keytool keytool /opt/jdk/<jdk.verson>/jre/bin/keytool 100
Upvotes: 7
Reputation: 1
Please follow the steps:
first set the domain using setDomain.sh
command
go to domain/bin
location and execute ./setDomain.sh
command
go to java/bin
folder and execute keytool
command.
keytool -genkey -keyalg RSA -kaysize 2048 -alias name -kaystore file.jks
Upvotes: 0
Reputation: 1194
It seems that calling sudo update-alternatives --config java
effects keytool. Depending on which version of Java is chosen it changes whether or not keytool is on the path. I had to chose the open JDK instead of Oracle's JDK to not get bash: /usr/bin/keytool: No such file or directory
.
Upvotes: 6
Reputation: 2742
You tried:
sudo apt-get install oracle-java6-installer --reinstall
and:
sudo update-alternatives --config keytool
Upvotes: 2
Reputation: 4101
Ensure jre is installed.
cd /path/to/jre/bin/folder
As keytool file is present in the bin folder of jre, give path till bin as in the command above.
Then you can do:
keytool -genkey -alias aliaskeyname -keyalg RSA -keystore C:\mykeystore
The additional option -keystore will help you to specify the path where you want the generated self signed certificate.
Upvotes: 7