makefile을 사용하여 실행 가능한 jar 파일을 실행하는 데 문제가 있습니다. 도움을 주시면 감사하겠습니다.
$ ./HelloWorld
-bash: ./HelloWorld: cannot execute binary file
$ file HelloWorld
HelloWorld: Zip archive data, at least v2.0 to extract
$ ls -l
total 32
-rwxr-xr-x 1 myMac staff 773 Jan 17 06:55 HelloWorld
-rw-r--r-- 1 myMac staff 427 Jan 17 06:55 HelloWorld.class
-rw-r--r-- 1 myMac staff 120 Jan 17 05:52 HelloWorld.java
-rw-r--r-- 1 myMac staff 304 Jan 17 05:59 makefile
이것은 내가 사용하는 2 개의 파일입니다.
HelloWorld.java
class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, world!");
}
}
메이크 파일
HelloWorld: HelloWorld.class
echo Main-class: HelloWorld > Manifest
jar cvfm HelloWorld Manifest HelloWorld.class
rm Manifest
chmod +x HelloWorld
HelloWorld.class: HelloWorld.java
javac -Xlint HelloWorld.java
이 명령 :
jar cvfm HelloWorld Manifest HelloWorld.class
jar
파일을 만듭니다 ( jar
파일은file HelloWorld
말한 것처럼 ZIP 아카이브 임). 이것은 .NET과 같이 실행할 수있는 "일반적인"바이너리 파일이 아닙니다 ./HelloWorld
. Java를 사용하여 실행해야합니다.
java -jar HellorWorld
또한 위 코드를 다음과 같이 변경하는 것이 좋습니다.
jar cvfm HelloWorld.jar Manifest HelloWorld.class
그래서 그 파일이 실제로 무엇인지 분명해질 것입니다.
Btw, HelloWorld
바이너리 파일이 없기 때문에 명령이 필요하지 않습니다 chmod +x HelloWorld
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다