processing / processing/processing4
sketchPath is different on OSX then Windows
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Java
- Star
- 494
- Fork
- 183
- Merge trung bình
- 4 giờ 39 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
Created by: clankill3r
Processing 4.3 (and prior)
Windows 10
When working outside the IDE it's common to put the libraries in a lib folder like: (even when not using processing this is common)
The above works fine on OSX, but on windows it does not work.
The reason it breaks on windows: https://github.com/benfry/processing4/blob/main/core/src/processing/core/PApplet.java#L7186
if (jarPath.contains("/lib/")) {
// Windows or Linux, back up a directory to get the executable
folder = new File(jarPath, "../..").getCanonicalPath();
}
It is assumed that core.jar is directly in the lib folder, in the above case sketchPath becomes rootOfProject/lib and dataPath becomes rootOfProject/lib/data.
For now I use this in my sketch:
public void fixSketchPath() {
try {
Field sketchPathField = PApplet.class.getDeclaredField("sketchPath");
sketchPathField.setAccessible(true);
String sketchPath = (String) sketchPathField.get(this);
if (sketchPath.contains("\\lib")) {
int libIndex = sketchPath.indexOf("\\lib");
sketchPath = sketchPath.substring(0, libIndex);
}
sketchPathField.set(this, sketchPath);
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
But this is of course more a work around then a fix.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu trong core/src/processing/core/PApplet.java, tại logic của sketchPath xung quanh dòng được liên kết, và so sánh cách jarPath được xử lý trên Windows 10 so với OSX. Tái hiện cấu hình thư viện trong một thư mục lib và xác minh rằng sketchPath trỏ đến thư mục gốc của dự án thay vì thư mục lib, với dataPath được suy ra từ thư mục gốc đó.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- operating-systems
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100