Java cmd createprocess error 2

I upgraded my windows and reinstalled Android studio 0.3.2. I am using windows8.1 Pro now and installed java x64, I also did set up JAVA_HOME EV to C:Program FilesJavajdk1.7.0_45 and Android stu...

I upgraded my windows and reinstalled Android studio 0.3.2. I am using windows8.1 Pro now and installed java x64, I also did set up JAVA_HOME EV to C:Program FilesJavajdk1.7.0_45 and Android studio is installed in D:Android Stutio

When I try to run my project I get the Following Error

Cannot run program "C:Program Files (x86)Javajdk1.7.0_40binjava" (in directory "D:Android Stutiosystemcompile-server"): CreateProcess error=2, The system cannot find the file specified

Android studio is installed in D:Android Stutio

How to fix this one

asked Nov 9, 2013 at 9:43

dmSherazi's user avatar

5

Since android studio is still referring to jdk1.7.0_40 change its path

  1. Goto Files->Other Settings->Default Project Structure.

  2. Under Platform Settings Select Android sdk…under JDK location change C:Program Files (x86)Javajdk1.7.0_40 to C:Program FilesJavajdk1.7.0_45

That should do the trick :)

answered Jan 25, 2014 at 13:24

user3235168's user avatar

user3235168user3235168

3063 silver badges4 bronze badges

1

Try the following: Open a new commandline (Win+R => cmd.exe) and enter «java». I predict that you’ll get an error that says something like «command not found». The reason for this is that you don’t have an windows environment variable set for your java.exe.

Do so by Win+X => System => Advanced System Settings => Advanced => Environment variables => search for PATH under the system variables => edit => append the path to your java.exe sperarated by ;

For example:
../other/pathes/with/file.exe;C:Program Files (x86)Javajdk1.6.0_45bin

Save,close,restart

answered Jan 9, 2014 at 11:24

muetzenflo's user avatar

muetzenflomuetzenflo

5,5114 gold badges38 silver badges81 bronze badges

I got this same error on android studio 3.1 which I’ve just now updated.
user3235168’s answer worked for me.

Additionally I had to remove the check mark from ‘Use embedded JDK(recommended)’
Then browse to jdk’s path — C:Program FilesJavajdk1.8.0_144

answered Apr 8, 2018 at 6:41

Abu Sufian's user avatar

I hope this answer can be a reference for new comer!

I got same issue and I stuck for this error!

Finally I got solution here!

After I explore the error detail, I got message that there are issue with NDK.
Try to disable NDK or add the following code in your gradle.build

packagingOptions{
    doNotStrip '*/mips/*.so'
    doNotStrip '*/mips64/*.so'
}

answered Apr 8, 2019 at 17:58

Ajie Kurniyawan's user avatar

0

proper solution of this

  1. Download old ndk from here

  2. Extract to your SDK file path like mine is H:SDKndk-bundle16

  3. Now show it in gradle.properties folder.

Mahdi Younesi's user avatar

answered May 18, 2018 at 11:19

Tab Soft's user avatar

I am getting this because of ndk path .

Check the ndk path in local.properties file & also check the sdk path .
Delete the build file , sometimes it makes the error in case you are migrating the project from Linux to windows or vice versa .

Then click invalidate cache and restart .

Mine this solved this issue . Hope this will help you .

answered Jun 1, 2020 at 5:00

RANAJEET BARIK's user avatar

I had exactly the same error: CreateProcess error=2, The system cannot find the file specified [Android studio]
No changes, just started Android Studio (3.6.2) in the morning and the bug appeared.

Anyway, I fixed this one by reinstalling Android Studio from scratch. I know it sounds stupid, but neither option worked for me, I just didn’t have another hour to play with it.

answered Apr 16, 2020 at 11:13

Andrew's user avatar

AndrewAndrew

2,2301 gold badge19 silver badges34 bronze badges

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

saber-nyan opened this issue

Sep 26, 2017

· 3 comments

Comments

@saber-nyan

I’m trying to run this piece of code:

Main.java:

package ru.saber_nyan.lanterna_bug;

import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
import com.googlecode.lanterna.terminal.Terminal;

import java.io.PrintStream;

public final class Main {

	private static final PrintStream out = System.out;

	public static void main(String[] args) throws Throwable {
		out.println("OS name: " + System.getProperty("os.name"));
		Terminal terminal = new DefaultTerminalFactory().createTerminal();
		out.println("Created terminal (class " + terminal.getClass() + ")");
	}
}

