rgb 이름을 헥사 코드 (예 : 144 132 146이 # 908492가 됨)로 변환하는 Java CLI 스크립트가 있습니다. 그러나, 나는 모든 터미널에서 그것을 실행할 수 있기를 원합니다. 이 파일을 실행할 수 있도록 저도 같은 폴더에 bash는 스크립트를 넣어 :bash : 경로에서 실행 중일 때 현재 디렉토리에서 다른 프로그램 실행
배쉬 스크립트는 그냥 간단하다 :
#!/bin/bash
java rgb2hexConv $1 $2 $3
그러나, 나는이 경로를 통해 코드를 실행하면, 나는 오류를 얻을 rgb2hexConv 파일을 찾을 수 없습니다.
도 :
/
/home/
/home/me/
/home/me/someRandomDir/ (running from here does not work)
/home/me/utils/ (in path) (running from here works)
- rgb2hex (bash script)
- rgb2hexConv.class (java program)
내 생각 엔 그것은/가정/ME/someRandomDir에 rgb2hexConv을 찾고 있다는 것입니다/반대/홈/ME/유틸 /. 어쨌든 bash 스크립트의 디렉토리를 얻을 수 있습니까?
편집 : ./rgb2hexConv를 사용하는 스크립트를 변경하면 다음과 제공 :
Exception in thread "main" java.lang.NoClassDefFoundError: //rgb2hexConv
Caused by: java.lang.ClassNotFoundException: ..rgb2hexConv
// long stack trace removed
Could not find the main class: ./rgb2hexConv. Program will exit.
편집 2 (첫 번째 줄의 끝에있는 비트가없는 코멘트 만 실제 출력) : $ 0 다음과 같은 출력을 사용하여에서 시도 후 스레드에서
예외를 받았습니다했다 "기본"java.lang.NoClassDefFoundError가 :/홈/ME/유틸은/rgb2hex/rgb2hexConv 에 의한 : java.lang.ClassNotFoundException가 : .home .me.utils.rgb2hex.rgb2hexConv // 긴 스택 추적 /home/me/utils/rgb2hex/rgb2hexConv 메인 클래스를 찾을 수 없습니다. 프로그램이 종료됩니다. 이것에 대해
두 가지 :
- $ 0 파일 이름뿐만 아니라 디렉토리로서
java
명령은 "/"로 대체 될 것으로 보인다 - 을 할 수 있습니다. "".
$ 0의 전체 파일 이름과 디렉토리를 포함해야합니다. – Macha
그것을 지적 해 주셔서 감사합니다. 나는 그것을 바로 잡았다. –
나는 그것을 시도하고 그것은 작동하지 않았다. 그래서 java 명령에 대한 문서를 찾았는데 현재 디렉토리에서만 작동합니다. 다른 dir을 사용하려면 -cp 인수를 사용하여이를 지정해야합니다. – Macha