我在Linux下遇到了编译问题。我在 Linux 上编译 java 程序;目标用途是 Linux 和 Windows。代码检查是否存在特定于平台的类(如下面的代码所示)。所以如果代码在 Linux 下运行,特定的 Windows 代码将不会被执行。
使用平台特定类Win32MediaTray时出现问题
报告的编译错误是
PrinterScanner.java:9: error: cannot find symbol
import sun.print.Win32MediaTray;
^
是否可以在Linux下编译它?或者这是不可能的?我可以使用一些解决方法(反射?)不用说在 Windows 下编译没有错误。
谢谢您的帮助。
作为参考,此问题背后的代码如下:
private String getTrayName(Media media) {
String result = "id:" + media.getValue();
boolean isWin32 = media.getClass().getName().equals("sun.print.Win32MediaTray");
if (isWin32) {
Win32MediaTray w32 = (Win32MediaTray) media;
result = result + ",winId:" + w32.winID;
}
return result;
}