【发布时间】:2013-10-12 11:25:15
【问题描述】:
我在 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;
}
【问题讨论】:
-
告诉我们您的错误是什么。我可以猜到,但不想浪费我的时间。
-
即使你可以让它编译,你希望它如何运行?这是一个特定于 Windows 的 API...
-
@rcook “不想浪费我的时间” 很好。我最近看到很多问题被人们试图猜测答案变成了“噪音”。
-
@JonSkeet 在“信息胜于推测”的基础上,我也想听听这个问题的答案。 OTOH(我的猜测),可能是 OP 正在编写应用程序。在不同平台上使用不同的行为(例如,“如果是 Windows,请将其放入媒体托盘......”)。
-
谢谢你们的cmets。我希望现在这个问题是一个更好的问题
标签: java linux windows compilation cross-platform