build.gradle:

group 'lanterna-bug'
version '0.0.1a'

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.googlecode.lanterna:lanterna:3.0.0'
}

jar {
    manifest.attributes("Main-Class": "ru.saber_nyan.lanterna_bug.Main")
    from sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

And after running in the usual command line (CMD.EXE), I get:

D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>gradlew jar
:compileJava
:processResources NO-SOURCE
:classes
:jar

BUILD SUCCESSFUL

Total time: 1.395 secs
D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>java -jar .buildlibslanterna-bug-0.0.1a.jar
OS name: Windows 10
Exception in thread "main" java.io.IOException: Cannot run program "/bin/stty": CreateProcess error=2,
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.exec(UnixLikeTTYTerminal.java:169)
        at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.saveTerminalSettings(UnixLikeTTYTerminal.java:117)
        at com.googlecode.lanterna.terminal.ansi.UnixLikeTerminal.acquire(UnixLikeTerminal.java:86)
        at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.realAcquire(UnixLikeTTYTerminal.java:87)
        at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.<init>(UnixLikeTTYTerminal.java:78)
        at com.googlecode.lanterna.terminal.ansi.CygwinTerminal.<init>(CygwinTerminal.java:59)
        at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createCygwinTerminal(DefaultTerminalFactory.java:416)
        at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createWindowsTerminal(DefaultTerminalFactory.java:411)
        at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createTerminal(DefaultTerminalFactory.java:117)
        at ru.saber_nyan.lanterna_bug.Main.main(Main.java:14)
Caused by: java.io.IOException: CreateProcess error=2,
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
        at java.lang.ProcessImpl.start(ProcessImpl.java:137)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
        ... 10 more
D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>gradlew --version

------------------------------------------------------------
Gradle 3.5-rc-2
------------------------------------------------------------

Build time:   2017-03-27 15:56:23 UTC
Revision:     ec63970cd167993d3dcda346a1d00a286a23b1c9

Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_121 (Oracle Corporation 25.121-b13)
OS:           Windows 10 10.0 amd64

@avl42

If you run from cmd.exe commandline, then you must use javaw instead of
java to launch it, for Lanterna to then open a graphical terminal
emulation. (that’s a MS Windows peculiarity)

If your intention was to really have it run inside the cmd window, then you
might want to actively help and try to get the native parts working.
pre-requisite for that is adding JNA.

Am 27.09.2017 01:05 schrieb «saber-nyan» <notifications@github.com>:

I’m trying to run this piece of code:

Main.java:

package ru.saber_nyan.lanterna_bug;
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;import com.googlecode.lanterna.terminal.Terminal;
import java.io.PrintStream;
public final class Main {

private static final PrintStream out = System.out;

public static void main(String[] args) throws Throwable {
out.println(«OS name: » + System.getProperty(«os.name»));
Terminal terminal = new DefaultTerminalFactory().createTerminal();
out.println(«Created terminal (class » + terminal.getClass() + «)»);
}
}

build.gradle:

group ‘lanterna-bug’
version ‘0.0.1a’

apply plugin: ‘java’

sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile ‘com.googlecode.lanterna:lanterna:3.0.0’
}
jar {
manifest.attributes(«Main-Class»: «ru.saber_nyan.lanterna_bug.Main»)
from sourceSets.main.output, configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

And after running in the usual command line (CMD.EXE), I get:

D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>gradlew jar
:compileJava
:processResources NO-SOURCE
:classes
:jar

BUILD SUCCESSFUL

Total time: 1.395 secs
D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>java -jar .buildlibslanterna-bug-0.0.1a.jar
OS name: Windows 10
Exception in thread «main» java.io.IOException: Cannot run program «/bin/stty»: CreateProcess error=2,
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.exec(UnixLikeTTYTerminal.java:169)
at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.saveTerminalSettings(UnixLikeTTYTerminal.java:117)
at com.googlecode.lanterna.terminal.ansi.UnixLikeTerminal.acquire(UnixLikeTerminal.java:86)
at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.realAcquire(UnixLikeTTYTerminal.java:87)
at com.googlecode.lanterna.terminal.ansi.UnixLikeTTYTerminal.<init>(UnixLikeTTYTerminal.java:78)
at com.googlecode.lanterna.terminal.ansi.CygwinTerminal.<init>(CygwinTerminal.java:59)
at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createCygwinTerminal(DefaultTerminalFactory.java:416)
at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createWindowsTerminal(DefaultTerminalFactory.java:411)
at com.googlecode.lanterna.terminal.DefaultTerminalFactory.createTerminal(DefaultTerminalFactory.java:117)
at ru.saber_nyan.lanterna_bug.Main.main(Main.java:14)
Caused by: java.io.IOException: CreateProcess error=2,
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
… 10 more

D:DEVELOPMENT_IS_MY_LAIFUWorkspacesJava_Kotlinlanterna-bug>gradlew —version

————————————————————
Gradle 3.5-rc-2
————————————————————

Build time: 2017-03-27 15:56:23 UTC
Revision: ec63970cd167993d3dcda346a1d00a286a23b1c9

Groovy: 2.4.10
Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM: 1.8.0_121 (Oracle Corporation 25.121-b13)
OS: Windows 10 10.0 amd64


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#335>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AFAwsnH0_dF6IzCRJUtN11BGMteXZDEwks5smYMkgaJpZM4Pk_7R>
.

@saber-nyan



Copy link


Contributor

Author

Thank you, this decision worked. It would be nice to designate this
unobvious moment in the documentation (or describe the error in more
detail), do not you think so?

In any case, is it worth closing the issue?

@avl42

If you find a spot in the docu where you did look beforehand and think that
a remark there would have helped, then please make a PR for the added
wording.

You’re certainly not the first one to ask this question, and you’ll
probably not be the last… unless maybe if you help us find the best
place where to add the info.

mabe02

added a commit
that referenced
this issue

Oct 14, 2017

@mabe02

avl42

pushed a commit
to avl42/lanterna
that referenced
this issue

May 26, 2018

@saber-nyan

@avl42

2 participants

@avl42

@saber-nyan

Я пишу программу в java, которая выполнит winrar и распакует файл jar для меня, помещенный в h:myjar.jar в папку h:new. Мой код Java выглядит примерно так:

import java.io.File;
import java.io.IOException;

public class MainClass {

    public static void main(String[] args) {

        Runtime r=Runtime.getRuntime();
        Process p=null;

        try {
            File dir=new File("C:/Program Files/WinRAR");
            p=r.exec("winrar x h:\myjar.jar *.* h:\new",null,dir);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

Когда я выполняю это, я получаю эту ошибку

java.io.IOException: Cannot run program "winrar" (in directory "C:Program FilesWinRAR"): CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at MainClass.main(MainClass.java:16)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 4 more

Может ли кто-нибудь сказать мне, почему я столкнулся с такой проблемой. Какое изменение мне нужно включить в код, чтобы он работал..?

27 окт. 2013, в 20:20

Поделиться

Источник

5 ответов

Предполагая, что winrar.exe находится в PATH, тогда Runtime.exec может его найти, если это не так, вам нужно будет предоставить ему полный путь, например, если winrar.exe установленный в C:/Program Files/WinRAR, вам нужно будет использовать что-то вроде…

p=r.exec("C:/Program Files/WinRAR/winrar x h:\myjar.jar *.* h:\new");

Лично я бы рекомендовал использовать ProcessBuilder, поскольку у него есть некоторые дополнительные возможности настройки среди других вещей. Там, где это возможно, вы также должны отделить свою команду и параметры от отдельных элементов String, но они имеют дело с вещами вроде пространства намного лучше, чем одна переменная String, например…

ProcessBuilder pb = new ProcessBuilder(
    "C:/Program Files/WinRAR/winrar",
    "x",
    "myjar.jar",
    "*.*",
    "new");
pb.directory(new File("H:/"));
pb. redirectErrorStream(true);

Process p = pb.start();

Не забудьте прочитать содержимое InputStream из процесса, поскольку это не может остановить процесс

MadProgrammer
27 окт. 2013, в 21:13

Поделиться

Указанный dir — это рабочий каталог запущенного процесса — это не помогает найти исполняемый файл. Используйте cmd /c winrar ... для запуска процесса поиска исполняемого файла в PATH или попробуйте использовать абсолютный путь к winrar.

viator
27 окт. 2013, в 20:19

Поделиться

Я использовал ProcessBuilder, но имел ту же проблему. Проблема заключалась в использовании команды в качестве одной строки String (например, я бы вводил ее в cmd) вместо массива String. В примере сверху. Если я запустил

ProcessBuilder pb = new ProcessBuilder("C:/Program Files/WinRAR/winrar x myjar.jar *.* new");
pb.directory(new File("H:/"));
pb. redirectErrorStream(true);

Process p = pb.start();

У меня возникла ошибка. Но если я запустил

ProcessBuilder pb = new ProcessBuilder("C:/Program Files/WinRAR/winrar", "x", "myjar.jar", "*.*", "new");
pb.directory(new File("H:/"));
pb. redirectErrorStream(true);

Process p = pb.start();

все было в порядке.

EagleEye1984
17 нояб. 2016, в 07:43

Поделиться

Я рекомендую сохранить getRuntime().exec, потому что exec использует ProcessBuilder.

Try

 p=r.exec(new String[] {"winrar", "x", "h:\myjar.jar", "*.*", "h:\new"}, null, dir);

Peter Rader
06 фев. 2017, в 12:12

Поделиться

Полный первый аргумент exec интерпретируется как исполняемый файл. Используйте

p = rt.exec(new String[] {"winrar.exe", "x", "h:\myjar.jar", "*.*", "h:\new" }
            null, 
            dir);

Reimeus
27 окт. 2013, в 19:12

Поделиться

Ещё вопросы

  • 0PHP — как вставить данные формы в первый раз и во второй раз обновить те же данные
  • 0Изменение позиции QGraphicsItems в обработчике событий сцены?
  • 1Краткий способ объявить матовую матрицу
  • 0Текст переполнен плавающим div
  • 0Плагин предварительного просмотра печати jQuery не работает с <h: commandLink>
  • 1Пользовательский список адаптер повторяет записи
  • 1Как правильно масштабировать фоновое изображение TextView для Android
  • 1Как решить NoClassDefFoundError в сервлете Java?
  • 0Symfony, Doctrine, merge не работают должным образом (в то время как сохраняются те же сущности)
  • 1Как определить, какой JList среди двух имеет фокус курсора в Java Swing?
  • 1Java-программа «Прыгающий мяч»
  • 0Удалить функцию заполнения
  • 0Разбиение динамически размещенного массива без линейного копирования по времени
  • 1Как мне отформатировать SPARQL для JS?
  • 1событие шаблона для ожидания подписки до collection.find
  • 0Как получить последнюю созданную запись, используя петли api и angularjs
  • 1Maven: Как я могу иметь модуль с одинаковым именем в двух разных модулях?
  • 1Объявление переменной внутри функции возвращает undefine
  • 0Таблица MySql вне предела Исключение -1
  • 0foreach итерация двух массивов в php
  • 1Слияние адаптеров в Android
  • 1Версия сборки .NET — какая разница (на основе опыта System.Web.Mvc)
  • 0Ошибка обновления при добавлении двузначного целого числа mysql
  • 1Разбиение массива на несколько массивов
  • 0Показывать td как строки — отображать строку таблицы не работает
  • 1Как я могу заставить друга перестать мыслить глобально и начать думать относительно?
  • 0SCRIPT438: Объект не поддерживает свойство или метод «делегат»
  • 1Смущает регулярное выражение
  • 0Мои столбцы переходят на новую строку в Firefox / Safari, но это работает в Chrome
  • 0PHP MySQL Insert Query не работает, как ожидалось
  • 0Управление с клавиатуры с помощью jquery -> keydown
  • 0Magento — Внутренняя ошибка сервера при внешнем запросе
  • 0Приведение int на логический уровень c ++
  • 0Угловой пост $ http с ASP.NET MVC
  • 0Как освободить ячейки другой длины от начальной длины в динамическом 2d-массиве?
  • 0Мой сборный буфер пуст?
  • 1Передача объекта в метод приводит к объекту без значений?
  • 1Алгоритм логики JS не работает
  • 0Angular.js, добавить строку к имени переменной?
  • 1Как я могу динамически добавить значение textBox, используя ItextSharp?
  • 1Azure Event Hub Python SDK
  • 1Почему Context используется в этом фрагменте кода?
  • 0Javascript Array Hierarchy
  • 0MoneyWorks: программно обновить запись
  • 0Вставка данных с использованием Phalcon и отношений
  • 0поместите div в верхней части iframe в HTML
  • 1Сравните значения пользовательского ввода со значениями, хранящимися в словарях в списке в Python
  • 1Невозможно передать переменную в функцию typewrite в python
  • 0перебрать 10 дней и сохранить каждую дату в массиве
  • 1Как получить параметры командной строки и поместить их в переменные? [Дубликат]

Сообщество Overcoder

Понравилась статья? Поделить с друзьями:
  • Java check error type
  • Java centos error could not create the java virtual machine
  • Java exe ошибка приложения
  • Java catch error type
  • Java catch any error