对于上下文,有2个java包文件,Poligon.java和PersegiPanjang.java。我试图编译我的第二个包,但它说权限被拒绝。我已经检查了目录权限,它允许所有权限,但当我试图编译包时仍然被拒绝。
mylaptop@MacBook-Pro pert 3 % javac org/poligon/Poligon.java
mylaptop@MacBook-Pro pert 3 % javac -cp org/poligon;. org/bangundatar/PersegiPanjang.java
error: no source files
org/bangundatar/PersegiPanjang.java:1: permission denied: /Applications
org/bangundatar/PersegiPanjang.java:2: command not found: 3-inheritance.pdf
org/bangundatar/PersegiPanjang.java:3: command not found: 3-inheritance.pdf
org/bangundatar/PersegiPanjang.java:4: command not found: 3-inheritance.pdf
org/bangundatar/PersegiPanjang.java:5: permission denied: org/
org/bangundatar/PersegiPanjang.java:7: command not found: package
org/bangundatar/PersegiPanjang.java:9: command not found: import
org/bangundatar/PersegiPanjang.java:11: command not found: public
org/bangundatar/PersegiPanjang.java:private:12: not valid in this context: panjang,lebar
double=''
Poligon.java位于“/Users/username/Desktop/Matkul/smt 4/pbo/prak/pert 3/org/poligon”。
PersegiPanjang.java位于“/Users/username/Desktop/Matkul/smt 4/pbo/prak/pert 3/org/bangundatar”。
Poligon.java:
package org.poligon;
public class Poligon{
protected int jumlahSisi;
public int getJumlahSisi(){
return this.jumlahSisi;
}
}
PersegiPanjang.java:
package org.bangundatar;
import org.poligon.Poligon;
public class PersegiPanjang extends Poligon{
private double panjang,lebar;
public PersegiPanjang(double panjang, double lebar, int jumlahSisi){
this.panjang = panjang;
this.lebar = lebar;
this.jumlahSisi = jumlahSisi;
}
public double hitungLuas(){
return panjang * lebar;
}
public void printInfo(){
System.out.println("Bangun Persegi Panjang bersisi "+this.getJumlahSisi());
}
}
我希望它能成功编译,没有任何被拒绝的权限。This is the file permission access information
1条答案
按热度按时间xuo3flqw1#
你用错了指南你正在使用一个用于windows,这意味着你现在使用了错误的java路径分隔符,这意味着这个命令被不同地解析。
javac -cp org/poligon;. org/bangundatar/PersegiPanjang.java
在windows操作系统上,
:
是驱动器号的分隔符,不能用来分隔路径,所以在windows上,使用;
。但在几乎所有命令行shell中(除了windows的),;
是命令分隔符.所以,:
被使用.上面,当你输入到一个终端,意味着bash看到了它,然后说:好吧,你想让我先跑:
然后你想让我跑
而这正是你的输出所说的情况。第一行产生错误'no source files'。
第二行需要更多的解释:几乎所有的shell应用程序(就是你输入这些命令的应用程序,黑框中有白色文本的那个)都有一个
source
命令,它可以读取你提供的任何文件,并像shell脚本一样执行它:只需运行该文本文件中的每个命令,就像您自己在命令行上直接键入一样。因此,
. org/bangundatar/PersegiPanjang.java
的操作等同于打开java文件,选择所有文件,将其复制到剪贴板,进入终端,然后全部粘贴,这会导致一系列错误,因为java显然不是命令行语言。修复方法?只需将
;
替换为:
。更一般的,您应该始终将java路径参数放在单引号中,因为如果您的shell转义或以其他方式处理它,它将永远不会按照您的要求执行。javac -cp 'org/poligon:.' org/bangundatar/*.java
是您想要键入的命令。